YouTube, MediaCloud y Apify: fuentes sin RSS ni API estándar

admin · 2 min

YouTube Transcript: subtítulos sin Apify ni credenciales

El conector de YouTube extrae las transcripciones públicas directamente con youtube-transcript-api, sin pasar por la YouTube Data API ni por Apify. Solo funciona con vídeos que tienen subtítulos públicos activados.

La cascada de idiomas está ordenada por relevancia para el proyecto:

_PREFERRED_LANGS = ("es", "pt", "ca", "eu", "gl", "en", "fr", "de", "it")

def extract_transcript(video_id: str) -> tuple[str, str] | tuple[None, None]:
    # intenta cada idioma en orden; si no encuentra ninguno, acepta cualquiera disponible
    ...

La dependencia es opcional y se importa con graceful fallback: si youtube-transcript-api no está instalada, el conector simplemente no extrae transcripciones sin romper el pipeline.

MediaCloud: archivo de noticias con rotación de API keys

MediaCloud mantiene un archivo de decenas de millones de artículos online indexados por colecciones geográficas y temáticas. El conector soporta múltiples API keys con rotación round-robin para distribuir el uso:

# .env
MC_API_KEY=key_principal
MC_API_KEY_1=key_secundaria   # opcional — activates round-robin

El conector tiene rate limiting propio (1 s entre llamadas) y permite filtrar por colecciones de países. MediaCloud agrupa medios en colecciones por país, lo que facilita buscar solo en prensa española, latinoamericana o de cualquier región específica.

Apify: Google, Twitter/X y YouTube vía actores

Para fuentes que no tienen API pública (búsquedas de Google, tweets, resultados de YouTube), el pipeline usa Apify como capa de scraping gestionado. Cada fuente tiene su actor ID configurable por variable de entorno:

APIFY_API_TOKEN=apify_api_xxx
APIFY_GOOGLE_ACTOR_ID=nFJndFXA5zjCTuudP   # default
APIFY_TWITTER_ACTOR_ID=8CiMefkv2yLlD7vYl  # default
APIFY_YOUTUBE_ACTOR_ID=61RPP7dywgiy0JPD0  # default

Los actores corren de forma síncrona con timeout configurable (120 s por defecto). Si apify-client no está instalado o el token no está configurado, el conector falla con un aviso en logs y el pipeline continúa con el resto de fuentes.

admin

Editor en D4R.