agentleFS
suryastsuryast/free-ai-agent-skills/narrated-motion-explainers/SKILL.md

narrated-motion-explainers

Skill2 starsChanged 34 days agoMITView on GitHub

Produces short captioned motion explainers by streaming Pillow frames into FFmpeg and verifying the finished MP4. Use when asked for an animated explainer, narrated process video, or reproducible lightweight motion graphics without browser or scene-engine dependencies.

  • Installs packages

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run from the repository root (or adjust paths to the installed whole package):

    line 23

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Narrated motion explainers

Deliver a video, not merely a renderer

  1. Establish audience, one message, runtime cap, aspect ratio, and narration rights. Write a fresh brief and short chapter script; retain source notes for factual claims without copying full source pages.
  2. For narration, obtain an authorized local recording or optional TTS output. Measure audio with ffprobe before setting chapter durations. Do not invent speech timing from word counts. Keep any external TTS provider optional; never bundle credentials. Match captions to actual speech, restoring punctuation only after token alignment and clamping overlapping cues.
  3. Render a short preview first. Use deterministic scene state at time t, RGB Pillow frames, and FFmpeg rawvideo input. Animate the explanatory subject, not only the background or caption strip. Use legible captions, bounded text, and licensed fonts; avoid distributing font binaries without permission.
  4. Encode H.264/yuv420p plus AAC at an explicit 48 kHz sample rate. Bound output duration and processing time. Preserve chapter JSON, captions, renderer and audio beside the MP4 so visual rerenders do not require network access.
  5. Probe the actual output's duration, dimensions, frame rate, codecs and audio. Decode the entire MP4. Extract paired interior frames per chapter and check subject motion separately from captions. Inspect decoded frames for clipping, layout and synchronization; a passed Python run is not video verification.
  6. Deliver the real verified MP4 plus source/caption assets, brief, source/rights notes and measured results. If narration is unavailable, label the output a tone/silent motion demo, not a narrated video. Do not ship a virtualenv, credentials or copyrighted source snapshots.

Runnable offline sample

The fresh sample explains a three-stage packet route in six seconds. Its generated quiet synthetic tone is not voiceover. render.py produces an MP4, WAV (tone mode), chapter copy and SRT. verify_video.py probes and fully decodes it, checks per-chapter subject motion, and saves decoded inspection PNGs. Dependencies are in requirements.txt; the brief is sample.json.

Run from the repository root (or adjust paths to the installed whole package):

python3 -m venv .motion-venv
.motion-venv/bin/python -m pip install -r narrated-motion-explainers/requirements.txt
# Install FFmpeg/ffprobe separately using your platform's supported package manager.
.motion-venv/bin/python narrated-motion-explainers/scripts/render.py --output-dir motion-output
.motion-venv/bin/python narrated-motion-explainers/scripts/verify_video.py motion-output

The output directory must not already exist, preventing accidental overwrite. The renderer limits chapter duration to 30 seconds total and checks that timings land on 24 fps boundaries; encode/decode subprocesses have bounded timeouts. This is a small fixed 640×360 sample, not a general video editor. Captions are ASCII and length-limited; translate with proper font/glyph and line-layout checks instead of removing those limits blindly.

For your own spoken narration, edit the sample chapter timings/text and pass --brief brief.json --narration recording.wav. The renderer measures the recording and rejects a duration mismatch exceeding 0.25 seconds, then copies it into the output. It accepts a local WAV/MP3/OGG/FLAC/M4A/AAC file up to 64 MiB and disables network input protocols. It does not create or align speech automatically. Listen to the final video and verify caption timing manually; structural checks cannot prove semantic narration alignment.

Pillow's built-in font is the default; no external font files are bundled. To use a system font, pass --font /path/to/licensed-font.ttf, verify its license, and keep the path out of public deliverables. Output records only the font basename. The default sample is independently runnable with Python/Pillow/FFmpeg; runtime-specific agent tools are not required.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.