claude-transcribe
Transcribe video and audio from URLs (YouTube, X/Twitter, TikTok, Vimeo, podcasts) or local media files into plain-text transcripts using yt
Open source Open in the app JSON README (API)
About
Transcribe video and audio from URLs (YouTube, X/Twitter, TikTok, Vimeo, podcasts) or local media files into plain-text transcripts using yt-dlp + OpenAI Whisper. Auto-triggers when you ask Claude to research, transcribe, summarise, or take notes on a video. Runs entirely on-device — no audio is uploaded anywhere. Browser cookies are passed to yt-dlp automatically so age-gated and members-only sources work for signed-in users.
Details
- Kind
- Plugins
- Topic
- AI, RAG & memory
- Publisher
- alicicek
- Origin
- marketplace
- Category
- ferramentas
- Last push
- 2026-04-27T00:28:33Z
- Repository state
- ativo
- Language
- Shell
- License
- MIT
- Added
- 2026-08-30 01:48:58
- Updated
- 2026-08-30 01:48:58
- Origin id
alicicek/claude-transcribe/claude-transcribe
README
# claude-transcribe A Claude Code plugin that turns any video or audio — a YouTube link, an X / TikTok / Vimeo URL, a podcast, or a local media file — into a plain-text transcript that Claude can read and reason about. Auto-triggers when you ask Claude to *research*, *transcribe*, *summarise*, or *take notes on* a video, so most of the time you just paste a URL and ask your question. Powered by [yt-dlp](https://github.com/yt-dlp/yt-dlp) + [OpenAI Whisper](https://github.com/openai/whisper). Runs entirely on your machine — nothing is uploaded. --- ## Install You'll need [Claude Code](https://claude.com/claude-code) and (on macOS) [Homebrew](https://brew.sh). Linux works too — see [Manual install](#manual-install). In Claude Code: ``` /plugin marketplace add alicicek/claude-transcribe /plugin install claude-transcribe@alicicek-marketplace ``` The plugin itself ships through npm (`claude-transcribe` on [npmjs.com](https://www.npmjs.com/package/claude-transcribe)) — that's a deliberate choice so the install uses HTTPS and works without GitHub SSH keys, while the marketplace catalog stays on GitHub for visibility. The first time the plugin loads, a `SessionStart` hook installs `yt-dlp`, `ffmpeg`, `python@3.13`, and `openai-whisper` (in an isolated venv at `~/.local/share/claude-transcribe/whisper-venv`). Subsequent sessions skip the install. ## Use Just ask: > research this video https://www.youtube.com/watch?v=… > > what's said in this clip: https://x.com/…/status/… > > transcribe ~/Downloads/podcast.mp3 and summarise the main points Or invoke the skill explicitly: ``` /transcribe-media <url-or-file> [model] ``` The skill runs `bin/transcribe-url`, which: 1. Downloads the audio track with `yt-dlp` (using your browser cookies automatically, so age-gated and members-only videos work if you're signed in). 2. Transcribes with Whisper. 3. Writes the transcript to `$TMPDIR/claude-transcribe/<title>.txt` and prints the path. Claude then reads the transcript and answers whatever you actually asked. ### Choosing a Whisper model | Model | Size | Speed | When to use | |---|---|---|---| | `tiny.en` | ~75 MB | fastest | Quick sanity check, very clear English | | `base.en` | ~150 MB | fast | Decent default for English | | `small.en` | ~250 MB | medium **(default)** | Most English content, technical jargon | | `medium` | ~1.5 GB | slow | Non-English, heavy accents, music+speech mix | | `large-v3` | ~3 GB | slowest | Maximum accuracy, long-form professional content | Pass it as the second argument: `/transcribe-media <url> medium`. Models are cached at `~/.cache/whisper/` after first download. ### Where transcripts go By default: `$TMPDIR/claude-transcribe/` — your per-user temp directory, which macOS auto-purges every ~3 days for files older than 3 days. Override with the `CLAUDE_TRANSCRIBE_OUTDIR` environment variable: ```bash export CLAUDE_TRANSCRIBE_OUTDIR="$HOME/Documents/transcripts" ``` ## Manual install If you're on Linux, prefer not to use the SessionStart hook, or want to call the script outside Claude Code: ```bash # macOS brew install yt-dlp ffmpeg python@3.13 # Debian/Ubuntu sudo apt install yt-dlp ffmpeg python3.13 python3.13-venv # Then create the whisper venv (works on both) python3.13 -m venv ~/.local/share/claude-transcribe/whisper-venv ~/.local/share/claude-transcribe/whisper-venv/bin/pip install -U openai-whisper ``` To use the script directly from your shell, add the plugin's `bin/` to your `PATH` or symlink it. The exact plugin install path depends on your Claude Code version — check with `/plugin list`. ## Privacy - **Everything runs locally.** Audio is downloaded to a temp directory, transcribed by Whisper on your CPU, written to your filesystem, and never sent anywhere else. - **Browser cookies** are passed to `yt-dlp` so authenticated downloads work. They never leave your machine. The plugin only reads cookies for the domain you're downloading from, the same way `yt-dlp --cookies-from-browser` does normally. - **Transcripts auto-expire.** They live in `$TMPDIR`, which macOS cleans automatically. Set `CLAUDE_TRANSCRIBE_OUTDIR` to keep them. The full privacy policy — including every third-party service the plugin touches and where each piece of data lives on your machine — is at [PRIVACY.md](PRIVACY.md). ## Troubleshooting | Symptom | Fix | |---|---| | `yt-dlp: ERROR: Sign in to confirm you're not a bot` | The wrapper auto-tries browser cookies. If both attempts fail, sign into the source site once in your browser and retry. | | Download fails with a generic yt-dlp error | `brew upgrade yt-dlp` — sites change format and yt-dlp ships near-daily fixes. | | `whisper: command not found` after install | The hook may have failed silently. Run `bash ~/.claude/plugins/<…>/claude-transcribe/hooks/install-deps.sh` manually and check the output. | | Transcript looks garbled / non-English | Pass `medium` or `large-v3` as the second argument. The default `small.en` is English-only. | ## How it's structured ``` claude-transcribe/ ├── .claude-plugin/ │ ├── plugin.json # plugin manifest │ └── marketplace.json # makes this repo a Claude Code marketplace ├── skills/ │ └── transcribe-media/ │ └── SKILL.md # instructions Claude follows ├── bin/ │ └── transcribe-url # the actual download + transcribe script ├── hooks/ │ └── install-deps.sh # first-run installer ├── README.md └── LICENSE ``` ## Licence [MIT](LICENSE) © Ali Cicek