~/social/youtube-transcript-scraper

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.

mídia TypeScriptInnerTube Global
proooxy/youtube-transcript-scraper — especificações
categoriasocial / mídia
linguagemTypeScript
stackTypeScript, InnerTube
mercadosGlobal
saídaJSON limpo e pronto para RAG

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âmetroTipoObrigatórioDescrição
urlsarrayopcionalURLs do YouTube ou IDs isolados — vídeos, Shorts, links youtu.be, playlists ou canais. Obrigatório em tempo de execução.
outputFormatstringopcionalFormato da transcrição: json, srt, vtt, text ou llm (padrão: json).
languagesarrayopcionalIdiomas de legenda preferidos em ordem de prioridade, códigos ISO 639-1 (padrão: en).
includeAutoGeneratedbooleanopcionalRecorre a legendas geradas automaticamente quando as manuais não estão disponíveis (padrão: true).
maxVideosnumberopcionalLimite de vídeos processados por execução, ex.: para playlists/canais (padrão: 0 = ilimitado).
maxConcurrencynumberopcionalVídeos processados em paralelo, 1–10 (padrão: 3).
proxyConfigurationobjectopcionalConfigurações de proxy; usa Apify Residential fixado nos EUA por padrão.
youtubeCookiesstringopcionalCookies 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: llm para 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 maxConcurrency em 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?
Não. O ator extrai as legendas diretamente — sem chave da YouTube Data API e sem login. Um input opcional de cookies pode ser fornecido para reduzir bloqueios do tipo 'Sign in to confirm you're not a bot' em alguns vídeos.
Quais idiomas e tipos de legenda são suportados?
Mais de 100 idiomas. Forneça uma lista em ordem de prioridade de códigos ISO 639-1 (padrão: en); o ator prefere legendas criadas manualmente e recorre às geradas automaticamente, a menos que você desative includeAutoGenerated.
Sou cobrado por vídeos que falham na extração?
Não. A cobrança é por evento, sobre um único evento de transcrição extraída, cobrado somente após uma transcrição ser salva com sucesso. Vídeos que falham aparecem na saída com um campo error e não são cobrados.
Posso obter texto limpo, pronto para LLM, para RAG?
Sim. Defina outputFormat como 'llm' para remover anotações como [Music]/[Applause] e rótulos de interlocutor, produzindo um texto limpo ideal para embeddings e fine-tuning.

relacionados em ~/social

Execute YouTube Subtitle & Transcript Scraper — JSON, SRT, VTT, LLM ou solicite um projeto personalizado

Comece a extrair dados no Apify em minutos, ou me contrate para desenvolver um scraper sob medida e um pipeline de RAG para sua fonte e esquema exatos.

executar no Apify obter dados personalizados