Contexto: yt-extract — programación (cron) + arquitectura tiempo real
CRON DIARIO (seteado): crontab: 0 7 * * * ~//Downloads/yt-extract/scripts/daily.sh >> ~//Downloads/yt-extract/data/daily.log 2>&1 scripts/daily.sh -> .venv/bin/python -m yt.observatory append_history(): escribe data/historia_observatorio.csv (fecha + fila por canal). La historia NO sobrescribe -> serie de tiempo de opt_in / stale / actividad.TIEMPO REAL — HECHOS DUROS: - API YouTube = pull-only. No webhooks para trainability ni trending. - Cuota gratis 10k uds/dia ~= 7 uds/min sostenidas. Polling continuo de 38 canales reventaria la cuota (~10k/dia). - El UNICO push gratis real es WebSub/RSS de UPLOADS nuevos: https://www.youtube.com/feeds/videos.xml?channel_id=... (soporta WebSub/pubsubhubbub). No cubre trainability ni trending.ARQUITECTURA REAL-TIME (sin pagar): 1) WebSub subscribe a los feeds RSS de los 38 canales -> push en upload nuevo. 2) Receptor: Cloudflare Worker (escribe D1/KV/R2, sin laptop encendida) o Cloudflare Tunnel a la maquina local (local-first). 3) Trainability reactiva: cada push -> 1 query videoTrainability (1 ud). Scan diario = respaldo/backstop. 4) Trending sin push -> poll cada 15-30 min (1 ud/poll). Ceiling: si se quiere MUCHO mas -> cuota pagada o nada.STACK DEL USUARIO APLICABLE: skills Cloudflare (Workers, Wrangler, Tunnel),D1/KV/R2, Supabase (ya en surtido), local-first System76+Ollama.