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.
- 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.
| Plan | Price | Minutes | Per minute |
|---|---|---|---|
| JSON2Video Hobby | $16.63 a month, billed yearly | 50 a month | $0.333 |
| JSON2Video Professional | $49.95 a month | 200 a month | $0.25 |
| JSON2Video Startup | $99.95 a month | 500 a month | $0.20 |
| JSON2Video prepaid 7,200 credits | $49.95 once | 120, never expire | $0.416 |
| JSON2Video prepaid 15,600 credits | $99.95 once | 260, never expire | $0.384 |
| reelsdk slideshows and captions | Per job, no plan | No minimum | $0.02 per output minute |
| reelsdk faceless short | Per job, no plan | Up to 60 s or 90 s | $0.25 or $0.35 a short |
| reelsdk raw ffmpeg | Per job, no plan | No 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 | JSON2Video | |
|---|---|---|
| Pricing model | Pay per job, no subscription, first $1 free | Monthly 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 captions | 1 credit per second at any resolution, $0.20 to $0.42 a minute |
| How you describe a video | One call per job type: /v1/slideshow, /v1/captions, /v1/shorts or /v1/ffmpeg | A movie JSON of scenes and elements, or a saved template with variables |
| Voiceover | 40 English voices on slideshows at $0.05 per 1,000 characters; shorts narrate in 6 languages | Azure and ElevenLabs voices in many languages, 0 credits |
| Word-by-word captions | Burned in with bold, karaoke, minimal or your own style, plus srt, vtt and ass files | A movie-level subtitles element with classic, progressive, one-word and boxed styles |
| Faceless short from a topic | POST /v1/shorts: script, AI images in 8 styles, voice, music and captions, $0.25 up to 60 s | No AI image or video generation, so you bring the visuals |
| Raw ffmpeg | POST /v1/ffmpeg, ffmpeg 8.1, $0.01 per compute minute | Not offered |
| Longest video | Media up to 15 minutes, 10 minutes of run time per job | 30 minutes per movie on paid plans, 60 s on the free plan |
| Largest output | 2160 px per side | Up to 3840 px, 4K at the same credit rate |
| Getting the result | The create call waits up to 300 s for the finished job, or 202 with a poll URL | A project id at once; poll GET /v2/movies?project= or add a webhook export |
| Webhooks | Signed with HMAC-SHA256 in Reel-Signature, 3 attempts | Not signed; retried at most twice, only after a 5xx or a failed connection |
| Throughput | 3 concurrent jobs, 500 jobs a day per key | No published rate limit; capped by credits and movie length |
| File retention | 7 days | 7 days |
| Getting a key | Self-serve sign-up, first $1 free | Self-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
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
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 | reelsdk |
|---|---|
Image element src in each scene | images[] |
Image zoom | motion: kenburns |
A voice element per scene | One voiceover.text; the slides are timed to fill it |
Voice name, like en-US-EmmaMultilingualNeural | voiceover.voice: one of 40 English voices, default luna |
subtitles element | captions: karaoke, bold, minimal or a style object |
settings.word-color | captions.highlight_color |
resolution: custom with width and height | size: 9:16 (1080x1920) or WIDTHxHEIGHT |
Webhook in exports[].destinations | webhook_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.
