

# Cómo crear un corpus de transcripciones de YouTube a partir de resultados de búsqueda

Para crear un corpus de transcripciones de YouTube, tenés que definir las reglas de investigación, encontrar IDs de video únicos mediante consultas de búsqueda y vincular cada video seleccionado con un resultado de subtítulos o un fallo. Un Actor es un programa alojado en un servidor que recopila datos. Una Task es una configuración de entrada guardada. Un corpus es tu colección final de fuentes. La búsqueda de videos y la extracción de subtítulos son pasos separados. Un resultado de búsqueda no es una transcripción, y la falta de subtítulos no significa que falte el tema.

## Configuración de la recopilación

Usás [YouTube Search Actor](https://apify.com/chronometrica/youtube-search-scraper) para encontrar videos y [YouTube Transcript Actor](https://apify.com/chronometrica/youtube-transcript-scraper) para obtener subtítulos. La Task pública [YouTube Video URLs for Transcript Workflows](https://apify.com/chronometrica/youtube-search-scraper/examples/youtube-video-urls-for-transcripts) tiene una configuración predeterminada con 2 consultas genéricas, `maxResults: 100`, `resultsPerQuery: 50`, `maxPagesPerQuery: 1`, `searchDistribution: "balanced"`, `includeShorts: true`, `enableQueryExpansion: false`, `enrichWithVideoMetrics: false`, `enrichMissingChannelFields: true` y `maxChannelEnrichmentRequests: 100`.

Para la prueba piloto, modificá la entrada para usar 1 consulta pertinente, `maxResults: 2`, `resultsPerQuery: 2` y `maxPagesPerQuery: 1`. Desactivá el enriquecimiento opcional de datos del canal (`enrichMissingChannelFields: false`), la expansión de consultas y las métricas. El parámetro `maxResults` se aplica al total de la ejecución, mientras que `resultsPerQuery` limita cada búsqueda por separado.

La salida de búsqueda devuelve estos campos exactos: `rootQuery`, `query`, `querySource`, `postId`, `postUrl`, `postType`, `isShort`, `title`, `description`, `channelId`, `channelUrl`, `publishedAt`, `status`, `statusReason` y `observedAt`. Las fechas de publicación desconocidas siguen siendo desconocidas; no inventes fechas a partir de las posiciones en los resultados de búsqueda. La prueba de control verificada con 2 candidatos se detiene porque alcanza `max_items_reached`, no porque cubra todo el tema.

Para recopilar subtítulos, pasá URLs directas de videos a `startUrls` en YouTube Transcript Actor. Definí tu política de `preferredLanguages`, elegí `outputFormats=["json"]` y configurá `includeFailedInputDetails=true` cuando necesites detalles de los fallos. La salida devuelve estas claves exactas: `videoId`, `videoUrl`, `transcriptLanguageCode`, `isAutoGenerated`, `segments`, `status` y `scrapedAt`, además de los fallos de entrada en OUTPUT. Al pasar a YouTube Transcript Actor 1 URL exacta encontrada en la búsqueda, se verificó la coincidencia de su `videoId` y de la identidad, el idioma y las marcas de tiempo de sus subtítulos manuales en inglés. Esta es una verificación del proceso limitada a 1 video, no una medida de la disponibilidad de subtítulos para todo el tema. La obtención de subtítulos solo trabaja con las pistas disponibles públicamente; no genera audio ni traduce pistas no disponibles. Cada video procesado con éxito produce 1 fila en el conjunto de datos, pero cada entrada seleccionada debe tener un resultado en el registro.

## Método de 8 acciones

1. Definí las reglas de investigación: Antes de buscar, anotá tus preguntas de investigación, tu política de idiomas, tu política sobre la pertinencia de las fechas y tus reglas de inclusión o exclusión. Identificá qué debe explicar un video para ser útil. No uses la cantidad de visualizaciones como sustituto de la pertinencia.
2. Ejecutá un grupo pequeño de consultas: Creá un grupo pequeño de consultas que cubra distintas partes de la pregunta. Empezá con 1 consulta y 2 candidatos. Guardá la entrada, la hora de observación, los límites y la salida. Mantené desactivada la expansión de consultas hasta verificar si es necesaria y cómo funciona.
3. Seleccioná las fuentes reales: Revisá los títulos, las descripciones y el video disponible en la fuente antes de seleccionar. Registrá si cada video está seleccionado, excluido o pendiente, junto con el motivo. Un título por sí solo no demuestra que el video realmente aborde tu pregunta. Las fechas de publicación que faltan siguen siendo desconocidas; no clasifiques un video como reciente solo por su posición en los resultados.
4. Normalizá la identificación de los videos: Normalizá los datos según la identidad exacta de cada video y conservá las consultas y la evidencia de las fuentes. Si 1 video aparece varias veces en las búsquedas, no se convierte en varios videos distintos. Conservá las distintas ediciones o cargas como IDs de fuente separados, salvo que una regla justificada del estudio las agrupe.
5. Recopilá subtítulos por lotes: Pasá las URLs directas de los videos seleccionados a YouTube Transcript Actor en un lote pequeño. Mantené la política de idiomas elegida y revisá los fallos de salida. La obtención de subtítulos trabaja con las pistas disponibles públicamente; no genera audio ni traduce pistas no disponibles.
6. Creá un registro de subtítulos: Creá un registro que incluya cada video seleccionado. Anotá el ID seleccionado, la fuente donde se encontró, el estado, la identidad del resultado de subtítulos, el idioma, los tiempos de los subtítulos, la categoría del fallo o el motivo por el que sigue pendiente. Usá la salida para asignar a cada ID seleccionado un resultado: éxito, fallo, sin intento o sin resolver. Contar solo las filas procesadas con éxito del conjunto de datos oculta las entradas que no produjeron ninguna fila.
7. Revisá la calidad y la cobertura: Revisá la calidad de las pistas y las fuentes para tu estudio. Conservá junto con los subtítulos el idioma y la indicación de si son automáticos o manuales. Decidí si podés excluir los videos no disponibles o sin coincidencia sin cambiar tu pregunta de investigación. Informá esa limitación de la selección en lugar de eliminar videos sin indicarlo.
8. Entregá los archivos finales: Entregá la tabla de selección de videos, el registro de subtítulos y la definición del conjunto de fuentes incluidas. Solo después aplicá los métodos de análisis posteriores. Este conjunto limitado no permite afirmar que representa a una población, que existe demanda sobre el tema ni que se cubrió un canal completo.

## Ejemplo resuelto de un corpus ficticio

Todos los IDs, textos, fuentes y estados de este ejemplo son inventados. Los resultados de 2 lotes de consultas contienen 8 apariciones de candidatos con 6 IDs de video únicos. La consulta 1 encuentra los videos V1, V2, V3 y V4. La consulta 2 encuentra los videos V2, V4, V5 y V6. Agrupá estas 8 apariciones por sus 6 IDs únicos. Conservá las 2 consultas de origen de V2 y V4 como notas para el lector.

Durante la revisión de inclusión, seleccioná V1, V2, V4 y V5 porque abordan explícitamente la pregunta. Excluí V3 porque es solo un anuncio. Dejá V6 pendiente porque no se verificaron su contenido ni su contexto de fecha. Los 4 videos seleccionados pasan a la recopilación de subtítulos.

Los resultados de subtítulos muestran que V1 se procesa con éxito con una pista manual en inglés y V2 con una pista automática en inglés. V4 presenta un fallo clasificado como idioma no disponible y V5 presenta un fallo de acceso a la fuente. El conjunto de datos de subtítulos contiene 2 filas procesadas con éxito, mientras que el registro abarca los 4 IDs seleccionados. De los 4 videos seleccionados, 2 se procesaron con éxito y 2 fallaron. V6 estaba pendiente de selección, por lo que no fue una entrada fallida de subtítulos: nunca se seleccionó ni se intentó procesar.

El corpus final de fuentes contiene V1 y V2 y conserva la distinción entre subtítulos manuales y automáticos. Solo responde las partes que esos videos permiten sustentar. Las preguntas que solo abordaban V4 y V5 quedan sin respuesta o requieren buscar otras fuentes que cumplan los criterios. No interpretes este resultado como una medida de exactitud de las palabras, de cobertura de subtítulos de todos los videos del nicho ni de disponibilidad pública. Es simplemente la cantidad de entradas seleccionadas que se procesaron con éxito en este ejemplo ficticio.

La primera tabla muestra las 6 filas de selección de videos únicos.

| ID del video | Fuente del hallazgo | Estado de inclusión | Motivo o notas |
| --- | --- | --- | --- |
| V1 | Consulta 1 | Seleccionado | Explica el tema central con claridad |
| V2 | Consulta 1, Consulta 2 | Seleccionado | Aborda la 2.ª parte de la pregunta (las apariciones en las consultas son notas para el lector) |
| V3 | Consulta 1 | Excluido | Es solo un anuncio |
| V4 | Consulta 1, Consulta 2 | Seleccionado | Aborda la 3.ª parte del tema |
| V5 | Consulta 2 | Seleccionado | Aborda la 4.ª parte del tema |
| V6 | Consulta 2 | Pendiente | No se verificaron el contenido ni el contexto de fecha |

La segunda tabla muestra las 4 filas del registro de intentos de obtención de subtítulos.

| ID seleccionado | Fuente del hallazgo | Estado de los subtítulos | Idioma | Categoría del fallo o motivo |
| --- | --- | --- | --- | --- |
| V1 | Consulta 1 | Éxito | Inglés | Pista manual recopilada |
| V2 | Consulta 1, Consulta 2 | Éxito | Inglés | Pista automática recopilada |
| V4 | Consulta 1, Consulta 2 | Fallido | Ninguno | Fallo clasificado como idioma no disponible |
| V5 | Consulta 2 | Fallido | Ninguno | Fallo de acceso a la fuente |

La tercera tabla muestra las 2 entradas de fuentes de subtítulos incluidas.

| ID incluido | Estado de los subtítulos | Idioma | Alcance de uso |
| --- | --- | --- | --- |
| V1 | Éxito | Inglés (manual) | Responde la parte central del tema |
| V2 | Éxito | Inglés (automático) | Responde la 2.ª parte del tema |

## Próxima acción

Abrí [YouTube Search Actor](https://apify.com/chronometrica/youtube-search-scraper) y probá tu primera búsqueda. Después, revisá la [Task guardada YouTube Video URLs for Transcript Workflows](https://apify.com/chronometrica/youtube-search-scraper/examples/youtube-video-urls-for-transcripts) para vincular cada video seleccionado con su resultado mediante YouTube Transcript Actor [antes de indexarlo](/es/articles/fragmentos-de-youtube-para-rag/).

## Fuentes y lecturas adicionales

- [YouTube Search Actor](https://apify.com/chronometrica/youtube-search-scraper)
- [YouTube Transcript Actor](https://apify.com/chronometrica/youtube-transcript-scraper)
- [Guía de obtención de subtítulos](https://chronometrica.com/es/articles/extraccion-de-subtitulos-de-youtube/)
- [Discusión sobre RAG en Reddit](https://www.reddit.com/r/Rag/comments/1rm7cxi/experiment_turning_youtube_channels_into_ragready/)