AI Viral Clip Cutter — Long Video to Shorts
Turn a long podcast or interview into ranked vertical clips. AI scores each moment and captions follow every word. $0.20 per clip row, samples included.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
videoUrl,maxClips,minScore(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.2 per clip = $200 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Clip generated | One viral clip cut from the source. | $0.2 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-08, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
videoUrl | Public direct URL to the long-form source video (.mp4/.mov/.webm). Pair with the YouTube Downloader to feed it YouTube videos. | string |
maxClips | Maximum number of clips to produce (highest-scoring first). | integer |
minScore | Only keep moments scoring at least this (0-100). Lower it if you get too few clips. | integer |
aspectRatio | Output shape. 9:16 / 1:1 use a blurred background (no crop); 16:9 keeps the source. | string |
burnCaptions | Burn word-synced captions into each clip. | boolean |
captionPreset | Caption look (when captions are on). | string |
language | Spoken language ISO code, or 'auto'. | string |
openaiApiKey | Your OpenAI key, transcription + viral-moment detection. Kept private. | string |
detectModel | Chat model for moment detection. Default gpt-4o-mini. | string |
baseUrl | OpenAI-compatible base URL. Default https://api.openai.com/v1. | string |
What you get
A structured dataset — each result includes fields like:
_demo_noticeaspectRatioclipsmaxClipsminScoresourceDurationSecondsrankscoretitledurationSecondsstartendhashtagsclipUrlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
3 ready-to-run use cases
Podcast to Shorts AI: Cut Episodes Into 9:16 Clips
Scores an episode for clip-worthy moments and cuts the best into vertical clips with burnt-in captions. You supply your own OpenAI key.
Hormozi Style Captions on Auto-Cut Interview Clips
Turns a sit-down interview into vertical clips with bold word-by-word captions. Lower the score threshold to pull more from quiet conversations.
YouTube Video Clips Maker: Keep 16:9, Skip the Reframe
Cuts a recorded webinar into short widescreen segments and leaves the framing alone, so there is no blurred vertical border to explain away.
Related tools in YouTube & Creator Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
AI Text-to-Speech Voiceover
Turn any script into an AI voiceover file: MP3, WAV, Opus or AAC. Pick the voice, speed and format. $40.00 per 1,000 voiceovers ($0.04 each).
Video & Audio Transcriber — Word-Level + SRT/VTT
Transcribe any video or audio URL with word-level timestamps. Download SRT, VTT and TXT. The language is found for you. $0.02 per transcribed minute.
AI Character Reference Bank
Make a consistent AI character reference set. You get portrait, 3/4, full body, side and expression sheets, plus a character-bible prompt.
YouTube Channel Scraper
Scrape videos from any YouTube channel, no login or API key. Rows carry titles, views, dates, duration, thumbnails.
YouTube Comments Scraper
Scrape YouTube comments with no login or key. Get text, likes, reply counts, author handle, verified badge and timestamp. $0.40 per 1,000.
YouTube Playlist Scraper
Export every video in a YouTube playlist. Get title, watch URL, views, age, runtime and thumbnail. No API key or OAuth. $0.40 per 1,000 videos.
Where this tool sits
- Categories
- YouTube & Creator Tools AI Video & Content Studio
- Platforms
- YouTube
AI Viral Clip Cutter: one long video in, ranked vertical clips out
Point it at a direct link to a podcast, interview or webinar recording. It transcribes the whole thing, scores each moment for how clip-worthy it looks, cuts the strongest ones to 9:16 with a blurred fill instead of a crop, and burns word-synced captions onto each one.
Two things to know before you start. The transcription and the scoring run on your own OpenAI key, so OpenAI bills you for those separately. And the source needs to be short: audio much past about thirteen minutes tends to fail at the transcription step, so trim a long episode before you feed it in.
| Input | A direct link to one video file, .mp4, .mov or .webm |
| Output | One dataset row per clip, with the rendered MP4 in the key-value store |
| Ceiling | 20 clips per run |
| Account needed | Your own OpenAI key |
| Price | $0.20 per row in the dataset, flat on every plan |
✂️ What AI Viral Clip Cutter does
Four steps, one pass.
Transcribe. The whole audio track, in the language you name or detected automatically.
Score. Each moment gets a 0 to 100 score built from five dimensions: hook, emotion, flow, value and trend. minScore sets the bar and maxClips sets how many of the survivors get cut, strongest first.
Cut. The clip is taken from the source at the model's timestamps, with half a second of padding either side. 9:16 and 1:1 put the frame on a blurred background rather than cropping the sides off a speaker. 16:9 keeps the source shape.
Caption. Word-synced captions in one of five looks: karaoke, hormozi, beast, tiktok or clean.
The score ranks candidates for you to review. It is not a prediction that anything will go viral.
📥 What you give it
{
"videoUrl": "https://your-cdn.com/podcast-ep-42.mp4",
"maxClips": 5,
"minScore": 60,
"aspectRatio": "9:16",
"burnCaptions": true,
"captionPreset": "karaoke",
"openaiApiKey": "your key here"
}
| Field | Default | What it is |
|---|---|---|
videoUrl | none | A direct link to the video file itself. Not a YouTube page link. |
maxClips | 5 | How many clips to produce, 1 to 20, highest score first. |
minScore | 60 | The bar a moment has to clear, 0 to 100. Lower it if you get too few clips. |
aspectRatio | 9:16 | 9:16, 1:1, 16:9 or original. The first two use a blurred fill, not a crop. |
burnCaptions | on | Burn word-synced captions into each clip. |
captionPreset | karaoke | karaoke, hormozi, beast, tiktok or clean. |
language | auto | The spoken language as an ISO code, or auto. |
openaiApiKey | none | Your own key. Stored as a secret. Without it you get the sample, not clips. |
detectModel | gpt-4o-mini | The chat model that scores moments. |
baseUrl | OpenAI's own | Any OpenAI-compatible endpoint, if you run one. |
videoUrl has to be the file, not the page it sits on. For a YouTube source, run YouTube Video Downloader first and feed it the file link.
📤 What you get back
One dataset row per clip, and the rendered MP4 in the run's key-value store under the key named on the row.
| Field | What it is |
|---|---|
rank | 1 is the strongest moment. Rows come back in this order. |
score | The weighted 0 to 100 score used to rank and filter. |
dimensionScores | The parts behind it: hook, emotion, flow, value and trend. |
title | A short label for the moment. |
reason | The model's own explanation of why it picked that moment. |
hashtags | Suggested tags for the clip. |
start, end, durationSeconds | Source timestamps, including the half second of padding. |
aspectRatio | The shape it was rendered at. |
clipKey, clipUrl | The key-value-store key and the link to the finished MP4. |
Run it with no videoUrl and this real record is what you get, written to the key-value store under SAMPLE_AND_NOTICES rather than to the dataset:
{
"_demo": true,
"_notice": "SAMPLE OUTPUT ... provide a \"videoUrl\" and \"openaiApiKey\" to generate real viral clips.",
"ok": true,
"clips": 0,
"note": "Demo run: no \"videoUrl\" supplied.",
"aspectRatio": "9:16",
"maxClips": 5,
"minScore": 60,
"sourceDurationSeconds": 0
}
🧾 Reading the output
| What happened | Where it lands | Costs a row |
|---|---|---|
| A clip rendered | The dataset, ok: true, with clipUrl | yes |
Nothing scored at or above minScore | The dataset, with clips: 0 and a note | yes |
No key or no videoUrl | The key-value store, SAMPLE_AND_NOTICES | no |
| One clip failed to render | The key-value store, SAMPLE_AND_NOTICES, ok: false | no |
| No speech, no audio track, or a download that failed | Nowhere. The run ends as failed | no |
That second line is the one to watch. When no moment clears minScore, a row still goes to the dataset saying so, and a row is a row. Lower minScore and re-run rather than repeating it at the same setting.
If every clip fails to render, the run still finishes as succeeded with an empty dataset, and the reasons are in SAMPLE_AND_NOTICES. Check the key-value store before assuming a quiet run did nothing.
▶️ How to run it
1. Open AI Viral Clip Cutter and click Try for free. 2. Paste a direct link to your video file into Video URL. 3. Put your key into OpenAI API key (BYO). 4. Set Max clips and Aspect ratio, pick a Caption style, then click Start. 5. Read the rows in the Dataset tab and download the MP4s from the Key-value store tab.
💰 How much does it cost?
$0.20 per row in the dataset. Flat on every Apify plan, no volume tiers.
In a normal run one row is one finished clip, so five clips cost $1.00. maxClips is your ceiling.
There is no per-minute charge on the source however long it is, and nothing extra for the transcript, the scoring pass, the reframe or the burned captions. One row covers all of it.
The only row that costs you without giving you a clip is the one written when nothing scored at or above minScore.
Transcription and scoring run on your own OpenAI key, and OpenAI bills you for that usage directly. Nothing is added on top here.
💡 What people use it for
- Turning a weekly podcast episode into a handful of vertical clips without opening an editor.
- Pulling the three strongest minutes out of a long interview for a launch day.
- Making square cuts for a feed and wide cuts for a channel from the same recording.
- Getting
title,reasonandhashtagswritten for you, so the posting queue is half filled in.
🚧 What it does not do
- Long sources are the weak point. Audio much past about thirteen minutes tends to fail at
transcription. Split a long episode first.
- Only the first 24,000 characters of the transcript are scored. Anything said after that is
never considered, even on a source that transcribes fine.
- It does not take a YouTube page link. Give it the video file.
- A high score is not a prediction. It ranks candidates for a human to review.
- Captions are sized for a vertical frame. With
aspectRatio: "original"on a landscape source
they can come out the wrong size. Use 16:9 for landscape.
- Clip boundaries come from the model, with half a second of padding. Expect to trim a few by
hand.
- No speech, no clips. A source with no audio track, or with nothing spoken, ends the run as
failed rather than returning anything.
- One video per run. Schedule or loop for a back catalogue.
🧭 Which AI video actor do you need?
| If you want | Use |
|---|---|
| Ranked short clips cut out of a long video | This one |
| Captions burned onto a video you already have | Auto Caption Burner |
| A short built from a story or a topic, from scratch | AI Faceless Video Generator |
| A voiceover file from a script | AI Text-to-Speech Voiceover |
| The source file off a YouTube link | YouTube Video Downloader |
❓ Questions people ask
Do I need an OpenAI key? Yes. Transcription and moment scoring both run on it. Without a key you get the sample record in the key-value store and no clips.
Does a high score mean it will go viral? No. It is a ranking heuristic, so the best candidates come first and you still decide what to post.
Why did I get fewer clips than maxClips? Not enough moments cleared minScore. Lower it and run again.
Can I feed it a YouTube link? Not directly. Download the file first, then pass that link.
Where are the video files? In the run's key-value store, one per clip, with the key and a link on each dataset row.
Can an AI assistant run it? Yes, through Apify's MCP server: https://mcp.apify.com/?actors=dami_studio/ai-viral-clip-cutter.
🆘 If something breaks
Open the Issues tab on the actor page. Send the run ID and the length of the source. The notes in SAMPLE_AND_NOTICES usually say what dropped.