Request a tool
All toolsGuidesMCP serverRequest a toolPlatformsCategories
Story to Script Rewriter icon

Story to Script Rewriter

Turn any story, article or Reddit post into a short-form video script: a strong hook, tight narration, a title and alternate hooks.

58 runs on Apify $0.02 per script rewritten ($20 / 1,000)
Run this in the cloudRun on Apify →

AI Video & Content Studio

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust text, sources, tone (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.02 per script rewritten = $20 per 1,000

You are charged forWhenPrice
Script rewrittenOne rewritten video script.$0.02
Actor StartCharged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.0000125

Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. 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

FieldWhat it doesType
textThe story, article, or post to rewrite into a video script.string
sourcesArray of strings OR post objects (uses selftext/scriptText/body/text/title). Pipe the Reddit Scraper's output straight in.array
toneVoice/style of the rewritten script.string
platformTarget platform — tunes pacing and hook style.string
targetSecondsApproximate spoken length to aim for.integer
povKeep the original point of view, or rewrite in first/third person.string
languageLanguage to write the script in.string
openaiApiKeyYour OpenAI key. Kept private.string
modelChat model to use. Default gpt-4o-mini.string
baseUrlOpenAI-compatible base URL. Default https://api.openai.com/v1.string

What you get

A structured dataset — each result includes fields like:

titlehookscriptwordCountestSecondsaltHooks

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in AI Video & Content Studio

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

Subtitle Translator iconAI Video & Content Studio

Subtitle Translator

Translate SRT and VTT subtitles into many languages in one run, or transcribe a video first. Timings preserved exactly. $0.05 per language, flat rate.

Ready to run — no setup

AI Thumbnail Generator iconAI Video & Content Studio

AI Thumbnail Generator

Generate scroll-stopping thumbnails with AI: a dramatic close-up face plus a bold hook headline in 9:16, 16:9 or 1:1. For YouTube, Shorts, Reels and ads.

Ready to run — no setup

Social Metadata Generator iconAI Video & Content Studio

Social Metadata Generator

Generate platform-ready titles, captions, hashtags, SEO tags and a pinned comment for YouTube, TikTok, Reels, Shorts and X.

Ready to run — no setup

Hook & Virality Scorer iconAI Video & Content Studio

Hook & Virality Scorer

Score any title, hook or script for viral potential: 0-100 with a grade, per-dimension breakdown and rewrite tips. No AI key.

Ready to run — no setup

AI Viral Clip Cutter — Long Video to Shorts iconYouTube & Creator Tools

AI Viral Clip Cutter — Long Video to Shorts

Turn a long podcast, interview, or webinar into ranked short clips with AI-scored moments and word-synced captions for TikTok, Reels, and Shorts.

3 use cases

AI Text-to-Speech Voiceover iconYouTube & Creator Tools

AI Text-to-Speech Voiceover

Turn any script into a natural AI voiceover audio file (MP3/WAV/Opus/AAC). Pick a voice, speed, and format. Good for faceless videos, IVR, and narration.

3 use cases

See all AI Video & Content Studio →

Story-to-Script Rewriter

Turns a story, article, or Reddit post into a short-form video script: a hook built to land in the first 3 seconds, narration written in the tone and length you ask for, plus a suggested title and a couple of alternate hooks. Built for people churning out TikTok, Reels, Shorts, and faceless-channel content who don't want to rewrite every source by hand.

How it works

Each source goes through one chat completion that returns structured JSON. The prompt forces a curiosity-gap hook (no greetings), tightens the narration toward your target length (it budgets roughly 150 spoken words per minute), and strips out stage directions, hashtags, and emoji so the text is ready to read aloud.

Input

You can pass a single text, an array of sources, or both. Sources can be plain strings or post objects, in which case it reads selftext, scriptText, body, text, or title in that order, so you can pipe a Reddit scraper's output straight in.

FieldRequiredNotes
textno*The story/article/post to rewrite.
sourcesno*Array of strings or post objects. Batched, one script per item.
tonenodramatic (default), casual, funny, emotional, educational, hype.
platformnotiktok (default), youtube shorts, instagram reels, youtube. Tunes pacing and hook style.
targetSecondsnoApproximate spoken length to aim for. Default 45.
povnokeep (default), first, or third person.
languagenoOutput language. Default English.
openaiApiKeyyes (at runtime)Your OpenAI key. Stored as a secret.
modelnoChat model. Default gpt-4o-mini.
baseUrlnoOpenAI-compatible base URL if you're not using OpenAI directly.

*No field is marked required in the schema. Provide either text or sources plus an OpenAI key for real output. Run it without a key and you get clearly labelled sample rows instead — one per source — so you can see the output shape first. Those rows are billed like real ones (see Pricing).

Output

One dataset record per source. The fields that matter are title, hook, script (the full narration, hook included), and altHooks (two alternates). Each record also carries wordCount and estSeconds so you can check the length came out close to your target, plus ok and, on failure, an error string.

Example

{
  "text": "My neighbor kept parking in my spot. I asked nicely three times. So I had his car towed, and it turned out the car wasn't even his.",
  "tone": "dramatic",
  "platform": "tiktok",
  "targetSeconds": 40,
  "pov": "first",
  "language": "English",
  "openaiApiKey": "sk-..."
}

Pricing

$0.02 per dataset row, plus $0.0000125 each time a run starts. Flat rate — no volume tiers, no plan gates, no subscription.

The charge is per row written to the dataset, and the actor writes one row per source you give it — whatever came back on that row. So a batch of 20 sources costs $0.40 plus the start fee, and it costs $0.40 whether all 20 rewrites land or two of them come back ok: false because the source failed to parse or the model refused it. Same for the keyless demo: it writes one labelled sample row per source, each charged $0.02, so previewing with one source costs $0.02 rather than nothing.

The run-start fee is charged once per gigabyte of run memory, so at this actor's default 4 GB it comes to $0.00005 a run. You bring your own OpenAI key, so model usage is billed to your OpenAI account separately.

Notes

A few sources will fail to parse or get refused by the model. Those are written to the dataset with ok: false and an error rather than stopping the whole run, so check that flag before you trust a batch — and note they occupy a row, so they are billed like a successful rewrite.