{
  "markdown": "# claude-transcribe\n\nA 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.\n\nAuto-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.\n\nPowered 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.\n\n---\n\n## Install\n\nYou'll need [Claude Code](https://claude.com/claude-code) and (on macOS) [Homebrew](https://brew.sh). Linux works too — see [Manual install](#manual-install).\n\nIn Claude Code:\n\n```\n/plugin marketplace add alicicek/claude-transcribe\n/plugin install claude-transcribe@alicicek-marketplace\n```\n\nThe 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.\n\nThe 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.\n\n## Use\n\nJust ask:\n\n> research this video https://www.youtube.com/watch?v=…\n>\n> what's said in this clip: https://x.com/…/status/…\n>\n> transcribe ~/Downloads/podcast.mp3 and summarise the main points\n\nOr invoke the skill explicitly:\n\n```\n/transcribe-media <url-or-file> [model]\n```\n\nThe skill runs `bin/transcribe-url`, which:\n\n1. 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).\n2. Transcribes with Whisper.\n3. Writes the transcript to `$TMPDIR/claude-transcribe/<title>.txt` and prints the path.\n\nClaude then reads the transcript and answers whatever you actually asked.\n\n### Choosing a Whisper model\n\n| Model | Size | Speed | When to use |\n|---|---|---|---|\n| `tiny.en` | ~75 MB | fastest | Quick sanity check, very clear English |\n| `base.en` | ~150 MB | fast | Decent default for English |\n| `small.en` | ~250 MB | medium **(default)** | Most English content, technical jargon |\n| `medium` | ~1.5 GB | slow | Non-English, heavy accents, music+speech mix |\n| `large-v3` | ~3 GB | slowest | Maximum accuracy, long-form professional content |\n\nPass it as the second argument: `/transcribe-media <url> medium`. Models are cached at `~/.cache/whisper/` after first download.\n\n### Where transcripts go\n\nBy default: `$TMPDIR/claude-transcribe/` — your per-user temp directory, which macOS auto-purges every ~3 days for files older than 3 days.\n\nOverride with the `CLAUDE_TRANSCRIBE_OUTDIR` environment variable:\n\n```bash\nexport CLAUDE_TRANSCRIBE_OUTDIR=\"$HOME/Documents/transcripts\"\n```\n\n## Manual install\n\nIf you're on Linux, prefer not to use the SessionStart hook, or want to call the script outside Claude Code:\n\n```bash\n# macOS\nbrew install yt-dlp ffmpeg python@3.13\n\n# Debian/Ubuntu\nsudo apt install yt-dlp ffmpeg python3.13 python3.13-venv\n\n# Then create the whisper venv (works on both)\npython3.13 -m venv ~/.local/share/claude-transcribe/whisper-venv\n~/.local/share/claude-transcribe/whisper-venv/bin/pip install -U openai-whisper\n```\n\nTo 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`.\n\n## Privacy\n\n- **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.\n- **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.\n- **Transcripts auto-expire.** They live in `$TMPDIR`, which macOS cleans automatically. Set `CLAUDE_TRANSCRIBE_OUTDIR` to keep them.\n\nThe 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).\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| `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. |\n| Download fails with a generic yt-dlp error | `brew upgrade yt-dlp` — sites change format and yt-dlp ships near-daily fixes. |\n| `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. |\n| Transcript looks garbled / non-English | Pass `medium` or `large-v3` as the second argument. The default `small.en` is English-only. |\n\n## How it's structured\n\n```\nclaude-transcribe/\n├── .claude-plugin/\n│   ├── plugin.json         # plugin manifest\n│   └── marketplace.json    # makes this repo a Claude Code marketplace\n├── skills/\n│   └── transcribe-media/\n│       └── SKILL.md        # instructions Claude follows\n├── bin/\n│   └── transcribe-url      # the actual download + transcribe script\n├── hooks/\n│   └── install-deps.sh     # first-run installer\n├── README.md\n└── LICENSE\n```\n\n## Licence\n\n[MIT](LICENSE) © Ali Cicek\n",
  "bytes": 5496,
  "sha": "d6559fa4a72951fff7f8f2fd565713dee0e18d36d70ac82b8ba03df85b024d73",
  "repo_slug": "alicicek/claude-transcribe",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_alicicek_claude_transcribe_claude_transc_e007bbe9/readme"
}