How to Automate Long Form Video Creation in N8N Workflows
If you’re building a content engine, automation isn’t a nice-to-have — it’s the only way to scale reliably. In this guide, you’ll learn how to automate long-form video creation using a node-based workflow, powered by the Scrptly AI Video Agent. We’ll set up a production line that turns prompts and context images into finished, consistent videos you can upload to YouTube, store in the cloud, and distribute across channels.
What you’ll achieve
- A repeatable workflow that generates long-form AI videos from a prompt (plus optional reference images)
- Flexible triggers: schedule, webhook, or spreadsheet-driven
- Post-processing: upload, notify, archive, and report — all without manual editing
Why Scrptly for long-form AI video
- Character and environment consistency: Feed context images (product shots, characters, brand scenes) to maintain continuity across minutes, not seconds.
- Fully autonomous pipeline: From screenplay and scene generation to narration and final edit — the agent handles it.
- Developer-friendly: An official API, an MCP server for agentic use, and a ready-to-use node for no-code automation.
- Built for scale: Ideal for documentary-style explainers, product showcases, UGC-style ads, and faceless YouTube channels.
Explore Scrptly: https://scrptly.com/

Prerequisites
- A running automation workspace with community nodes enabled
- A Scrptly account and API key: https://scrptly.com/
- Optional: Cloud storage, YouTube account, Slack/Email for notifications
Step-by-step: Automate long-form video creation 1) Install the Scrptly node
- In your editor: Settings > Community Nodes > Install New
- Search and install: n8n-nodes-scrptly (open-source)
- Repo and docs: https://github.com/ybouane/n8n-nodes-scrptly
2) Add Scrptly credentials
- Go to Credentials > New > Scrptly API
- Paste your API key (get it from your Scrptly account page)
- Save and select these credentials in your Scrptly node
3) Design the workflow A. Trigger
- Schedule: Publish a new video daily/weekly
- Webhook: Accept topics from forms, apps, or CMS
- Spreadsheet/DB: Pull rows with briefs and assets
B. Build the prompt dynamically Use a Set or Code node to assemble a rich, directive prompt. Example template (using expressions):
Title: {{$json["title"]}}
Format: Long-form video (8–12 minutes), 16:9, cinematic pacing
Audience: {{$json["audience"]}}
Goal: {{$json["goal"]}}
Style: Documentary + human, warm narration, chapter markers
Chapters:
1) Hook (20–30s) — bold thesis and emotional stakes
2) Context (60–90s) — why it matters now
3) Deep Dive — 3–5 segments with clear transitions
4) Counterpoints — show nuance
5) Actionable Takeaways — practical steps
6) Outro — tie back to the hook, memorable closer
Narration: Natural TTS, steady cadence, add subtle music cues.
Visual Direction: Mix of cinematic B-roll, animated explainers, tasteful lower-thirds, and up to 2–3 on-screen captions per chapter.
Consistency: Reuse these reference images for characters/objects/brand environment.
Call to Action: Encourage viewers to subscribe and visit the linked resource.
C. Add context images (optional but recommended)
- Provide URLs of product shots, logos, character concept art, or environment references
- These make scenes cohesive across the entire video
D. Configure the Scrptly node
- Prompt: The full template above (with your variables)
- Context Images: Array of URLs to reference images
- Approve Up To (budget): Set an upper limit of tokens (e.g., 10,000 by default)
- Wait For Completion: Enabled to return the final file; or disable to get a task ID quickly
- Orientation: Landscape 16:9 for YouTube; Portrait 9:16 for shorts
- Length: Specify in the prompt (e.g., 8–12 minutes)
When enabled, the node returns video metadata and a download URL you can pass downstream.
E. Post-processing
- Upload to YouTube: Set title, description, tags, privacy
- Store in cloud: Save the video URL or file to S3/Drive
- Notify team: Send a Slack message or email with the link, runtime, and chapters
- Log results: Track topic, task ID, and performance metrics in a sheet/DB

Example end-to-end workflow
- Trigger: Scheduled (daily at 9 AM)
- Fetch Topics: Read rows from a sheet with columns [title, audience, goal, imageurl1, imageurl2]
- Prompt Builder: The template above, with expressions for variables
- Scrptly Node: Generate long-form video from prompt + images
- Upload to YouTube: Use the returned URL/file
- Slack: Notify #content with title, length, link
- Archive: Save task ID, topic, and final URL into your sheet/DB
Prompt engineering tips for long-form consistency
- Provide a “character bible”: Define character names, roles, voice tone, and visual descriptions
- Lock environments: “Use the same sunlit loft studio with oak desk and fern in background across all interviews”
- Explicit structure: Specify chapters with durations and transitions to control pacing
- Visual rules: “No jump cuts faster than 1.2s; subtle camera movement; neutral color grade with warm highlights”
- Accessibility: Request burned-in captions or provide a caption file; add on-screen text sparingly
Handling longer runtimes without surprises
- Use a two-pass flow: 1) Draft Preview: Generate a 60–90s draft to validate tone and visuals 2) Full Production: If approved, kick off the 8–12 minute final
- Timeouts: If not waiting for completion, store the task ID and poll/check status before proceeding
- Budget control: Keep “Approve Up To” aligned with your target runtime; longer videos require higher budgets
Common patterns you’ll reuse
- Topic queue via webhook: Accept a JSON payload {title, audience, goal, images[]}
- Bulk generation from a sheet: Iterate rows, branch by category for different styles
- Multichannel outputs: Landscape for YouTube, auto-generate a second, condensed portrait cut for short-form
Using the Scrptly API in code (optional) If you need programmatic control outside the visual workflow, install the SDK:
npm install scrptly
# or
yarn add scrptly
import Scrptly from 'scrptly';
Scrptly.setApiSettings({
apiKey: process.env.SCRPTLY_API_KEY,
});
(async () => {
const task = await Scrptly.videoAgent.create({
prompt: 'Your long-form prompt here... specify chapters, style, duration, and consistency rules.',
contextImages: [
'https://example.com/brand-hero.jpg',
'https://example.com/product-packshot.png',
],
approveUpTo: 10000,
});
// Optionally poll until complete, then get final video URL
console.log(task);
})();
Best practices for performance and cost
- Reuse visuals: Provide the same reference images across episodes to speed up alignment
- Parameterize your prompts: Keep a master template and inject only topic-specific variables
- Stagger runs: Schedule off-peak hours if your stack is busy
- QA loop: Auto-send previews to a review channel; only publish after a human gives a green check
Troubleshooting
- “Task ID returned instantly”: You likely disabled Wait For Completion — add a polling loop or a delayed check step
- “Inconsistent characters across scenes”: Confirm the same context images are passed; strengthen your character bible in the prompt
- “Video too short/long”: Be explicit in target runtime and chapter durations; adjust your budget ceiling accordingly
- “Choppy pacing”: Direct the editor in your prompt — specify transitions, cut frequency, and b-roll cadence
When to choose this over manual editing
- You need predictable output on a schedule
- You manage a faceless channel or data-driven series
- You want consistent brand visuals across episodes without hand-editing
Get started
- Try Scrptly now: https://scrptly.com/
- Install the community node: n8n-nodes-scrptly (repo: https://github.com/ybouane/n8n-nodes-scrptly)
- Build your first workflow: start with a daily schedule and a single topic sheet — then scale

Comments
Post a Comment