youtube-transcriptlisted
Install: claude install-skill createusernam/setup_project
# Youtube Transcript
IRON LAW: NEVER give up after one method fails. Try the methods in order until one succeeds.
## Read this first — the 2025+ reality
YouTube now aggressively gates the player/transcript endpoints. If you see
**"Sign in to confirm you're not a bot"** (yt-dlp) or **`RequestBlocked`/`IpBlocked`**
(youtube-transcript-api), the request was refused on **identity/IP grounds**, not
format. On a datacenter IP, a VPN exit, or a rate-limited residential IP, the
anonymous methods (1–3) will ALL fail — including a real browser and a valid PO
token. Proven: a genuine Playwright browser gets a caption-stripped player
response, and a correctly-minted bgutil PO token is still refused. **The only
thing that reliably passes the wall is a logged-in session → go to Method C.**
```
Progress:
- [ ] Step 1: Check dependencies
- [ ] Step 2: Method 1 — youtube-transcript-api (fast; works on clean IPs)
- [ ] Step 3: Method 2 — yt-dlp player clients (if M1 blocked)
- [ ] Step 4: Method 3 — direct timedtext scrape (if M1–2 blocked)
- [ ] Step 5: Method C — yt-dlp + cookies.txt ← RELIABLE when "not a bot" wall appears
- [ ] Step 6: Save clean text and report which method worked
```
## Step 1: Check dependencies
```bash
python3 scripts/check-deps.py # installs: pip install --user youtube-transcript-api yt-dlp
```
## Method 1 — youtube-transcript-api (try first)
```bash
python3 scripts/yt-transcript.py <video_id_or_url> --lang en,ru --output out.txt
```
Fast when th