YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM
Extraia legendas e transcrições do YouTube de vídeos, Shorts, playlists e canais como JSON, SRT, VTT, texto simples ou texto limpo pronto para LLM. Mais de 100 idiomas, metadados ricos, sem chave de API — e extrações que falham são gratuitas.
principais recursos
Um único input lida com vídeos, Shorts, links youtu.be, playlists e canais — misturados em uma única execução
Cinco formatos de saída — JSON (com timestamps), SRT, VTT, texto simples e pronto para LLM (remove marcações como [Music], [Applause] e rótulos de interlocutor)
Mais de 100 idiomas, com uma lista de idiomas em ordem de prioridade e fallback de legendas automáticas ativável
Metadados ricos — título, canal, descrição, data de publicação, contagem de visualizações, thumbnail, duração e idiomas disponíveis
Processa playlists e canais inteiros em lote, com um limite maxVideos e concorrência de 1 a 10
Suporte a proxy residencial, além de cookies opcionais para reduzir bloqueios de verificação anti-bot
Extração em múltiplas camadas — até nove fallbacks entre clientes InnerTube, com um último recurso via PO-token do yt-dlp
Circuit breaker e tratamento de erro por item mantêm lotes grandes em execução
casos de uso
- Times de IA/ML construindo datasets de RAG ou fine-tuning a partir de vídeo falado (saída de texto pronta para LLM)
- Times de conteúdo reaproveitando transcrições em posts de blog, show notes e legendas para redes sociais
- Profissionais de SEO extraindo texto de vídeo pesquisável para indexação e pesquisa de palavras-chave
- Editores e publishers que precisam de arquivos de legenda padrão SRT/VTT
- Pesquisadores coletando transcrições em lote de um canal ou playlist inteiro
- Desenvolvedores que precisam de legendas estruturadas e com timestamp sem uma chave de API do YouTube
parâmetros de entrada
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
urls | array | opcional | URLs do YouTube ou IDs isolados — vídeos, Shorts, links youtu.be, playlists ou canais. Obrigatório em tempo de execução. |
outputFormat | string | opcional | Formato da transcrição: json, srt, vtt, text ou llm (padrão: json). |
languages | array | opcional | Idiomas de legenda preferidos em ordem de prioridade, códigos ISO 639-1 (padrão: en). |
includeAutoGenerated | boolean | opcional | Recorre a legendas geradas automaticamente quando as manuais não estão disponíveis (padrão: true). |
maxVideos | number | opcional | Limite de vídeos processados por execução, ex.: para playlists/canais (padrão: 0 = ilimitado). |
maxConcurrency | number | opcional | Vídeos processados em paralelo, 1–10 (padrão: 3). |
proxyConfiguration | object | opcional | Configurações de proxy; usa Apify Residential fixado nos EUA por padrão. |
youtubeCookies | string | opcional | Cookies opcionais do YouTube (header Cookie ou cookies.txt) para reduzir bloqueios de verificação anti-bot. |
Exemplo de Saída
1{
2 "videoId": "dQw4w9WgXcQ",
3 "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
4 "title": "Rick Astley - Never Gonna Give You Up (Official Video)",
5 "channelName": "Rick Astley",
6 "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
7 "publishDate": "2009-10-25",
8 "viewCount": 1761003712,
9 "availableLanguages": ["en", "de-DE", "ja", "pt-BR", "es-419"],
10 "language": "en",
11 "isAutoGenerated": false,
12 "duration": 213,
13 "wordCount": 487,
14 "segmentCount": 61,
15 "text": "We're no strangers to love, you know the rules and so do I...",
16 "segments": [{ "text": "We're no strangers to love", "start": 18.64, "end": 21.88 }],
17 "error": null
18}
Preços
Pagamento por evento: cobrado uma vez por transcrição extraída com sucesso — vídeos que falham nunca são cobrados. Alimente um canal ou playlist inteiro e pague somente pelas legendas que você realmente recebe.
Dicas
- Use
outputFormat: llmpara RAG e fine-tuning — isso remove anotações que não são fala, para que seus embeddings vejam um texto limpo. - Mantenha um proxy residencial ativo. O YouTube bloqueia agressivamente IPs de datacenter; o ator usa residencial dos EUA por padrão, por um motivo.
- Comece
maxConcurrencyem 1–3 para jobs grandes e aumente gradualmente — concorrência alta eleva o risco de rate limit em scrapes de canais grandes.
faq
Preciso de uma chave de API do YouTube ou fazer login?
Quais idiomas e tipos de legenda são suportados?
Sou cobrado por vídeos que falham na extração?
Posso obter texto limpo, pronto para LLM, para RAG?
relacionados em ~/social
Bluesky Scraper — Posts, Perfis, Feeds e Interações
Extraia posts, perfis, feeds e interações do Bluesky.
abrir