

# Converta legendas do YouTube para SRT ou VTT sem perder os tempos

Converta legendas do YouTube para SRT ou VTT exportando blocos de legenda com tempos já definidos como arquivos de texto UTF-8 e testando-os em um reprodutor de vídeo. Este método só funciona quando existem legendas com marcações de tempo e o vídeo local usa o mesmo ponto de referência temporal do vídeo on-line. Apenas o texto copiado ou os tempos de início não permitem recuperar os tempos de término exatos.

Um bloco de legenda é um trecho de texto com um tempo de início e um tempo de término de exibição. SRT (SubRip Text) usa vírgulas antes dos milissegundos. VTT (WebVTT) começa com um cabeçalho `WEBVTT` e usa pontos antes dos milissegundos. UTF-8 é uma codificação de texto padrão que preserva os caracteres especiais. Um Actor é um programa que coleta dados da web, e uma Task é uma configuração de entrada salva para um Actor.

Para extrair legendas, use o [YouTube Transcript Scraper Actor](https://apify.com/chronometrica/youtube-transcript-scraper). Solicite JSON junto com os formatos SRT e VTT. A saída JSON bruta inclui campos específicos dos segmentos: `startSeconds`, `endSeconds`, `durationSeconds` e `text`. Salve apenas a string bruta da legenda como um arquivo de texto UTF-8. Não exporte o conjunto de dados inteiro como CSV nem mantenha strings JSON com sequências de escape `\n`. As entradas que falham aparecem em OUTPUT na execução, em vez de aparecerem como linhas no conjunto de dados. Uma execução de teste com 1 faixa salvou 61 blocos de legenda para validar a obtenção dos dados, mas você ainda precisa verificar a reprodução no seu próprio reprodutor.

Se não houver nenhuma legenda com marcações de tempo, consulte o [guia de extração de legendas do YouTube](https://chronometrica.com/pt-BR/articles/como-obter-transcri%C3%A7%C3%A3o-do-youtube-e-verificar-legendas-ausentes/) antes de validar seus arquivos.

## Método completo de conversão e validação

1. Confirme a identidade do vídeo e o idioma: verifique o URL do vídeo e o idioma selecionado. Guarde os blocos de legenda originais em JSON e o URL de origem.
2. Solicite os formatos de saída: solicite JSON, SRT e VTT. Verifique se há uma linha com resultado de sucesso e segmentos não vazios. Se houver falha na obtenção das legendas, use o guia de obtenção dos dados indicado no link. Não invente tempos de término a partir de texto sem marcações de tempo.
3. Salve o arquivo: copie todo o conteúdo do campo `srt` para `lesson.srt` ou do campo `vtt` para `lesson.vtt`. Use um editor de texto simples com codificação UTF-8. Não mantenha as aspas do JSON, os caracteres literais `\n`, as células do CSV nem uma extensão `.txt` acrescentada ao nome do arquivo.
4. Verifique a sintaxe: SRT usa números para os blocos de legenda e vírgulas antes dos milissegundos. VTT começa com `WEBVTT`, seguido de uma linha em branco, e usa pontos antes dos milissegundos. Os 2 formatos separam os blocos de legenda com linhas em branco e usam `-->` entre os tempos. Confirme que os tempos de término são posteriores aos tempos de início e verifique se os tempos de início dos blocos não diminuem ao longo da sequência. As sobreposições podem ser válidas; examine-as durante a reprodução em vez de excluí-las automaticamente.
5. Verifique a reprodução do vídeo: compare os blocos de legenda do início, do meio e do fim com o vídeo no seu reprodutor. Verifique os acentos, as quebras de linha e as linhas longas. Um arquivo pode passar nas verificações de formatação e ainda exibir tempos ou textos incorretos na tela.
6. Corrija os deslocamentos de tempo: se todos os blocos de legenda estiverem atrasados pelo mesmo intervalo fixo, verifique se a introdução foi removida da sua cópia local do vídeo. Desloque os tempos de início e de término por esse intervalo exato apenas para essa cópia específica. Se o erro de sincronização aumentar ao longo do tempo, um deslocamento fixo não funcionará. Quando a dessincronização aumentar, volte à fonte correta com marcações de tempo em vez de aplicar uma conversão de taxa de quadros que não foi testada.
7. Salve os arquivos finais: guarde os blocos de legenda de origem e uma nota sobre quaisquer alterações de tempo aprovadas.

## Arquivos de exemplo fictícios

Veja um exemplo simples com 3 blocos de legenda cujos tempos são medidos em segundos:

- Bloco 1: de `0.250` a `2.750` segundos — “Abra as configurações.”
- Bloco 2: de `3.000` a `5.500` segundos — “Escolha Français.”
- Bloco 3: de `6.000` a `8.125` segundos — “Salve a alteração.”

### Arquivo SRT completo

```srt
1
00:00:00,250 --> 00:00:02,750
Open the settings.

2
00:00:03,000 --> 00:00:05,500
Choose Français.

3
00:00:06,000 --> 00:00:08,125
Save the change.
```

Arquivos de exemplo fictícios

### Arquivo VTT completo

```vtt
WEBVTT

00:00:00.250 --> 00:00:02.750
Open the settings.

00:00:03.000 --> 00:00:05.500
Choose Français.

00:00:06.000 --> 00:00:08.125
Save the change.
```

Arquivos de exemplo fictícios

Observe que SRT usa vírgulas (`00:00:00,250`), enquanto VTT usa pontos (`00:00:00.250`) em todos os separadores de milissegundos.

### Cálculos passo a passo

Para converter segundos com casas decimais em milissegundos, multiplique por 1.000. Por exemplo, `0.250` segundos se tornam `250` milissegundos, e `8.125` segundos se tornam `00:00:08.125`.

- As durações dos blocos de legenda são 2,500 segundos, 2,500 segundos e 2,125 segundos.
- A duração total em que os blocos de legenda ficam ativos é de 7,125 segundos (`2.500 + 2.500 + 2.125`).
- O intervalo total coberto pelas legendas é de 7,875 segundos (`8.125 - 0.250`), incluindo os intervalos entre os blocos.

Nenhum desses totais mede a [exatidão do texto](/pt-BR/articles/como-citar-video-do-youtube-com-precisao/) ou a velocidade de leitura.

### Exemplo separado de deslocamento de tempo

Imagine uma segunda cópia independente do vídeo, da qual foi removida uma introdução de 1,000 segundo. Um par de tempos de início e término de um bloco de legenda nesse vídeo, originalmente em `10.250–12.750` segundos, passa a ser `9.250–11.750` segundos após subtrair 1,000 segundo (`10.250 - 1 = 9.250` e `12.750 - 1 = 11.750`).

Nunca aplique esse deslocamento ao primeiro arquivo de exemplo com três blocos de legenda. Subtrair 1,000 segundo do tempo de início do primeiro bloco (`0.250`) criaria um tempo de início negativo inválido (`-0.750`). Mantenha os arquivos originais sem alterações e verifique os arquivos com os tempos deslocados em um reprodutor de vídeo antes de usá-los.

## Próxima ação

Abra o [youtube-transcript-scraper](https://apify.com/chronometrica/youtube-transcript-scraper) ou inicie a [YouTube Subtitles in SRT and VTT Task](https://apify.com/chronometrica/youtube-transcript-scraper/examples/youtube-subtitles-srt-vtt), teste 1 vídeo solicitando JSON e os formatos de legenda desejados e, em seguida, salve a string de saída como um arquivo e visualize-o.

## Fontes e leituras adicionais

- [WebVTT: o formato de faixas de texto para vídeos na web (rascunho de recomendação candidata do W3C)](https://www.w3.org/TR/webvtt1/)
- [Estrutura de arquivos SubRip e sintaxe de milissegundos (Biblioteca do Congresso dos Estados Unidos)](https://www.loc.gov/preservation/digital/formats/fdd/fdd000569.shtml)
- [Gerenciar transcrições e legendas de vídeos (Suporte do YouTube)](https://support.google.com/youtube/answer/15930243?hl=en-CA)