

# Cómo obtener una transcripción de YouTube y comprobar subtítulos faltantes

Para obtener una transcripción de un video de YouTube, abra la descripción del video conocido y seleccione Mostrar transcripción si existen subtítulos públicos. Los subtítulos utilizables existentes deben ser públicos en la página del video. Si un video no tiene subtítulos públicos, las herramientas de extracción automáticas o manuales no pueden leer un texto que no existe.

Incluso un solo video puede requerir tanto una copia de texto limpia para lectura como una copia de origen con tiempos para referencia. Puede usar un Actor, que es un programa alojado de recopilación de datos, configurado mediante una Task, que es un ajuste preestablecido de entrada guardado. Cuando se selecciona, JSON, que es un formato de texto estructurado, conserva los segmentos con tiempos, mientras que las salidas solo de texto no lo hacen.

## Comprensión de las fuentes de subtítulos y sus limitaciones

Los subtítulos de YouTube provienen de pistas manuales cargadas por el creador y del reconocimiento automático de voz generado por algoritmos de la plataforma. La documentación oficial indica que los videos con subtítulos tienen una transcripción disponible de forma directa a través del menú de descripción del video ([Ayuda de YouTube: Ver transcripciones](https://support.google.com/youtube/answer/15930243?hl=en-CA)). Sin embargo, los subtítulos automáticos pueden enunciar de forma incorrecta el habla debido a pronunciaciones incorrectas, acentos, dialectos o ruido de fondo ([Ayuda de YouTube: Subtítulos automáticos](https://support.google.com/youtube/answer/6373554?hl=en-CA)). Además, el silencio inicial prolongado y las voces superpuestas figuran como posibles problemas de generación de subtítulos en las referencias oficiales. Estas listas generales no diagnostican por sí solas un video específico.

Acceder a una pista de subtítulos públicos requiere que el video de destino exponga realmente subtítulos utilizables. Abrir una URL directa de video no es suficiente si la pista en sí falta o está deshabilitada. Tenga en cuenta que el acceso a subtítulos públicos es distinto del acceso general de visualización. No agrupe los videos no listados con los privados, ya que los videos no listados aún pueden exponer pistas de subtítulos públicos si el creador las habilita. Mantenga distintos los subtítulos faltantes, las discrepancias de idioma y los fallos de extracción.

## El método práctico para adquirir y comprobar transcripciones

1. Confirme el enlace directo exacto del video y registre su propósito principal de investigación antes de iniciar la extracción. Verifique que trabaja con una URL de video público conocida y no con una página de lista de reproducción o de canal.
2. Pruebe el video de forma nativa: abra su página, desplácese hasta la descripción y haga clic en Mostrar transcripción para comprobar si hay pistas disponibles. Si la acción no aparece, trátela como una indicación para la siguiente comprobación y no como un diagnóstico automático de privacidad.
3. Elija texto plano de lectura, evidencia con tiempos o ambos, y seleccione json y text juntos cuando necesite tanto un texto de lectura limpio como segmentos con tiempos.
4. Configure su entrada con una sola URL directa de video usando el array startUrls, establezca outputFormats en ["json", "text"] y mantenga includeFailedInputDetails habilitado. Dejar preferredLanguages vacío permite que el scraper seleccione la mejor pista disponible, mientras que un análisis estricto en inglés requiere establecerlo en ["en"].
5. Ejecute la extracción e inspeccione tanto las filas del dataset como el registro de resumen OUTPUT, usando campos como rowsWritten, successfulTranscriptRows, failedInputs y duplicateVideosSkipped para contabilizar sus entradas.
6. Tenga en cuenta que text es un campo de fila del dataset y no una descarga automática de archivo de texto. Abra una fila exitosa, copie el valor del campo text en su propio documento de lectura y conserve una exportación JSON de origen separada que contenga segmentos para los tiempos. Compruebe el videoId, el transcriptLanguageCode real y el transcriptLanguageName. Compare muestras de audio del inicio, el medio y el final con los segmentos de subtítulos correspondientes cuando [la redacción exacta importa](/es/articles/como-citar-un-video-de-youtube-con-precision/), y tenga en cuenta que las comprobaciones puntuales no certifican cada palabra. Mantenga las correcciones manuales separadas de sus datos de origen sin procesar.
7. Compruebe los códigos de error en la tabla de fallos para determinar el siguiente paso. Inspeccione la propiedad isRetryable y solo haga un reintento posterior limitado si ese valor es true.
8. Conserve la URL, el ID del video, el idioma real, el indicador automático o manual, la hora de recopilación scrapedAt, el estado del resultado, la copia de origen y las notas de corrección. Concluya con una decisión clara sobre si la transcripción cumple sus criterios de calidad y completitud.

## Automatización de la extracción con Actors estructurados

Cuando uno o más videos conocidos requieren texto de lectura guardado y evidencia con tiempos, el [Chronometrica YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper) ayuda a recopilar los datos. Este Actor lee pistas de subtítulos públicos existentes y puede suministrar una copia de texto legible y segmentos con tiempos cuando se seleccionan json y text.

Este Actor lee pistas de subtítulos públicos existentes. No crea reconocimiento de voz, no traduce texto, no descarga medios ni descubre videos.

Para configurar el Actor, usted proporciona una entrada. Puede explorar ajustes preestablecidos especializados, como el [YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-transcript-scraper) para un inicio con JSON y text, el [YouTube Transcripts as Plain Text](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-transcripts-plain-text) para un ajuste solo de texto, o el [YouTube Timestamped Transcript JSON](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-timestamped-transcript-json) para un ajuste solo de JSON. Tenga en cuenta que el ajuste solo de texto no conserva los segmentos con tiempos; use json y text juntos cuando necesite tanto texto de lectura como evidencia de tiempo.

La entrada startUrls toma un array de cadenas de URL directas de video. La entrada outputFormats acepta formatos como json y text. El parámetro includeFailedInputDetails controla si los informes detallados de error de entradas fallidas aparecen en el resumen de ejecución OUTPUT.

```json
{
  "startUrls": [
    "VIDEO_URL_TO_REPLACE"
  ],
  "outputFormats": [
    "json",
    "text"
  ],
  "includeFailedInputDetails": true
}
```

Automatización de la extracción con Actors estructurados

Reemplace todo el token VIDEO_URL_TO_REPLACE por una URL directa de video público conocida antes de ejecutar, porque el token mostrado es solo un marcador de posición.

## Interpretación de los resultados de ejecución y los campos de salida

Una ejecución de Actor produce filas de dataset y un registro de resumen de ejecución. Una fila de dataset representa una transcripción de video única exitosa, no una entrada ni un segmento. Las entradas fallidas no crean filas de dataset.

El OUTPUT es el registro de resumen de ejecución que contabiliza los éxitos, los fallos y los duplicados omitidos. Los campos clave de resumen incluyen inputsReceived, uniqueVideosPlanned, rowsWritten, successfulTranscriptRows, failedInputs, duplicateVideosSkipped, statusCounts, errorCodeCounts y failedInputDetails. No infiera que un video no tiene subtítulos solo a partir de un dataset vacío.

Con la configuración JSON y text de este artículo, cada fila exitosa contiene tanto la copia de lectura en texto plano como los datos de segmentos con tiempos. Seleccionar otros formatos de salida no significa automáticamente que los segmentos con tiempos se conserven en su dataset.

## Verificación de la calidad de salida y las métricas (FICTICIO)

Para evaluar la fiabilidad de la extracción, puede calcular métricas de muestra. Considere una ejecución ficticia etiquetada en la que preferredLanguages está establecido en ["en"]. Siete enlaces de entrada contienen cinco videos únicos y dos entradas duplicadas. Tres videos únicos producen transcripciones en inglés exitosas, uno no tiene subtítulos públicos y uno carece de una pista coincidente en inglés, lo que causa un error LANGUAGE_UNAVAILABLE. Si en su lugar se usara la preferencia vacía predeterminada, se podría seleccionar otra pista de idioma disponible, de modo que la ausencia de inglés por sí sola no haría fallar una ejecución predeterminada.

En esta muestra ficticia:

- Entradas totales: 7
- Videos únicos: 5 (3 exitosos, 2 fallidos)
- Entradas duplicadas: 2
- Filas de dataset escritas: 3

Disponibilidad de pistas utilizables = Videos únicos exitosos / Videos únicos totales = 3 / 5 = 60 por ciento.

Esta cifra del 60 por ciento describe la disponibilidad de pistas utilizables en esta muestra elegida, no la exactitud ni una tasa de YouTube en general.

Considere un ejemplo de tiempos ficticio separado en el que el primer segmento de subtítulos empieza a los 2 segundos, el último segmento de subtítulos termina a los 92 segundos y la duración total del video es de 100 segundos. El intervalo de subtítulos es 92 menos 2, que es igual a 90 segundos. Dividido por la duración total del video de 100 segundos, la razón es 90 sobre 100, o 0.90.

Una razón de intervalo de subtítulos de 0.90 describe solo el intervalo de subtítulos y no puede medir la exactitud de las palabras. Aún pueden existir huecos y errores de reconocimiento de palabras dentro de ese intervalo. Una ejecución exitosa en la plataforma no significa que cada entrada haya producido subtítulos.

## Diagnóstico y gestión de fallos

Un código de fallo describe la clase de fallo observada, más que proporcionar siempre la causa raíz exacta. Revise la tabla de códigos documentados y de siguiente acción que aparece a continuación para asociar cada error con su respuesta adecuada.

| Código de error | Condición notificada | Siguiente comprobación y acción |
| --- | --- | --- |
| TRANSCRIPT_NOT_FOUND | No hay pista pública disponible después de la búsqueda | Inspeccione la página de origen nativa; solicite subtítulos o use una transcripción autorizada por separado si es necesario. |
| LANGUAGE_UNAVAILABLE | No se encontró coincidencia del idioma solicitado | Compruebe las pistas de origen disponibles y conserve el requisito o cambie la política solo si es aceptable. |
| INVALID_INPUT / UNSUPPORTED_INPUT | Se proporcionó un objeto de entrada incorrecto | Reemplace la entrada por una cadena de URL directa de video. |
| VIDEO_UNAVAILABLE | Video no utilizable con causa desconocida | Compruebe la validez del enlace y el formato del ID del video. |
| AGE_RESTRICTED / LOGIN_REQUIRED | Video fuera del alcance público | Elija una fuente accesible; no existen promesas de elusión. |
| ACCESS_BLOCKED / TEMPORARY_FAILURE / TRANSCRIPT_PARSE_FAILED | Ocurrió un fallo de solicitud o de análisis | Inspeccione isRetryable y ejecute un reintento posterior limitado solo si es true. |

Verifique siempre sus diagnósticos de error con estas categorías documentadas. Tome una acción correctiva precisa según el código devuelto, en lugar de adivinar causas no verificadas.

## Acción final

Comience por abrir la descripción del video de destino y seleccionar Mostrar transcripción para verificar que los subtítulos existen de forma nativa. Cuando necesite procesar varios enlaces de forma eficiente, acceda al [Chronometrica YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper) y configure su entrada reemplazando el token de marcador de posición por una URL directa de video público, y mantenga habilitados los formatos de salida json y text.

Después de completar la ejecución, inspeccione tanto las filas del dataset como el registro de resumen OUTPUT para confirmar códigos de idioma correctos, text no vacío y diagnósticos de error. [Aumente el volumen de sus entradas](/es/articles/crear-corpus-transcripciones-youtube/) solo después de verificar con éxito sus resultados iniciales.

## Fuentes y lecturas adicionales

- [Ayuda de YouTube: Ver transcripciones](https://support.google.com/youtube/answer/15930243?hl=en-CA)
- [Ayuda de YouTube: Subtítulos automáticos](https://support.google.com/youtube/answer/6373554?hl=en-CA)
- [Actor de Apify: Chronometrica YouTube Transcript Scraper](https://apify.com/chronometrica/youtube-transcript-scraper)