Como gerar legendas, transcrição e capítulos para podcasts e vídeos do YouTube

Basta transcrever o episódio uma vez com a marcação de tempo por palavra. Com esse único resultado em mãos, você gera o arquivo SRT, o texto para a descrição do episódio, as legendas traduzidas e os capítulos. Como a API exige um arquivo enviado ou um link direto de mídia (e o link de um vídeo no YouTube é uma página web), use o áudio ou vídeo que você mesmo exportou.

Obter uma chave de API Início rápido Idiomas suportados

Última atualização: · Markdown

Transcreva uma única vez

Exporte o áudio (MP3 ou M4A) ou o vídeo do episódio. Depois, faça o envio usando a função auxiliar do guia de edição de vídeo e peça a resposta em JSON:

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

Em entrevistas e mesas-redondas, passe include_diarization: true para identificar quem está falando em cada trecho.

Legendas em arquivo SRT

Junte as palavras para formar as linhas e suba o arquivo .srt no YouTube Studio ou no seu serviço de hospedagem de podcasts. No guia de SRT, você encontra o código e vê como funciona a saída SRT da própria API, que traz uma linha por palavra.

Legendas traduzidas

Você pode rodar um segundo trabalho com o mesmo arquivo usando translate_to (nos modelos Oracle) e output_format: "srt", ou passar o texto do primeiro resultado para o seu LLM traduzir. Fazer um trabalho separado para cada idioma de destino mantém as legendas sincronizadas com o áudio.

Transcrição para as notas do episódio

Use output_format: "txt" se quiser apenas texto puro, ou junte os campos text dos trechos do JSON com o nome de cada participante. Vale revisar antes de publicar, já que transcrições automáticas costumam errar nomes próprios, marcas e números.

Capítulos com marcação de tempo

Passe os trechos numerados para o LLM e peça que ele indique onde começa cada capítulo usando o número do trecho, nunca o tempo em si. Depois, seu código busca o tempo exato daquele trecho. Este prompt funciona bem em qualquer 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")]))

Para o YouTube transformar os tempos da descrição em capítulos no vídeo, a lista precisa começar em 0:00, ter pelo menos três marcações em ordem crescente e cada capítulo deve durar no mínimo dez segundos.

Quanto custa

TrabalhoModeloCusto
Episódio de uma hora, áudio limpobaseUS$ 0,48
Episódio de uma hora, qualidade de produção com separação de vozesoracleUS$ 1,44
Legendas traduzidas, uma horaoracle_miniUS$ 0,96

Cobramos por segundo, sem valor mínimo. Veja a tabela em /llms/pricing.md.

Perguntas e respostas

Como faço para transcrever um episódio de podcast?

Envie o arquivo de áudio ou a URL direta dele para POST /transcribe. Use output_format: "txt" para receber o texto puro, ou json se precisar dos tempos e da identificação de quem fala.

Posso passar um link do YouTube?

Não. A API exige um arquivo enviado ou o link de um arquivo de mídia, e a URL de um vídeo no YouTube é uma página da web. Use apenas áudios ou vídeos que pertençam a você ou que você tenha o direito de usar.

Como coloco legendas no YouTube?

Gere o arquivo SRT seguindo o guia de SRT e faça o upload na aba de legendas do vídeo lá no YouTube Studio.

Como faço para criar capítulos?

Passe a transcrição com os trechos numerados para o seu LLM e peça os números de onde cada capítulo começa. Depois, converta esses números em tempos no seu código e cole a lista na descrição do vídeo.

Consigo gerar legendas em vários idiomas?

Sim. Basta rodar uma tarefa para cada idioma usando translate_to com um dos modelos Oracle.