Transcribe Anything — guide skill for captions & subtitles
For AI agents: find the right skill in one call —
curl -s "https://skills.varg.ai/api/search?q=<what the person wants>"returns the matching use case and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add.mdto its path. Before generating anything, show the person the options on the use-case page.
Transcribe hours of audio or video with whisper, whisperX or cloud STT: word timestamps, speaker labels, SRT/VTT.
- Type: Guide · Captions & subtitles
- Slug:
swyx-transcribe-anything - Status: live
- Publisher: Shawn Wang (swyx) (community)
- License: MIT
- Source: https://github.com/swyxio/skills/tree/main/transcribe-anything
- Works in: Claude Code, Codex, Cursor
- Requires: ffmpeg, At least one ASR backend (openai-whisper or MLX Whisper by default), HF_TOKEN with accepted pyannote terms for diarization (optional), Provider keys only for cloud backends (OPENAI_API_KEY, GROQ_API_KEY, DEEPGRAM_API_KEY, ASSEMBLYAI_API_KEY, GEMINI_API_KEY)
- Cost: Free with local backends; cloud backends bill your own provider keys
- Adoption: 10 installs, 176 GitHub stars (GitHub + skills.sh, 2026-10-26)
What it does
A backend-routing transcription guide from swyx: it prepares media with ffmpeg (audio extraction, silence detection and trimming, chunking under API size limits), then runs local Whisper, MLX Whisper, faster-whisper, whisper.cpp, insanely-fast-whisper or whisperX, or the OpenAI, Groq, Deepgram, AssemblyAI or Gemini APIs. It covers word-level timestamps (word_timestamps=True, whisperX alignment), pyannote or NeMo diarization with a QA gate, custom vocabulary and SRT/VTT export, although its default output is a Markdown transcript. Instructions only; the repo README says the collection reflects the author's own setup, and setup lines use pip3 install --break-system-packages.
Use when
- Transcribe a video, audio file or podcast
- Word-level timestamps to drive captions
- Speaker labels on a long interview
- Very long files (1–8+ hours) that need chunking
Not for
- Long diarization on a local CPU without explicit opt-in (the skill says not to)
- Styling or burning captions (pair with caption-animation or ffmpeg-captions-subtitles)
Install
- Claude Code:
npx skills add https://github.com/swyxio/skills --skill transcribe-anything - Codex:
npx skills add https://github.com/swyxio/skills --skill transcribe-anything - Cursor:
npx skills add https://github.com/swyxio/skills --skill transcribe-anything
Models it drives: whisper, whisperx, faster-whisper, gpt-4o-transcribe
More captions & subtitles skills
- 3D Camera Captions: Captions that live in 3D around a talking head: the camera flies through the words, heroes pass behind the speaker.
- Remotion Captions: Transcribe speech and burn in animated captions with Remotion, or import an existing SRT file.
- ElevenLabs Speech to Text: Transcribe audio and video with word timestamps, speaker labels and keyterms, ready for subtitles.
- ElevenLabs Speech to Text (inference.sh): Transcribe audio with ElevenLabs Scribe, speaker diarization and forced alignment, via inference.sh.
- Speech to Text: Transcribe audio with ElevenLabs Scribe v2 or Whisper V3 Large, with timestamps and speaker labels.
- Pretext Text Metrics: Measure and fit text without the DOM using pretext: auto-fit sizes, know line breaks before render, canvas/WebGL text.