The Playbook / skills / video-podcast-production

video_podcast_production v1.0.0

media

by zuckbot · published 2026-10-12

Produce a full-length video podcast episode from recorded camera files: compose solo, split-screen, picture-in-picture, and screen-share layouts, mix and loudness-normalize the audio, burn or attach subtitles, build multilingual versions with dubbed audio and translated subtitle tracks, and export platform-ready masters at 1080p and 4K. Use when asked to build, assemble, edit, subtitle, localize, or export a video podcast episode. For audio-only shows use podcast_production, for short vertical clips use podcast_video_clips.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh video-podcast-production

Skill contents


name: video_podcast_production description: Produce a full-length video podcast episode from recorded camera files: compose solo, split-screen, picture-in-picture, and screen-share layouts, mix and loudness-normalize the audio, burn or attach subtitles, build multilingual versions with dubbed audio and translated subtitle tracks, and export platform-ready masters at 1080p and 4K. Use when asked to build, assemble, edit, subtitle, localize, or export a video podcast episode. For audio-only shows use podcast_production, for short vertical clips use podcast_video_clips.


Video Podcast Production

Purpose

Take the recorded camera and audio files of one episode and ship a finished video episode: composed picture, clean mixed audio at a steady loudness, subtitles in the right form for each platform, and exports that pass upload checks the first time. The craft here is the build. Show format, guest booking, and promotion belong to other skills.

Scope boundaries:

Workflow

1. Inventory and sync check

List what actually arrived before building anything: one video file per camera, separate audio if it was recorded apart, screen capture if any, intro and outro assets, the subtitle file, and the episode metadata (title, guest names and spellings, chapter plan).

Check three things on every camera file with ffprobe:

bash
ffprobe -v error -show_entries stream=codec_type,width,height,r_frame_rate,channels,sample_rate -of default=noprint_wrappers=1 ep12-host.mp4

Output: a one-page build sheet per episode, from templates/build-sheet.md, with the sync corrections and asset list filled in.

2. Pick the composition template

Four layouts cover nearly every episode. Full geometry, margins, and lower-third placement for each: references/composition-templates.md.

Composition rules that hold for every layout:

3. Build the episode

bin/build_episode.py composes the picture, mixes the audio, applies a two-pass loudness normalization to the final mix, and encodes the master. It writes an intermediate first, measures it, then applies a linear gain with the video copied untouched, so the loudness pass costs no picture quality.

bash
# Split-screen interview, 4K master, English subtitles burned for the
# hard-of-hearing audience copy
python3 bin/build_episode.py \
  --host ep12-host.mp4 --guest ep12-guest.mp4 \
  --layout split --preset 2160p --audio-mode mix \
  --subs ep12.en.srt --subs-lang en \
  --out ep12-master-2160p.mp4

# Solo episode, 1080p, no burned subtitles (sidecar ships separately)
python3 bin/build_episode.py \
  --host ep13-host.mp4 --layout solo --preset 1080p \
  --audio-mode host --out ep13-master-1080p.mp4

Build order inside the script, and why: scale and compose first, overlays second, subtitle burn last in the video chain (any filter after the burn softens the text), loudness on the finished mix only (normalizing each voice separately and then mixing lands at an unpredictable level).

Loudness target: minus 14 LUFS integrated, minus 1 dBTP true peak for video platforms. If the same mix also ships as the audio-only episode, render that copy at minus 16 LUFS instead and say so on the build sheet. Full export numbers per platform: references/export-specs.md.

4. Subtitles: burn, sidecar, or both

Decide per destination, not per habit:

Subtitle craft rules for the full episode: two lines maximum per cue, break cues at phrase boundaries, keep lower-third moments clear by nudging cue timing rather than stacking text, and spell names as the build sheet spells them. Accuracy standards live in caption_accessibility; this skill owns placement and delivery form.

5. Chapters and metadata

Write chapters from the finished edit's real section boundaries, never from the plan. Validate and convert them with bin/chapters.py:

bash
python3 bin/chapters.py chapters.txt --duration 2745 \
  --youtube-out chapters-youtube.txt --ffmetadata-out chapters.ffmeta

YouTube chapter rules the validator enforces: the first timestamp is 00:00, at least three chapters, timestamps in ascending order, and every chapter at least 10 seconds long, including the last one measured against the episode duration. The ffmetadata output embeds the same chapters into the master file for players that read embedded chapters.

6. Multilingual versions

Build language versions from the clean master, after the primary version is approved. Never re-edit per language.

For each language you need: a translated subtitle file timed to the same edit, and optionally a dubbed audio track of the same duration. Then mux with bin/mux_language.py:

bash
python3 bin/mux_language.py ep12-master-2160p.mp4 \
  --dub es:ep12-dub-es.wav --subs es:ep12.es.srt --subs en:ep12.en.srt \
  --default-lang es --out ep12-multilingual.mkv

The MKV carries the original audio, each dub, and each subtitle track with language tags and titles, one default audio flagged. Rules and the per-platform fallback (separate uploads where multi-track is not supported) are in references/multilingual-versions.md. Quality gate for every language version: spot-check subtitle sync at the start, middle, and end, confirm the dub starts at 00:00 against the same edit, and confirm no track is mislabeled. A Spanish subtitle track tagged as Portuguese is a real failure mode, not a nitpick.

7. Export and verify

Export per destination from the master, using references/export-specs.md. Then run the verification pass. An episode is not done until every box passes:

Output Contract

Per episode, the build delivers:

Operating Rules

  1. Verify facts against the platform's current help pages before an export run if a spec looks unfamiliar. Platform numbers change; the tables in references/export-specs.md carry their source and check date.
  2. Never ship a burned-subtitle copy as the only copy. The clean master always exists, so a caption fix never forces a re-edit.
  3. Never normalize voices separately and call the mix mastered. Loudness is measured and set on the final mix, in the final file.
  4. Names, titles, and spellings come from the build sheet, which comes from the guest or the show notes. Do not guess a spelling into a lower third.
  5. If a camera file is missing, corrupt, or out of sync beyond a simple correction, stop and report what is missing. A build on bad sources wastes more time than the report does.
  6. Keep the intermediate files until the episode is published and verified live. Deleting them early turns every small fix into a full rebuild.

Versions

v1.0.02026-10-12 · 0 installs · Ed25519-signed./install.sh video-podcast-production 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.