AI Faceless Video Generator — Story to Short in 1 Run avatar

AI Faceless Video Generator — Story to Short in 1 Run

Pricing

from $660.00 / 1,000 short videos

Go to Apify Store
AI Faceless Video Generator — Story to Short in 1 Run

AI Faceless Video Generator — Story to Short in 1 Run

Make a faceless short from a subreddit, your own story or a topic. It writes the script, voices it, draws the scenes with a slow zoom and burns in word-by-word captions. You get a vertical MP4 plus the script and hooks. Runs on your own OpenAI key. $690.00 per 1,000 videos ($0.69 each).

Pricing

from $660.00 / 1,000 short videos

Rating

5.0

(2)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

0

Monthly active users

3 days ago

Last modified

Share

Make a faceless short video from a subreddit, your own story or a topic, in one run: it writes the script, reads it aloud, draws the scenes, moves them with a slow zoom and burns word-by-word captions over the top. What lands is one vertical MP4, plus the script, the hook and a few alternative hooks in the row next to it.

The thing to know before you start: it runs on your own OpenAI key. Every step, the script, the voice, the word timings and the images, goes through that key, so OpenAI bills you for the run on top of the charge here. Without a key you get a labelled sample record and no video.

InputA subreddit, your own story, or a topic
OutputOne MP4, plus the script and hooks in a row
CeilingOne video per run, with 3 to 12 scene images in it
Account neededYour own OpenAI API key
Price$690.00 per 1,000 videos, so $0.69 a finished video on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 7. OpenAI bills your key separately

🔍 What AI Faceless Video Generator does

It gets the source first. story or topic wins if either is filled in. Otherwise it pulls the subreddit's feed and takes the first post with a real body on it.

Then a chat model rewrites that into a script at roughly your targetSeconds, in the tone you picked, and hands back a title, a hook and a few spare hooks. The script is cleaned up for reading aloud, abbreviations included, then voiced with your chosen voice.

The finished voiceover decides the rest. Its length sets how many scene images get drawn, between 3 and 12, and each image is rendered with your style and characters notes in the prompt so the look holds. The stills are given a slow push-in, cut together to the length of the voiceover, and the captions are burned on in your captionPreset.

Everything runs one step at a time, so a run takes minutes rather than seconds.

📋 What data you get from each short

What you getField
The finished MP4 in the run's key-value store, and a direct link to itvideoKey, videoUrl
The narration that was actually read aloudscript
The title the model wrote, the opening line, and spare openingstitle, hook, altHooks
Where the story came from, with the post title and link when it was Redditsource
How many scene images ended up in the videoscenes
The finished length, measured off the filedurationSeconds
The voice, the shape, and how long the run tookvoice, aspectRatio, processingSeconds

The raw voiceover is saved beside the video as voice-<timestamp>.mp3, which is handy if you want to re-cut the video yourself.

▶️ How to make a faceless short from a Reddit story

  1. Open AI Faceless Video Generator and click Try for free.
  2. Paste your key into OpenAI API key (BYO).
  3. Pick a source: a name in Subreddit (source), your text in Story text, or a line in Topic.
  4. Set Tone, Voice, Caption style and Target length (seconds).
  5. Click Start, wait a few minutes, then take the MP4 from the run's Storage tab.

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

💰 How much does it cost to make a faceless short?

$0.69 per finished video on the Free plan. Paid plans pay a little less: $0.68 on Starter, $0.67 on Scale and $0.66 on Business. On the free plan, the $5 Apify gives you each month covers about 7 videos.

You pay when an MP4 exists. A run that stops partway delivers nothing and is not charged that $0.69, and the keyless sample is not charged either. Set a maximum cost on the run that cannot cover one video and it stops before the first paid step, with nothing made and nothing charged.

OpenAI bills your own key separately for the script, the voice, the word timings and every image, so imageQuality and targetSeconds move that side of the bill more than anything else you can set.

📥 What you give it

{
"subreddit": "tifu",
"sort": "top",
"time": "week",
"tone": "dramatic",
"voice": "onyx",
"targetSeconds": 50,
"captionPreset": "karaoke"
}
FieldDefaultWhat it is
subredditnoneWhere to take the story from. r/tifu, tifu and a full Reddit link all work. The form prefills tifu, which is an example rather than a default: an API call with all three sources empty fails.
storynoneYour own text. Overrides subreddit. Cut at 8,000 characters.
topicnoneA subject to write about from scratch. Also overrides subreddit.
sorttoptop, hot, new or rising, for the subreddit route.
timeweekday, week, month, year or all. Only used with top.
tonedramaticdramatic, casual, funny, emotional, educational or hype.
voiceonyxalloy, echo, fable, onyx, nova or shimmer.
aspectRatio9:169:16, 16:9 or 1:1.
stylecinematic, moody, highly detailed, dramatic lightingThe art direction in front of every image prompt.
charactersnoneWho keeps appearing, in a sentence, so they stay recognisable between scenes.
captionPresetkaraokekaraoke, hormozi, beast, tiktok or clean.
targetSeconds50Roughly how long the short should be: the video is cut to the voiceover, so it lands close rather than exactly. It drives the word count, and through that the scene count and your own OpenAI spend.
imageQualityhighlow, medium or high. The biggest lever on your OpenAI bill and on how long a run takes.
openaiApiKeynoneYour own OpenAI key. Marked secret.
baseUrlnoneAdvanced. Any OpenAI-compatible host. Empty means https://api.openai.com/v1.

📤 What you get back

One row, and the video itself in the run's key-value store under a key like short-1786411663909.mp4.

No run on record has made a video with a customer's key, so here is the real sample record a keyless run wrote on 2 October 2026. Its title, hooks, script and numbers are fixed placeholders. A delivered row has the same fields, written from your story, with videoKey and videoUrl filled in and no _sample, _notice or reason.

{
"ok": true,
"_sample": true,
"_notice": "SAMPLE OUTPUT - provide openaiApiKey for a real AI-generated faceless short video.",
"reason": "missing_api_key",
"source": { "type": "demo", "subreddit": "tifu" },
"title": "Sample Faceless Short",
"hook": "I thought this story was over, but the final detail changed everything.",
"altHooks": [
"This started as a normal story, then one detail flipped it.",
"The ending makes the whole setup feel completely different."
],
"script": "I thought this story was over, but the final detail changed everything. This sample row previews the generated-short output shape without spending API credits.",
"voice": "onyx",
"scenes": 3,
"aspectRatio": "9:16",
"durationSeconds": 12,
"videoKey": null,
"videoUrl": null,
"processingSeconds": 0
}
FieldHow to read it
sourcetype is story, topic or reddit, plus the subreddit, post title and link when it was Reddit.
scriptThe cleaned narration, exactly as voiced.
durationSecondsThe finished MP4's length, measured off the file and rounded.

🧾 Reading the output

A run ends one of five ways, and there is one thing to check.

EndingWhat you see
A video was madeOne dataset row, ok: true, with videoUrl on it
No key suppliedZero dataset rows, a labelled sample in SAMPLE_AND_NOTICES in the key-value store
Your maximum cost was too lowZero dataset rows, a max_cost_reached record in SAMPLE_AND_NOTICES, nothing made or charged
A step failedThe run stops and is marked failed, with the step named in the log. No row, no video, no $0.69
The time limit came firstThe run stops just before its time limit and is marked failed, with a TIME_LIMIT record in SAMPLE_AND_NOTICES naming the step it reached. No video, so no video charge

There is no half-delivered row. If a chat call, the voice, the word timings or an image fails, the run stops there rather than shipping something incomplete.

The thing to check is captions. If the word timings come back empty, the video is built without captions and still delivered and charged. Play the MP4 before you schedule a hundred of them.

The Overview table shows title, hook, scenes, durationSeconds, voice and videoUrl. The script, altHooks and source fields are in the row but not in that table, so open the JSON for them.

💡 What people use it for

  • Faceless story channels on TikTok, Reels and Shorts, written from your own text or a topic.
  • Turning a newsletter paragraph or a support write-up into a short without opening an editor.
  • Testing hooks: one run gives you the spoken hook plus spares, so the same video can be reposted with a different opening.
  • Making a rough cut to show a client what a format would look like before anyone films anything.

From one run to a short with a matching cover:

  1. Run this with a name in Subreddit (source). The row carries title, hook and altHooks.
  2. Paste the hook and the spares into Texts / variants on Hook & Virality Scorer and keep the top-ranked one.
  3. Put title and that hook into Title / headline and Hook text (optional override) on AI Thumbnail Generator.

🚧 What it does not do

  • One video per run. There is no batch mode. Schedule it or start several runs.
  • Reddit post bodies only. Comments are never read, and a subreddit whose top post is a link rather than text gives the model very little to work with.
  • No music, no transitions, no stock footage. Still images with a slow push-in, hard cuts, one voice track.
  • English. The script is written in English whatever the source language is.
  • No editing afterwards. You get the MP4 as built. There is no re-render of a single scene.
  • No images of your own. Scenes are drawn from the script.
  • 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
A finished short written from a story, topic or subredditThis one
A long video or podcast cut into ranked shortsAI Viral Clip Cutter
Your own images and voiceover turned into a slideshow videoStoryboard Video Generator
Just the voiceover file, from text you already haveAI Text to Speech Voiceover
Captions burned onto a video you already haveAuto Caption Burner
A script rewritten for short-form, with no videoStory to Script Rewriter
A cover image with a face and the hook on itAI Thumbnail Generator

❓ Questions people ask

Do I need my own OpenAI key to make faceless videos?

Yes, and it needs to work for chat, speech, transcription and images. Without one you get the sample record.

Why did my run fail?

A step threw. The log names which one: the feed, the script call, the voice, the word timings or an image.

Is it legal to use a Reddit story?

Credit the source if your platform expects it, and check the subreddit's own rules before you build a channel on one. Apify's write-up on scraping and the law is a good start, and we are not lawyers.

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-faceless-short-generator. 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. Include the run ID and which source you used, and say whether the MP4 came out with captions on it, since that narrows it down fast.