Files
clawd/docs/YOUTUBE-SETUP.md
Echo 762ac21681 YouTube rate limit protection + progressive retry system
- 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
2026-02-03 07:11:21 +00:00

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

  1. yt-dlp - instalat global
  2. Deno - pentru JavaScript challenges (~/.deno/bin/deno)
  3. Cookies - din cont YouTube secundar (credentials/youtube-cookies.txt)

Setup Cookies (o singură dată)

Opțiunea 1: Extensie Browser (Recomandat)

  1. Creează/folosește un cont Google secundar (pentru securitate)
  2. Loghează-te pe youtube.com cu acel cont
  3. Instalează extensia Get cookies.txt LOCALLY
  4. Click pe extensie → Export
  5. 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:github pentru a descărca solver-ul

"429 Too Many Requests"

  • Verifică memory/youtube-rate-limit.json pentru 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