- New: tools/yt_download.py with cookies support + rate limit tracking - New: docs/YOUTUBE-SETUP.md complete documentation - Updated: night-execute jobs to use new script - Updated: TOOLS.md with YouTube section - Added: 5 new YouTube notes (OpenClaw, cost optimization, task system, leads) - Added: credentials/ to .gitignore
3.2 KiB
3.2 KiB
YouTube Subtitle Download - Setup & Usage
Overview
Script pentru descărcarea subtitrărilor YouTube cu protecție rate limit și retry progresiv.
Cerințe
- yt-dlp - instalat global
- Deno - pentru JavaScript challenges (
~/.deno/bin/deno) - Cookies - din cont YouTube secundar (
credentials/youtube-cookies.txt)
Setup Cookies (o singură dată)
Opțiunea 1: Extensie Browser (Recomandat)
- Creează/folosește un cont Google secundar (pentru securitate)
- Loghează-te pe youtube.com cu acel cont
- Instalează extensia Get cookies.txt LOCALLY
- Click pe extensie → Export
- Pune fișierul în
credentials/youtube-cookies.txt
Opțiunea 2: yt-dlp direct (dacă ai browser local)
yt-dlp --cookies-from-browser firefox --cookies credentials/youtube-cookies.txt "https://youtube.com"
Utilizare
Download manual
# Un video
python3 tools/yt_download.py "https://youtu.be/VIDEO_ID"
# Mai multe video-uri (cu pauze automate)
python3 tools/yt_download.py URL1 URL2 URL3
# Verifică status rate limit
python3 tools/yt_download.py
Exit codes
| Code | Semnificație |
|---|---|
| 0 | Success - toate video-urile procesate |
| 1 | Erori parțiale - unele video-uri au eșuat |
| 2 | Rate limited (429) - s-a oprit, retry mai târziu |
| 3 | În cooldown - așteaptă timpul de retry |
Rate Limit Protection
Prevenire
- Cookies obligatorii - fără cookies, rate limit vine rapid
- Sleep 20s între video-uri
- Max 30 video-uri per sesiune
Progressive Retry
Când primim 429:
Prima dată → Retry în 2 ore
A doua oară → Retry în 4 ore
A treia oară → Retry în 24 ore
Success → Reset counter
State File
Rate limit state salvat în memory/youtube-rate-limit.json:
{
"last_429": "2026-02-03T07:00:00",
"retry_count": 1,
"blocked_until": "2026-02-03T09:00:00"
}
Integrare în Jobs
night-execute (23:00 București)
- Verifică rate limit înainte de a începe
- Procesează max 30 video-uri din
approved-tasks.md - Creează note în
memory/kb/youtube/
night-execute-late (03:00 București)
- Continuă cu restul video-urilor
- Mută task-uri pentru noaptea următoare
Troubleshooting
"Signature solving failed"
- Verifică că deno e instalat:
~/.deno/bin/deno --version - Scriptul folosește
--remote-components ejs:githubpentru a descărca solver-ul
"429 Too Many Requests"
- Verifică
memory/youtube-rate-limit.jsonpentru când e retry - Asigură-te că folosești cookies valide
- Nu rula manual când job-urile rulează
Cookies expirate
- Cookies expiră după câteva săptămâni
- Re-exportă din browser când nu mai funcționează
Securitate
- Folosește cont secundar pentru cookies
- Fișierul cookies NU e în git (
.gitignore) - Nu partaja
credentials/youtube-cookies.txt
Fișiere
| Fișier | Scop |
|---|---|
tools/yt_download.py |
Script principal |
credentials/youtube-cookies.txt |
Cookies YouTube |
memory/youtube-rate-limit.json |
State rate limit |
~/.deno/bin/deno |
JavaScript runtime |