Contexto: yt-extract — primer dataset real + métricas falsables (MX)

DATASET DESCARGADO: datasnaek/youtube-new  (el clásico "Trending YouTube Video Statistics")
- Archivo MX: data/MXvideos.csv (45MB) + data/MX_category_id.json
- Encoding: UTF-8 con bytes inválidos -> leer con encoding='utf-8', encoding_errors='replace'
- trending_date formato "YY.DD.MM" (ej "17.14.11" = 2017-11-14)
- publish_time tz-aware -> .dt.tz_localize(None) para restar fechas
 
COBERTURA MX: 2017-11-14 -> 2018-06-14 (solo ~6 meses, NO sirve para colapso 2015-2026)
  40,451 filas | 33,513 videos únicos | 6,924 canales
 
HALLAZGO CRITICO: endpoint videoTrainability FUNCIONA con solo API key (sin OAuth)
  GET youtube/v3/videoTrainability?id=VIDEO&key=KEY
  -> {"permitted": ["None"]}   (opt-out por defecto; valores "all" | "none" | lista)
  El OBSERVATORIO DE OPT-IN ES VIABLE con la Data API v3.
 
PRIMER RESULTADO FALSABLE (supervivencia en trending):
  84% de videos sobreviven exactamente 1 día en trending.
  Cola de supervivencia >=3 días por categoría:
    Comedy 5.9% > Music 5.3% > Gaming 3.7% > Travel 3.4% > News 3.4%
    ... abajo: Entertainment 2.1% > People&Blogs 2.0% > Education 1.1% > Howto 1.0%
  Lectura: entretenimiento pasivo (comedia/música) retiene la atención en trending
  más que el contenido "útil" (howto/education). Primera evidencia hacia la tesis
  de la gramática audiovisual.
 
REPETIBILIDAD = NIVEL CANAL, no video:
  - Reentrada de un MISMO video (días no contiguos): solo 15 de 33,513.
  - Los repetibles son granjas: Cracks 169 vids, Badabun 159, Troom Troom Es 137,
    Televisa Telenovelas 139, Las Estrellas 138... (contenido clip/reacción/DIY)
 
ARTEFACTO A FILTRAR: fila corrupta video_id="#NAME?" (export Excel), canal "Dreams Music",
  days_in_trending=188. Es glitch de tags con comas, no video real.
 
SIGUIENTE: extensión en vivo via chart=mostPopular&regionCode=MX (1 unidad API/50 vids)
+ probar trainability sobre lista RECARGADAS de medios independientes MX.