episode-video-series — Open Skill

episode-video-series

episode-video-series is a public Open Skill on Digen. Open it to see what this workflow creates.

@suamn467

ShortDrama

2 1 4

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4166649/2026-09-30/pt42enxp.jpg

# Episode Video Series

## When to use
- The user wants a multi-episode video series (a story/drama/montage split into episodes), each episode ~2 minutes, 16:9, English with subtitles.
- The user wants to advance or change one step: rewrite the script, generate the next episode, restyle a scene, or re-stitch an episode.

## Fixed production parameters (do not change unless asked)
- Episode length: **120 seconds** (2 minutes).
- Scene length: **5 seconds** → **24 scenes per episode** (120 ÷ 5).
- Aspect ratio: **landscape (16:9)** → pass `orientation='landscape'`.
- Resolution: **720P** (keeps credit cost low) → pass `resolution='720P'`.
- Language: **English** for dialogue/narration and subtitles.
- Approach: generate each short scene **individually**, then **stitch** them into one video per episode with `mix_clips` — never request one long render.

## Steps

1. First use `write_todos` to list the steps for the whole series and update it as you progress.

2. **Clarify the series** (if not already given): topic/genre, number of episodes, main characters, and whether the user provides a reference image for character/scene consistency. If a reference image is uploaded, keep it as the reference for `ref2v` scene generation.

3. **Write the script** for the episode(s). For each episode, break it into **24 scenes** (5s each). Each scene needs: a short visual description (English) and an English dialogue/narration line. Save the full episode script with `create_document(content=..., name="Episode N script", entity_type='scripts')`.

4. **Generate each scene video** with `generate_video`:
   - `model='t2v'` (pure text-to-video) when there is no reference image; `model='ref2v'` with the reference image in `input_urls` when the user provided one (keeps character/scene consistent).
   - `prompt` = the scene's visual description in English, plus "cinematic, 16:9, 720p".
   - `duration=5`, `orientation='landscape'`, `resolution='720P'`.
   - `name="Ep N Scene M"`, `entity_type='scene_videos'`.
   - Generate all 24 scenes for the episode.

5. **Generate English voiceover** for each scene with `generate_tts`:
   - `model='tts.design'`, `text` = the scene's English dialogue/narration.
   - `voice_instruction` = a short English description of the narrator/character voice (e.g. "calm female narrator, clear and warm").
   - `name="Ep N VO M"`, `entity_type='voiceovers'`.

6. **Stitch the episode** with `mix_clips`:
   - One clip whose `videos` array lists all 24 scene videos **in order** (concatenated into one 120s video).
   - Add each scene's voiceover as an `audio` track with `delay = (M-1) * 5` seconds so it lands on its scene.
   - `name="Episode N"`, `entity_type='final_videos'`, `orientation='landscape'`.

7. **Generate subtitles**: call `transcribe_audio(audio_url=<the stitched episode video url>)` to get the SRT. Save the SRT text with `create_document(content=<srt>, name="Episode N subtitles", entity_type='subtitles')` so the user has an English subtitle file.

8. Repeat steps 3–7 for each episode. When an episode is done, call `set_guidance` to suggest next actions (e.g. "generate the next episode", "rewrite the script", "restyle a scene").

## Notes
- Keep credit cost low: 5-second scenes at 720P are the default; only raise resolution/duration if the user explicitly asks.
- Intermediate products (scene videos, voiceovers, scripts) will be visible on the canvas — that is expected.
- Report failures honestly; never fabricate URLs. If a scene generation fails, retry that scene once before moving on.
- Politely decline requests for prohibited/NSFW content — video generation does not support adult content on any channel.