Cómo crear subtítulos, transcripción y capítulos para un pódcast o un vídeo de YouTube

Basta con transcribir el episodio una sola vez con marcas de tiempo por palabra para sacar de ahí todo lo demás: el archivo de subtítulos SRT, la transcripción para las notas del programa, los subtítulos traducidos y las marcas de capítulo. A la API puedes pasarle un archivo subido o el enlace a un archivo multimedia. Ten en cuenta que una página de YouTube es una página web, así que debes usar tu propio audio o vídeo exportado.

Obtener una clave de API Inicio rápido Idiomas compatibles

Última actualización: · Markdown

Transcribe una sola vez

Exporta el audio del episodio (en MP3 o M4A) o el vídeo, súbelo usando la función auxiliar de la guía de edición de vídeo y pide la respuesta en JSON:

{
  "audio_url": "https://example.com/interview.mp3",
  "model": "oracle",
  "language": "auto",
  "word_timestamps": true,
  "output_format": "json"
}

En entrevistas y charlas con varios participantes, añade include_diarization: true para que la transcripción indique quién habla en cada momento.

Subtítulos en archivo SRT

Agrupa las palabras en líneas y sube el .srt a YouTube Studio o a tu servicio de alojamiento de podcasts. En la guía de SRT encontrarás el código y cómo funciona la salida SRT directa de la API, que genera una línea por palabra.

Subtítulos traducidos

Para traducir, envía otra tarea con el mismo archivo usando translate_to (en modelos Oracle) y output_format: "srt", o bien pásale el texto del primer resultado a tu LLM. Si lanzas un trabajo por cada idioma de destino, los subtítulos seguirán sincronizados con el audio.

Transcripción para las notas del episodio

Pide output_format: "txt" si quieres texto plano, o junta los campos text de los tramos del JSON añadiendo el nombre de cada hablante. Dale un repaso antes de publicar, porque las transcripciones automáticas suelen fallar en nombres propios, marcas y cifras.

Capítulos con marcas de tiempo

Pásale al LLM los tramos numerados y pídele que te indique dónde empieza cada capítulo usando el número de tramo, nunca el minuto exacto. Luego, saca las marcas de tiempo desde tu código a partir de esos tramos. Este prompt sirve para cualquier modelo:

Below is a podcast transcript, one line per segment: S<number> [start-end] text.
Pick 5 to 9 chapter starts. For each give the segment number and a title of at most six words.
Return JSON: [{"segment": 0, "title": "Intro"}]. The first chapter must be segment 0.

chapters.py

# chapters.py — YouTube chapter lines from (seconds, title) pairs
def stamp(seconds):
    m, s = divmod(int(seconds), 60)
    h, m = divmod(m, 60)
    return f"{h}:{m:02}:{s:02}" if h else f"{m}:{s:02}"


def chapter_lines(chapters):
    return "\n".join(f"{stamp(start)} {title}" for start, title in chapters)


print(chapter_lines([(0, "Intro"), (95, "Why captions matter"), (412, "Editing from a transcript")]))

YouTube transforma automáticamente una lista de tiempos de la descripción en capítulos si el primero empieza en 0:00, hay como mínimo tres en orden ascendente y cada uno dura al menos diez segundos.

Cuánto cuesta

TrabajoModeloCoste
Episodio de una hora, audio clarobase0,48 US$
Episodio de una hora, calidad de producción con identificación de hablantesoracle1,44 US$
Subtítulos traducidos, una horaoracle_mini0,96 US$

Se cobra por segundo, sin mínimo. Consulta las tarifas en /llms/pricing.md.

Preguntas y respuestas

¿Cómo consigo la transcripción de un episodio de pódcast?

Envía el archivo de audio o su URL a POST /transcribe indicando output_format: "txt" si buscas texto plano, o json si necesitas marcas de tiempo y hablantes.

¿Puedo usar un enlace de YouTube?

No. A la API hay que darle un archivo subido o un enlace directo a un archivo multimedia, y una URL de YouTube es una página web. Usa archivos de audio o vídeo propios o sobre los que tengas derechos de uso.

¿Cómo subo subtítulos a YouTube?

Genera un archivo SRT siguiendo la guía de SRT y súbelo desde la sección de subtítulos del vídeo en YouTube Studio.

¿Cómo se crean los capítulos?

Pásale la transcripción numerada a tu LLM para que elija en qué número de tramo arranca cada capítulo. Después, convierte esos tramos a marcas de tiempo mediante código y pega las líneas resultantes en la descripción del vídeo.

¿Se pueden sacar subtítulos en varios idiomas?

Sí, lanzando una tarea por cada idioma con el parámetro translate_to en un modelo Oracle.