El problema que resuelve
La transcripción manual limita los estudios a unas pocas decenas de vídeos, y los scripts de scraping improvisados se rompen y son difíciles de reproducir. Los investigadores necesitan una forma fiable de recopilar transcripciones completas para una muestra definida de canales y fechas, guardarlas con metadatos y compartir su método para que otros puedan replicarlo.
Qué incluir en tu primera versión
- Una muestra documentada de canales y un rango de fechas
- Transcripciones completas guardadas como JSON original con metadatos
- Origen de los subtítulos registrado para cada vídeo (manual, automático o IA)
- Exportación a CSV o texto para R, Python, NVivo o ATLAS.ti
- Un script de recogida que se puede volver a ejecutar para replicar el estudio
Cómo construirlo, paso a paso
- 01
Define la muestra
Enumera los canales y el periodo que vas a estudiar, y anota tus criterios de inclusión para la sección de metodología.
- 02
Resuelve las listas de vídeos
Llama a /channels/resolve para cada canal y filtra los resultados por fecha de publicación.
- 03
Recopila las transcripciones
Envía los IDs de vídeo a /batch y guarda la respuesta JSON completa, incluidos el idioma y el origen de los subtítulos de cada transcripción.
- 04
Prepara el análisis
Exporta las transcripciones como texto o CSV con el ID del vídeo, el canal, la fecha y las marcas de tiempo, y analízalas con modelos de temas, frecuencias de palabras clave o codificación cualitativa.
Código de inicio
Esta idea se basa en el patrón "Receta 3: carga en bloque una lista de reproducción en una base de conocimiento". Usa tus propios canales, prompts y almacenamiento.
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
"limit": 100}).json()
ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
"video_ids": ids,
"format": {"timestamp": True, "paragraphs": True},
}).json()
# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
if r["status"] == "completed":
for p in r["data"]["transcript"].get("paragraphs") or []:
store(video_id=r["video_id"], start=p["start"], text=p["text"]) # your vector DBPor qué vale la pena construirlo
Para los investigadores, el retorno es un conjunto de datos reproducible por una fracción del coste y el tiempo de la transcripción manual. Algunos equipos también crean conjuntos de datos de pago o servicios de análisis para empresas de monitorización de medios y think tanks.
Errores que debes evitar
- Mezclar subtítulos automáticos y humanos sin indicarlo: registra el origen de los subtítulos porque su precisión es distinta.
- No guardar las respuestas originales: conserva el JSON original para poder volver a ejecutar el análisis.
- Ignorar la revisión ética y los términos de la plataforma: consulta los requisitos de tu institución y los términos de YouTube antes de publicar conjuntos de datos.
Preguntas sobre esta idea
¿Puedo usar transcripciones de YouTube para investigación académica?
Muchos investigadores lo hacen. Consulta los requisitos éticos de tu institución, los términos de YouTube y la legislación sobre derechos de autor, sobre todo antes de compartir un conjunto de datos públicamente.
¿Qué precisión tienen los subtítulos automáticos de YouTube?
Depende de la calidad del audio, los acentos y el tema. La API indica si cada transcripción procede de subtítulos manuales, subtítulos automáticos o reconocimiento de voz por IA para que puedas tenerlo en cuenta.
¿Cuántos vídeos puedo recopilar a la vez?
Una sola solicitud en lote admite hasta 3000 IDs de vídeo en el plan Business. Los estudios más grandes pueden ejecutar varios lotes.