Tony Wang4 min de lecturaCómo hacer scraping de YouTube en 2026 (API y Python)
Tres formas de hacer scraping de YouTube en 2026 — Python DIY, herramientas listas o una API estructurada para videos, comentarios y transcripciones.
La forma más rápida de hacer scraping de YouTube en 2026 es llamar a una API de YouTube estructurada que devuelve JSON normalizado — metadatos de video, resultados de búsqueda, comentarios y transcripciones — en lugar de analizar tú mismo las páginas de YouTube, cargadas de JavaScript. Puedes construir un scraper DIY o usar la Data API oficial (con sus cuotas), pero una API de scraping estructurada suele darte los campos que realmente necesitas con menos fricción. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde falla cada uno y lo básico legal.
¿Es legal hacer scraping de YouTube?
Hacer scraping de datos públicos de YouTube (metadatos públicos de video, resultados de búsqueda, comentarios públicos, subtítulos) es, en general, scraping de datos públicos de menor riesgo — pero los Términos de Servicio de YouTube restringen el acceso automatizado, y deberías evitar los datos personales y cualquier cosa restringida. Usa datos públicos y no personales, respeta los límites de tasa y revisa los términos de YouTube; consulta es legal el web scraping. No es asesoría legal.
Opción 1: DIY en Python (y por qué falla)
En realidad hay tres caminos DIY, y cada uno tiene su truco:
- La YouTube Data API v3 oficial es la vía sancionada, pero funciona con una cuota diaria de 10.000 unidades — y una sola llamada a
search.listcuesta 100 unidades, así que unas cuantas búsquedas profundas agotan el día en minutos. Los comentarios se limitan a entre 3.000 y 10.000 al día, y la Data API no devuelve transcripciones en absoluto. - Un navegador headless o los endpoints internos
/youtubei/v1/de YouTube te dan lo que ve el frontend, pero el JSON del cliente incrustado cambia sin previo aviso y activa las verificaciones antibots. - Las bibliotecas de transcripciones (por ejemplo,
youtube-transcript-api) son la solución fácil para los subtítulos:
from youtube_transcript_api import YouTubeTranscriptApi
segments = YouTubeTranscriptApi.get_transcript("dQw4w9WgXcQ", languages=["en"])
text = " ".join(s["text"] for s in segments)
print(text[:500])
Esa única llamada funciona hasta que el endpoint de subtítulos no documentado cambia, el video no tiene subtítulos o tu IP recibe un límite de tasa — y solo te da la transcripción, no los metadatos, comentarios o búsqueda que normalmente necesitas junto a ella. El verdadero costo está en unir la Data API limitada por cuota (metadatos), un navegador (búsqueda) y una biblioteca de transcripciones (subtítulos) en un pipeline confiable — además de los proxies, reintentos y monitoreo necesarios para mantenerlo funcionando.
Opción 2: Herramientas listas para usar
Los extractores sin código exportan CSV/JSON y sirven bien para extracciones puntuales — son menos prácticos para pipelines de producto con campos predecibles.
Opción 3: Una API de YouTube estructurada
Para flujos de trabajo repetibles, una API de scraping de YouTube devuelve JSON normalizado con una sola clave — sin navegador, sin cuota de Data API. Busca videos (usa q, con los filtros opcionales sort_by, upload_date y duration):
curl "https://api.crawlora.net/api/v1/youtube/search?q=langchain&sort_by=view_count" \
-H "x-api-key: $CRAWLORA_API_KEY"
Luego obtén los metadatos, comentarios y transcripción de un video por id en Python:
import requests
vid = "dQw4w9WgXcQ"
h = {"x-api-key": "YOUR_API_KEY"}
video = requests.get(f"https://api.crawlora.net/api/v1/youtube/video/{vid}", headers=h).json()["data"]
comments = requests.get(f"https://api.crawlora.net/api/v1/youtube/comments/{vid}", headers=h).json()["data"]["comments"]
transcript = requests.get(f"https://api.crawlora.net/api/v1/youtube/transcript/{vid}", headers=h).json()["data"]["segments"]
print(video["title"], "—", len(comments), "comments,", len(transcript), "transcript segments")
Los comentarios se paginan con un continuation_token, y el endpoint de transcripción puede devolver json, text, srt o vtt (e incluso traducir a otro idioma) — sin unidades de cuota que administrar. Una respuesta de video es JSON normalizado que puedes almacenar directamente (los campos son ilustrativos — revisa la documentación):
{
"code": 200,
"msg": "OK",
"data": {
"id": "dQw4w9WgXcQ",
"title": "Example video",
"channel": "Example Channel",
"view_count": 1840000,
"like_count": 92000,
"published": "2026-01-12"
}
}
Qué puedes recolectar
Donde la página pública los expone, agrupado por endpoint:
- Video — id, título, descripción, canal, conteos de vistas/likes/comentarios, duración, fecha de publicación y subtítulos, vía
/youtube/video/{id}. - Búsqueda — videos, canales y listas de reproducción con los filtros
sort_by,upload_dateyduration; paginación concontinuation_token. - Comentarios — comentarios de primer nivel y respuestas por video, paginados con
continuation_token. - Transcripciones — segmentos de subtítulos con marcas de tiempo en
json,text,srtovtt, con traducción opcional. - Canales — videos, listas de reproducción y shorts de un canal para investigación de creadores.
Limitaciones y desafíos comunes
- La cuota de la Data API limita la vía oficial (10.000 unidades/día;
search.listcuesta 100 unidades cada una), por lo que la búsqueda y recolección de comentarios de alto volumen se desplaza fuera de ella — un scraper estructurado no tiene unidades de cuota que administrar. - Las transcripciones no están garantizadas — no todos los videos tienen subtítulos, los subtítulos automáticos varían en calidad y la disponibilidad de idiomas difiere; solicita un
langy maneja los casos en que no haya resultado. - Los comentarios se paginan — sigue el
continuation_tokenen lugar de esperar todos los comentarios en una sola llamada. - Fragilidad del DIY — el JSON del cliente incrustado y los endpoints internos
/youtubei/v1/cambian sin previo aviso y activan las verificaciones antibots; una API estructurada absorbe eso detrás de una sola clave. - Contenido restringido — los videos con restricción de edad o región pueden no estar disponibles; recolecta solo datos públicos y no personales.
Dónde se usa esto
- Inteligencia de creadores — investiga canales, videos y comentarios. Consulta inteligencia de creadores de YouTube.
- Extracción de transcripciones — obtén subtítulos para resúmenes y RAG. Consulta extracción de transcripciones de YouTube.
- Contexto para agentes de IA — alimenta datos de video estructurados y transcripciones a los agentes.
Fuentes
Empieza a recolectar
Pruébalo primero, gratis: ejecuta cualquier URL pública a través del Free Web Scraper, o revisa si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints en el Playground, revisa el esquema en la documentación de la API y consulta los precios. Para una comparación completa frente a otras APIs de datos de YouTube, consulta las mejores APIs de scraping de YouTube en 2026. Consulta también cómo hacer scraping de Instagram, cómo hacer scraping de TikTok, cómo hacer scraping de Reddit y cómo hacer scraping de Twitter/X para el resto del stack social. Cuando el trabajo es de audio en lugar de video, cómo hacer scraping de Spotify cubre pistas, artistas y ubicación en listas de reproducción junto al catálogo de YouTube, y cómo hacer scraping de Apple Podcasts cubre los rankings de programas y episodios para podcasts que se publican en ambos. Para el conjunto de herramientas más amplio, cómo elegir una API de web scraping.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Puedo hacer scraping de YouTube sin que me bloqueen?
Con una API estructurada, el enrutamiento de proxies y la ejecución del navegador se gestionan detrás del endpoint; un scraper DIY debe manejar por sí mismo el JSON del cliente que cambia constantemente, los endpoints internos /youtubei/v1/ y las verificaciones antibots.
¿Puedo obtener transcripciones de YouTube?
Sí. El endpoint de transcripción devuelve segmentos de subtítulos con marcas de tiempo por id de video donde existen subtítulos, en json, text, srt o vtt, con traducción opcional a otro idioma. La YouTube Data API oficial no devuelve transcripciones en absoluto, por eso los equipos usan un scraper o una biblioteca como youtube-transcript-api.
¿Puedo hacer scraping de comentarios de YouTube?
Sí. El endpoint de comentarios devuelve comentarios de primer nivel y respuestas de un video, paginados con un continuation_token. La Data API oficial también puede devolver comentarios, pero su cuota diaria de 10.000 unidades te limita a aproximadamente 3.000–10.000 al día.
¿Por qué la YouTube Data API oficial es tan limitada?
Funciona con una cuota diaria de 10.000 unidades, y una sola llamada a search.list cuesta 100 unidades, así que la búsqueda profunda o la recolección de comentarios agota el día rápidamente — y no devuelve transcripciones. Esa cuota es la razón principal por la que los equipos trasladan la recolección de alto volumen de YouTube a un scraper.
¿Es esta la YouTube Data API oficial?
No. Extrae datos públicos de YouTube y es independiente de la Data API v3 oficial de YouTube y de sus unidades de cuota.
¿Qué datos de YouTube puedo recolectar?
Metadatos públicos de video y subtítulos, búsqueda (videos/canales/listas de reproducción con filtros de orden y fecha), comentarios y respuestas, transcripciones, y videos/listas de reproducción/shorts de canales.
¿Con qué frecuencia puedo actualizar?
Ejecuta capturas programadas dentro de tu plan y los límites de uso responsable.