AI Viral Clip Cutter - Long Video to Ranked Shorts avatar

AI Viral Clip Cutter - Long Video to Ranked Shorts

Pricing

Pay per event

Go to Apify Store
AI Viral Clip Cutter - Long Video to Ranked Shorts

AI Viral Clip Cutter - Long Video to Ranked Shorts

Cut a long podcast, interview or webinar into ranked vertical clips. It transcribes the video, scores each moment 0 to 100 and cuts the best to 9:16 with captions burned in. Rows hold the clip link, score, title and hashtags. Runs on your own OpenAI key. $200.00 per 1,000 rows, one row per clip.

Pricing

Pay per event

Rating

5.0

(1)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

1

Monthly active users

4 days ago

Last modified

Share

Cut a long podcast, interview or webinar into ranked vertical clips with captions burned in: point it at a direct link to the recording and it transcribes the whole thing, scores each moment for how clip-worthy it looks, cuts the strongest ones to 9:16 over 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.

InputA direct link to one video file, .mp4, .mov or .webm
OutputOne MP4 per clip, and a row with its link, rank, score, title, reason and hashtags
Ceiling20 clips per run, from a source of about 13 minutes of audio at most
Account neededYour own OpenAI key
Price$200.00 per 1,000 rows, so $0.20 a row, which is normally one finished clip. On the Free plan, a little less on paid plans. The free plan's $5 a month covers about 25

🔍 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, 1:1 and 16:9 render at that size with the whole source frame centred over a blurred copy of itself, so nothing is cropped off a speaker. original keeps the source frame exactly as it is.

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 data you get from each clip

What you getField
The rendered MP4 in the run's key-value store, and a direct link to itclipKey, clipUrl
Its place in the ranking, 1 being the strongest momentrank
The 0 to 100 score, and the five parts behind itscore, dimensionScores
A short label for the momenttitle
The model's own reason for picking itreason
Suggested hashtagshashtags
Where it sits in the source, and how long it runsstart, end, durationSeconds
The shape it was rendered ataspectRatio

▶️ How to cut a long video into short clips

  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.

Start it with no key or no link and you get the free demo record in the key-value store instead.

💰 How much does it cost to cut clips from a long video?

$0.20 per row in the dataset on the Free plan, less on paid plans.

In a normal run one row is one finished clip, so five clips cost $1.00, and on the free plan the $5 Apify gives you each month covers about 25. maxClips is your ceiling.

There is no per-minute charge on the source, 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. The demo record and a clip that failed to render are not charged.

Transcription and scoring run on your own OpenAI key, and OpenAI bills you for that usage directly. Nothing is added on top here.

📥 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"
}
FieldDefaultWhat it is
videoUrlnoneA direct link to the video file itself. Not a YouTube page link.
maxClips5How many clips to produce, 1 to 20, highest score first.
minScore60The bar a moment has to clear, 0 to 100. Lower it if you get too few clips.
aspectRatio9:169:16, 1:1 or 16:9 put the whole frame over a blurred fill at that size, with no crop. original leaves the frame alone.
burnCaptionstrueBurn word-synced captions into each clip.
captionPresetkaraokekaraoke, hormozi, beast, tiktok or clean.
languageautoThe spoken language as an ISO code, or auto.
openaiApiKeynoneYour own key. Stored as a secret. Without it you get the demo record, not clips.
detectModelgpt-4o-miniThe chat model that scores moments.
baseUrlnoneAny OpenAI-compatible endpoint, if you run one. Empty means OpenAI's own.

videoUrl has to be the file, not the page it sits on. For a YouTube video of your own, run YouTube Downloader Pro 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.

No run on record has cut clips with a customer's key, so there is no real clip row to show yet, and a typed-out one would be a guess. 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
}
FieldHow to read it
rank1 is the strongest moment. Rows come back in this order.
scoreThe weighted 0 to 100 score used to rank and filter.
dimensionScoresThe parts behind it: hook, emotion, flow, value and trend.
start, endSource timestamps in seconds, including the half second of padding.
clipUrlThe link to the finished MP4. clipKey is its name in the store.

🧾 Reading the output

What happenedWhere it landsCosts a row
A clip renderedThe dataset, ok: true, with clipUrlyes
Nothing scored at or above minScoreThe dataset, with clips: 0 and a noteyes
No key or no videoUrlThe key-value store, SAMPLE_AND_NOTICES, _demo: trueno
One clip failed to renderThe key-value store, SAMPLE_AND_NOTICES, ok: falseno
No speech, no audio track, or a download that failedNowhere. The run ends as failedno

The 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.

💡 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, reason and hashtags written for you, so the posting queue is half filled in.

From your own YouTube episode to clips with a posting order, in three runs:

  1. Run YouTube Downloader Pro on the episode and copy mediaUrl from its row.
  2. Paste that link into Video URL here and start it.
  3. Put the clips' title values into Texts / variants on Hook & Virality Scorer and post the best-ranked title first.

🚧 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.
  • It is not an official tool of any platform or company named on this page. Dami's Studio is independent and is not affiliated with or endorsed by any of them.

🧭 Which AI video actor do you need?

If you wantUse
Ranked short clips cut out of a long videoThis one
Captions burned onto a video you already haveAuto Caption Burner
A short built from a story or a topic, from scratchAI Faceless Video Generator
A full transcript of the recording, with SRT and VTT filesVideo & Audio Transcriber
Clip titles scored and ranked before you postHook & Virality Scorer
The source file from your own YouTube videoYouTube Downloader Pro

❓ Questions people ask

Do I need an OpenAI key to cut clips?

Yes. Transcription and moment scoring both run on it. Without a key you get the demo record in the key-value store and no clips.

Does a high score mean the clip 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 I asked for?

Not enough moments cleared minScore. Lower it and run again.

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 I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/ai-viral-clip-cutter. Either way the run happens on your Apify account at the same price, and OpenAI bills your key as usual.

🆘 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.