transcript-fetcherlisted
Install: claude install-skill MatrixFounder/Universal-skills
# Transcript Fetcher
**Purpose**: Given a video URL, produce a clean plain-text transcript
ready for downstream summarization or analysis. Single responsibility:
fetch + clean. Composes well with `summarizing-meetings` (run this
first, then feed the resulting `.txt` to that skill).
**Dependencies**: `yt-dlp` is **vendored in `scripts/.venv`** (installed
by `scripts/install.sh`) — it is **NOT on `$PATH`** and never will be. Do
**NOT** `which yt-dlp`, `pip install yt-dlp`, or `brew install yt-dlp`
globally — a missing `$PATH` entry does not mean yt-dlp is absent, it
means the check was wrong; this exact false-negative once caused a
manual out-of-skill workaround. The two canonical readiness probes are
`scripts/.venv/bin/python -m yt_dlp --version` and
`scripts/.venv/bin/python scripts/fetch.py doctor` (§4 Script Contract;
the latter also reports ffmpeg + ASR backends — see the ASR portability
note under §5 Safety Boundaries). Callers that shell in (e.g. a
downstream integrator) MUST invoke the **venv interpreter** directly
(`scripts/.venv/bin/python`), never a `$PATH` `python`.
## 1. Red Flags (Anti-Rationalization)
**STOP and READ THIS if you are thinking:**
- "I'll just paste the URL into the model and ask it to transcribe" -> **WRONG**. Models do not have audio access and will hallucinate. Always run `fetch.py` and read back the resulting `.txt`.
- "Manual `ru` failed, I'll just use `en` auto-translation, no warning needed" -> **WRONG**. Auto-translated English subtitle