Back to Blog

design-creative

Transcribe Video Skill: Word-Level Timestamps Locally

Add word-level timestamps to any video/audio via a local Whisper Docker service. A practical skill for agent builders.

OpenAgentSkillPublished:

Where this fits

You’ve just finished a screen recording for a tutorial and want to ship it with accurate captions synced to every spoken word. Manually timing subtitles is a nightmare. Instead, you ask your agent: "transcribe this clip with word-level timestamps." The agent spins up a local whisper.cpp service, returns transcript.txt, transcript.srt, and a JSON file with per-word timing — ready for overlays, search, or subtitles. No cloud API, no external dependencies, no Docker commands you have to babysit.

Why agents benefit

  • Self-contained execution: The skill bundles the entire Whisper service and its runner. The agent only needs to call node scripts/transcribe.mjs <file> — no user‑side Docker setup or prompt engineering for environment checks.
  • Structured output: It returns three artifacts (plain text, SRT, and words.json), so downstream tasks like generating burned‑in captions or creating searchable transcripts work from a well‑defined contract.
  • Warm container reuse: The runner keeps the Docker container alive between calls (with a --stop flag). Agents transcribing multiple files in a batch don’t pay cold‑start costs each time.
  • Local privacy & determinism: Everything runs offline. No uploads, no API rate limits, no data leaving the machine — critical for sensitive or internal content.
  • Composable as a building block: It’s designed to be called by /produce-video or any pipeline that needs timed text, so agents can chain transcription into larger media workflows.

Practical scenarios

Captioning a product demo for social media

A developer records a 3‑minute feature walkthrough. The agent transcribes the file, then uses the words.json to generate styled captions that fade in word‑by‑word — matching the rhythm of the video.

Building a searchable meeting archive

An agent processes a folder of team call recordings. It runs transcribe-video on each file, concatenates the transcript.txt files with metadata, and creates a local search index that supports timestamped queries.

Translating a podcast episode

With --task translate, the same skill outputs an English translation of a foreign‑language podcast. The agent can then generate an SRT file in English, making the content accessible to a wider audience without leaving the local environment.

Add it to your agent workflow

Install the skill directly from the command line:

npx skills add AlemTuzlak/skills --skill transcribe-video

Then invoke it in your agent’s tool list or custom instruction. A minimal usage example:

node scripts/transcribe.mjs ./recordings/demo.mp4 --out ./captions

That single command builds the Docker image (if not already built), runs Whisper locally, and writes all three output files into ./captions. To stop the warm container later, call node scripts/transcribe.mjs --stop.

Compare before adopting

Before making this a permanent part of your stack, weigh these factors:

  • Quality signals: Check the repo’s recent commits and open issues. Whisper.cpp’s accuracy varies by model size — the skill’s default model may not match your language or accent needs.
  • Maintenance freshness: Look at the last commit date. A 39‑star repo that hasn’t been updated in months might break with newer Docker or Node versions.
  • Alternatives: Compare with whisper.cpp directly (if you want more control) or cloud APIs (if speed and scalability matter more than privacy).
  • Workflow fit: Does your agent already have a preferred transcriber? The skill’s value is its turnkey nature — if you need heavy customisation, you may be better off writing a thin wrapper yourself.

For a deeper look at how this skill fits into the broader agent‑skill ecosystem, you can also check its OpenAgentSkill listing for community feedback and version history.

Why it is worth tracking

With 39 stars from a single author, this is not a mainstream tool yet — but its design points to a trend: bundling heavyweight local services into self‑contained agent skills. The fact that it’s already used as a sub‑step by /produce-video signals composability. Keep an eye on it if you’re building media‑heavy agent pipelines; the skill’s ability to handle multiple output formats and warm container reuse could easily become a template for similar local MIT‑licensed tools. Re‑evaluate whenever you add a new task that needs speech‑to‑text with precise timing.

Featured Skill

transcribe-video

Skill by AlemTuzlak