Video to Shorts - Vertical 9:16 Clips with AI Captions avatar

Video to Shorts - Vertical 9:16 Clips with AI Captions

Pricing

from $80.00 / 1,000 short createds

Go to Apify Store
Video to Shorts - Vertical 9:16 Clips with AI Captions

Video to Shorts - Vertical 9:16 Clips with AI Captions

Video to shorts API. Send a long video URL and timestamps, get a vertical 9:16 MP4 for TikTok, Reels or YouTube Shorts with burned-in word-by-word captions, a thumbnail and an SRT. Blur, crop or pad reframing. Batch clips. MCP, n8n, Make, API. Failed clips free.

Pricing

from $80.00 / 1,000 short createds

Rating

0.0

(0)

Developer

ENT-E

ENT-E

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Share

The Video to Shorts API from ENT-E turns a long video URL into vertical 9:16 clips for TikTok, Instagram Reels and YouTube Shorts, with burned-in animated captions. One call per short, with no editor, no timeline and no manual subtitles.

Video to shorts API: long video in, vertical 9:16 short with captions out

Tell it where the highlight starts and ends. The Actor then:

  1. reframes the clip to 9:16 (blur, crop or pad),
  2. transcribes the speech with Whisper,
  3. burns in word-by-word captions with the current word highlighted,
  4. returns a ready-to-post 30 fps H.264/AAC MP4, plus a JPEG thumbnail and an .srt of the captions.

The Actor doesn't pick highlights for you. You (or your agent, from a transcript) choose startSeconds and endSeconds; it does the editing work.

What you get

  • Vertical video 9:16 at 1080×1920 (default) or 720×1280.
  • Three reframe modes:
    • blur (default): the full frame sits over a blurred copy of itself, so nothing is cut off. Good for slides, gameplay and two-person shots.
    • crop: fills the screen. Aim it with cropPosition from 0 (left) to 1 (right).
    • pad: the full frame with solid bars in padColor.
  • Burned-in captions included in the price. Pick a preset captionStyle (bold, pop, boxed or minimal), then fine-tune font, fontSize, colors, outline, box, uppercase, words per caption, karaoke highlighting and position. With captionPosition: "auto", captions sit in the free area under the video in blur/pad mode, so they don't cover faces.
  • Six bundled fonts: poppins, anton, bebas, luckiest, archivo and dejavu.
  • Up to 180 s per short (maxClipSeconds, default 60).
  • Batch with clips: many highlights from one long video in one run, each with its own settings.
  • Failed clips are free.

Use cases

Long video to TikTok, Reels and YouTube Shorts

{
"url": "https://example.com/webinars/q3-product-update.mp4",
"startSeconds": 754,
"endSeconds": 812
}

Defaults: blur reframe, 1080×1920, bold captions, auto language.

Repurpose podcast clips into shorts (batch)

Cut several highlights from one episode in one run. Top-level settings apply to every clip, and each clip can override them.

{
"mode": "crop",
"captionStyle": "pop",
"language": "en",
"clips": [
{ "url": "https://example.com/podcast/ep-88.mp4", "startSeconds": 312, "endSeconds": 355 },
{ "url": "https://example.com/podcast/ep-88.mp4", "startSeconds": 1490, "endSeconds": 1548, "cropPosition": 0.7 },
{ "url": "https://example.com/podcast/ep-88.mp4", "startSeconds": 2710, "endSeconds": 2766, "cropPosition": 0.3 }
]
}

Use cropPosition to keep each speaker in frame when they sit left or right of center.

Burned-in captions with your brand style

{
"url": "https://example.com/videos/tutorial-12.mp4",
"startSeconds": 60,
"endSeconds": 105,
"captionStyle": "bold",
"font": "anton",
"textColor": "#FFFFFF",
"highlightColor": "#3DFF5A",
"wordsPerCaption": 2,
"captionPosition": "center"
}

Vertical video 9:16 without captions (reframe and trim only)

{
"url": "https://example.com/footage/b-roll-wide.mov",
"startSeconds": 10,
"endSeconds": 25,
"mode": "pad",
"padColor": "#FFFFFF",
"captions": false
}

Agent workflow: transcript, then pick moments, then render shorts

  1. Get a timed transcript of the long video with Video to Captions (or any Whisper-based transcription tool).
  2. Let your LLM choose 3–5 moments with start and end times.
  3. Send them here as clips.

Pricing (pay per event)

EventPrice
Short created (per successful short; includes captions, thumbnail and SRT)$0.08
Clip minute (per started minute of output video)$0.12
Actor start (per run, one event per GB of memory, minimum one; default 4 GB = 4 events)$0.00005 per event

There are no platform usage fees on top. Captions cost the same with every model. Failed clips are free. You pay for the short you get, not for the length of the source video.

Worked example: one podcast episode, five shorts

  • Each short is 30–60 s, which is 1 started minute: $0.08 + $0.12 = $0.20 per short.
  • Five shorts: $1.00, plus $0.0002 actor start for the batch run.
  • Ten 60-second shorts: $2.00.

Longer shorts:

  • A 61–120 s short: $0.08 + 2 × $0.12 = $0.32.
  • A full 180 s short: $0.08 + 3 × $0.12 = $0.44.

Billing rounds up to the next started minute of output, ignoring up to 0.5 s of encoder padding, so a 60 s short (even if it renders at 60.03 s) is 1 minute and a 61 s short is 2.

Input reference

FieldTypeDefaultNotes
urlstring(none)Direct link to one video file, up to 4 GB (not a YouTube/TikTok page)
clipsarray(none)Batch. Items are { "url": ..., <any setting below> } or plain URL strings.
startSecondsnumber0Start of the short in the source (decimals allowed)
endSecondsnumber(none)End of the short. If empty, the clip runs to the end of the source or to maxClipSeconds.
maxClipSecondsinteger60Hard cap on output length, 5–180
modestringblurblur, crop, pad
cropPositionnumber0.5crop only. 0 = left, 1 = right.
blurStrengthinteger20blur only. 4–80.
padColorstring#000000pad only
resolutionstring1080x19201080x1920 or 720x1280
qualitystringstandardhigh (CRF 18), standard (CRF 21), small (CRF 25)
captionsbooleantrueBurn in captions and return an SRT
modelstringsmallbase, small, large-v3-turbo (same price)
languagestringautoISO 639-1 code or auto
captionStylestringboldbold, pop, boxed, minimal
fontstringfrom stylepoppins, anton, bebas, luckiest, archivo, dejavu
fontSizeintegerfrom style20–200 px at 1080 width
textColor, highlightColor, outlineColorstringfrom styleHex colors
outlineWidthnumberfrom style0–20
captionBoxbooleanfrom styleSemi-transparent box behind the text
uppercasebooleanfrom style
wordsPerCaptionintegerfrom style1–12 words on screen
highlightWordsbooleanfrom styleKaraoke-style current-word highlight
captionPositionstringfrom styleauto, bottom, center, top

You must provide either url or clips.

Output reference

Each short produces one dataset row. Here is a real 60 s test render (URLs and transcript shortened):

{
"sourceUrl": "https://example.com/webinars/q3-product-update.mp4",
"startSeconds": 60,
"mode": "blur",
"resolution": "1080x1920",
"videoUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/4e353b7c87de.mp4?signature=<sig>",
"thumbnailUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/4e353b7c87de.jpg?signature=<sig>",
"captionsSrtUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/4e353b7c87de.srt?signature=<sig>",
"status": "ok",
"durationSeconds": 60.03,
"endSeconds": 120,
"width": 1080,
"height": 1920,
"sizeBytes": 37856647,
"captioned": true,
"captionStyle": "bold",
"language": "en",
"captionCount": 47,
"transcript": "…",
"sourceDurationSeconds": 580.174,
"billedMinutes": 1
}

If the clip has no speech, or no audio stream, the short still renders without captions, and the row says so in warning. A failed clip returns sourceUrl, startSeconds, mode, resolution, status: "error" and error.

Use it from AI agents and automations

MCP (Claude, Cursor, other MCP clients). Add https://mcp.apify.com?tools=ent-e/video-to-shorts-captions as a remote MCP server and sign in with OAuth. Your agent passes a URL and timestamps and gets back videoUrl. A 60 s short at 1080×1920 takes about 2–4 minutes to render, and 720×1280 is roughly twice as fast, so the agent should wait for the run to finish before reading the dataset.

n8n. Use the Apify node (@apify/n8n-nodes-apify). Use Run an Actor, then Get Dataset Items, and post videoUrl to your scheduler or storage. Run an Actor and get dataset also works for a single short.

Make. Use the Apify app. Renders usually take longer than the 120 s sync wait, so:

  1. Run Run an Actor asynchronously.
  2. Add the Watch Actor Runs trigger.
  3. Then Get Dataset Items.

Zapier. Use the Apify app:

  • Run Actor and Fetch Results for a single short (under 5 minutes).
  • For batches, use Run Actor, then the Finished Actor Run trigger and Fetch Dataset Items.

API.

curl -X POST "https://api.apify.com/v2/acts/ent-e~video-to-shorts-captions/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/webinars/q3-product-update.mp4","startSeconds":754,"endSeconds":812}'
# then: GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?token=$APIFY_TOKEN

FAQ

Does it find the best moments automatically? No. You choose startSeconds and endSeconds. That keeps the output predictable and the cost fixed. To automate it, get a transcript first, let an LLM pick the moments, then send them as clips.

Does it track faces? No. There's no automatic face tracking. Use crop with cropPosition to frame a speaker, or blur to keep the whole frame visible.

Can I paste a YouTube or TikTok link? No. The Actor needs a direct link to the video file (cloud storage, CDN or file host), up to 4 GB.

Which languages do the captions support? Speech is transcribed by Whisper in the spoken language (auto-detected or set with language). The bundled fonts cover Latin scripts. Use dejavu for Cyrillic and Greek. CJK, Arabic and Indic scripts aren't supported yet. For those, set "captions": false and add subtitles in your own editor or player.

How long can a short be? 5 to 180 seconds (maxClipSeconds). The default of 60 s fits the common TikTok, Reels and Shorts length. You pay per started minute of output (up to 0.5 s of padding is ignored), so 60 s costs less than 61 s.

Am I charged if a clip fails? No. A bad URL, an input without video, or an invalid setting returns a free error row. A short that renders without captions (because the clip has no speech) is still a delivered short and is billed normally.

ENT-E media toolkit

Every tool takes a public file URL, needs nothing installed, charges per file, doesn't charge for failures, and works from MCP, n8n, Make, Zapier and the API.