reelsdk vs JSON2Video

A JSON2Video alternative for narrated slideshows and captions at $0.02 a minute

JSON2Video turns a movie JSON of scenes and elements into video for 1 credit per second, which works out to $0.20 to $0.42 a minute depending on the plan. reelsdk renders a narrated, captioned slideshow for $0.02 per output minute plus $0.05 per 1,000 characters of voiceover, a complete faceless short for $0.25, and raw ffmpeg 8.1 for $0.01 per compute minute, with no subscription.

Price per rendered minute
  • reelsdk slideshows and captions$0.02
  • JSON2Video Startup, $99.95 a month$0.20
  • JSON2Video Professional, $49.95 a month$0.25
  • JSON2Video Hobby, billed yearly$0.33
  • JSON2Video prepaid, $49.95$0.42

JSON2Video plan price divided by its minutes at 1 credit per second, checked October 2026. reelsdk voiceovers add $0.05 per 1,000 characters.

Which one to pick

Pick reelsdk if

  • You turn photos and a script into narrated, captioned slideshows and want to pay $0.02 a minute instead of $0.20 to $0.42
  • You want a faceless short from a topic, with the AI images generated for you
  • You caption existing videos and want srt, vtt and ass files with the mp4

Pick JSON2Video if

  • You compose multi-scene videos with text, HTML, audio and video elements, or edit templates visually
  • You render in 4K or make movies longer than 15 minutes
  • You want 600 free credits to start with

Price per minute

JSON2Video and reelsdk, price per minute

JSON2Video charges 1 credit per second of output at any resolution, so we divided each plan by the minutes it buys. reelsdk prices by job type: $0.02 per output minute for slideshows and captions, a flat $0.25 or $0.35 per faceless short, and $0.01 per compute minute for raw ffmpeg.

JSON2Video and reelsdk, price per minute
PlanPriceMinutesPer minute
JSON2Video Hobby$16.63 a month, billed yearly50 a month$0.333
JSON2Video Professional$49.95 a month200 a month$0.25
JSON2Video Startup$99.95 a month500 a month$0.20
JSON2Video prepaid 7,200 credits$49.95 once120, never expire$0.416
JSON2Video prepaid 15,600 credits$99.95 once260, never expire$0.384
reelsdk slideshows and captionsPer job, no planNo minimum$0.02 per output minute
reelsdk faceless shortPer job, no planUp to 60 s or 90 s$0.25 or $0.35 a short
reelsdk raw ffmpegPer job, no planNo minimum$0.01 per compute minute

JSON2Video subscription credits expire at the end of each billing period, voices cost 0 credits and failed renders are not billed. reelsdk voiceovers add $0.05 per 1,000 characters, and the first $1 is free. Prices from JSON2Video pricing, checked October 2026.

Head to head

reelsdk and JSON2Video, feature by feature

reelsdk and JSON2Video compared
reelsdkJSON2Video
Pricing modelPay per job, no subscription, first $1 freeMonthly credit plans, or prepaid credits that never expire; 600 free credits on signup
What a minute costs$0.02 per output minute for slideshows and captions1 credit per second at any resolution, $0.20 to $0.42 a minute
How you describe a videoOne call per job type: /v1/slideshow, /v1/captions, /v1/shorts or /v1/ffmpegA movie JSON of scenes and elements, or a saved template with variables
Voiceover40 English voices on slideshows at $0.05 per 1,000 characters; shorts narrate in 6 languagesAzure and ElevenLabs voices in many languages, 0 credits
Word-by-word captionsBurned in with bold, karaoke, minimal or your own style, plus srt, vtt and ass filesA movie-level subtitles element with classic, progressive, one-word and boxed styles
Faceless short from a topicPOST /v1/shorts: script, AI images in 8 styles, voice, music and captions, $0.25 up to 60 sNo AI image or video generation, so you bring the visuals
Raw ffmpegPOST /v1/ffmpeg, ffmpeg 8.1, $0.01 per compute minuteNot offered
Longest videoMedia up to 15 minutes, 10 minutes of run time per job30 minutes per movie on paid plans, 60 s on the free plan
Largest output2160 px per sideUp to 3840 px, 4K at the same credit rate
Getting the resultThe create call waits up to 300 s for the finished job, or 202 with a poll URLA project id at once; poll GET /v2/movies?project= or add a webhook export
WebhooksSigned with HMAC-SHA256 in Reel-Signature, 3 attemptsNot signed; retried at most twice, only after a 5xx or a failed connection
Throughput3 concurrent jobs, 500 jobs a day per keyNo published rate limit; capped by credits and movie length
File retention7 days7 days
Getting a keySelf-serve sign-up, first $1 freeSelf-serve signup with 600 free credits

Be honest

Where JSON2Video is the better choice

  • Scenes, templates and an editor

    A JSON2Video movie is a list of scenes, each with its own images, video, text, HTML, audio and voice elements, and templates can be built in their visual editor and filled through the API. reelsdk has no scene model and no editor: slideshows, captions and shorts are fixed recipes, and anything else means writing ffmpeg arguments.

  • 4K at the same price, 30-minute movies

    JSON2Video bills 1 credit per second at any resolution, so 4K costs the same as 1080p, and every paid plan renders movies up to 30 minutes. reelsdk slideshows stop at 2160 px per side, input media at 15 minutes and jobs at 10 minutes of run time.

  • Free voices in many languages

    Every JSON2Video voice model, Azure or ElevenLabs, costs 0 credits on every plan, so narration in many languages adds nothing to the bill. reelsdk's built-in slideshow voices are 40 English ones at $0.05 per 1,000 characters, or you pass your own audio file, and shorts narrate in 6 languages.

Migration

Moving a render from JSON2Video

A JSON2Video slideshow is a movie with one scene per photo, a voice element in each scene, a movie-level subtitles element and a webhook export, and the create call returns a project id you poll. On reelsdk it is one POST /v1/slideshow with the photos, one voiceover text and a caption style; the slides are timed to fill the narration and the call returns the finished mp4.

JSON2Video today

json2video.sh
curl -X POST https://api.json2video.com/v2/movies \
  -H "x-api-key: $JSON2VIDEO_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "resolution": "custom",
    "width": 1080,
    "height": 1920,
    "scenes": [
      {
        "elements": [
          { "type": "image", "src": "https://example.com/1.jpg", "zoom": 2 },
          { "type": "voice", "text": "Three rooms, one view.", "voice": "en-US-EmmaMultilingualNeural" }
        ]
      },
      {
        "elements": [
          { "type": "image", "src": "https://example.com/2.jpg", "zoom": 2 },
          { "type": "voice", "text": "Five minutes from the beach.", "voice": "en-US-EmmaMultilingualNeural" }
        ]
      }
    ],
    "elements": [
      { "type": "subtitles", "language": "en", "settings": { "style": "classic-progressive" } }
    ],
    "exports": [
      { "destinations": [{ "type": "webhook", "endpoint": "https://your.app/hooks/json2video" }] }
    ]
  }'

# returns a project id at once, then poll until the movie is done
curl "https://api.json2video.com/v2/movies?project=$PROJECT_ID" \
  -H "x-api-key: $JSON2VIDEO_KEY"

The same render on reelsdk

reelsdk.sh
curl -X POST "https://api.reelsdk.com/v1/slideshow?wait=120" \
  -H "Authorization: Bearer $REELSDK_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "images": [
      "https://example.com/1.jpg",
      "https://example.com/2.jpg"
    ],
    "size": "9:16",
    "motion": "kenburns",
    "voiceover": {
      "text": "Three rooms, one view. Five minutes from the beach.",
      "voice": "luna"
    },
    "captions": "karaoke",
    "webhook_url": "https://your.app/hooks/reelsdk"
  }'

# 200 { "job": { "status": "succeeded", "outputs": {
#   "video": "...", "srt": "...", "vtt": "...", "ass": "...", "transcript": "..." } } }

Field by field

JSON2Video fields and their reelsdk equivalents
JSON2Videoreelsdk
Image element src in each sceneimages[]
Image zoommotion: kenburns
A voice element per sceneOne voiceover.text; the slides are timed to fill it
Voice name, like en-US-EmmaMultilingualNeuralvoiceover.voice: one of 40 English voices, default luna
subtitles elementcaptions: karaoke, bold, minimal or a style object
settings.word-colorcaptions.highlight_color
resolution: custom with width and heightsize: 9:16 (1080x1920) or WIDTHxHEIGHT
Webhook in exports[].destinationswebhook_url, signed with Reel-Signature
GET /v2/movies?project=GET /v1/jobs/{id}, or ?wait= on the create call

FAQ

reelsdk vs JSON2Video, answered

How much does JSON2Video cost per minute compared to reelsdk?

JSON2Video bills 1 credit per second at any resolution: $0.20 a minute on Startup ($99.95 a month for 500 minutes), $0.25 on Professional, $0.33 on Hobby and $0.38 to $0.42 on prepaid credits. reelsdk has no plan: slideshows and captions cost $0.02 a minute, raw ffmpeg $0.01 per compute minute and a faceless short $0.25 up to 60 seconds.

Can JSON2Video generate a faceless short from a topic?

No. JSON2Video says it does not natively generate AI images, AI video or avatars, so you bring the visuals and the script. reelsdk POST /v1/shorts turns a topic into a finished short in about 100 seconds, with the script, AI images in 8 styles, voiceover, word-by-word captions and music, in 6 languages.

How do webhooks and polling differ between JSON2Video and reelsdk?

JSON2Video returns a project id at once; you poll GET /v2/movies?project= or add a webhook export, which is unsigned and retried at most twice, only after a 5xx or a failed connection. reelsdk holds the request open for up to 60 seconds by default, or 300 with ?wait=300, and answers with the finished job; its webhooks carry an HMAC-SHA256 Reel-Signature and are tried 3 times.

How long are files kept, and what limits apply?

Both keep rendered files for 7 days. JSON2Video caps a movie at 30 minutes on paid plans and 60 seconds on the free plan, and a request body at 2 MB. reelsdk runs 3 jobs at once and 500 a day per key, with media up to 15 minutes, inputs up to 500 MB each and uploads up to 100 MB through POST /v1/uploads.

Other comparisons

Ready to build?

Ship video from your app today

Your first $1 of renders is free, and one key covers every endpoint.

Moonlit lake with a lit cabin under the mountains