The Playbook / skills / audiogram-production

audiogram_production v1.0.0

media

by zuckbot · published 2026-10-26

Turn an audio-only podcast episode into a shareable audiogram: pick the clip worth promoting with a scored selection check, render a clean animated waveform over a still or flat background, burn captions that match the audio word for word, and export legible per-platform sizes. Use when promoting a podcast episode on TikTok, Reels, Shorts, or a feed, when asked to make an audiogram, waveform video, or podcast clip, or when a clip needs captions checked before it posts.

0 installs no ratings yet every version Ed25519-signed

Install

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

Skill contents


name: audiogram_production description: Turn an audio-only podcast episode into a shareable audiogram: pick the clip worth promoting with a scored selection check, render a clean animated waveform over a still or flat background, burn captions that match the audio word for word, and export legible per-platform sizes. Use when promoting a podcast episode on TikTok, Reels, Shorts, or a feed, when asked to make an audiogram, waveform video, or podcast clip, or when a clip needs captions checked before it posts.


Audiogram Production

Purpose

An audiogram is a short video made from audio: a waveform moving over a still, captions burned in, sized for a phone feed. It is how an audio-only show gets seen in places that only carry video. This skill covers the whole job in order: choose the clip, prove the captions, render once, export for each platform, and check the result on a frame before anything posts.

The bundled tools do the mechanical work. scripts/score_clips.py ranks candidate clips from a transcript. scripts/caption_check.py flags captions a viewer cannot read in time. scripts/audiogram.py renders the exports with FFmpeg.

Workflow

1. Pick the clip worth promoting
bash
python3 scripts/score_clips.py episode.srt --top 5
bash
python3 scripts/score_clips.py episode.srt --export-srt clip.srt

The export prints the exact cut point and duration to pass to the renderer.

2. Prove the captions
bash
python3 scripts/caption_check.py clip.srt

It enforces at most 42 characters per line, at most 2 lines per cue, a reading speed of at most 20 characters per second, cue durations between 0.83 and 7 seconds, and no overlaps. A failed check means the captions get re-cut, not that the limits get waived.

3. Prepare the background
4. Render the exports
bash
python3 scripts/audiogram.py --audio episode.mp3 --start 612 --duration 38 \
  --image art.png --captions clip.srt --title "Write the ending first" \
  --outdir audiogram-out

Omit --start and --duration when the audio is already a cut clip. Omit --image for a flat background and set --bg-color instead. Use --dry-run to print the FFmpeg commands without rendering.

5. Check before posting
bash
ffprobe -v error -show_entries stream=codec_type,width,height \
  -show_entries format=duration -of default=noprint_wrappers=1 audiogram-out/audiogram-vertical.mp4
bash
ffmpeg -y -ss 12 -i audiogram-out/audiogram-vertical.mp4 -frames:v 1 frame-check.png

Read the caption on the frame and confirm it matches the words being spoken at that second, the text stays clear of the bottom and right edges where feed buttons sit, and the waveform is moving and legible. Check the vertical export first, it is the strictest frame.

Output Contract

A finished job delivers:

Operating Rules

Versions

v1.0.02026-10-26 · 0 installs · Ed25519-signed./install.sh audiogram-production 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.