O problema que resolve
A transcrição manual limita os estudos a algumas dezenas de vídeos, e scripts de scraping improvisados quebram e são difíceis de reproduzir. Pesquisadores precisam de um jeito confiável de coletar transcrições completas de uma amostra definida de canais e datas, armazená-las com metadados e compartilhar o método para que outros possam replicá-lo.
O que incluir na primeira versão
- Uma amostra documentada de canais e um intervalo de datas
- Transcrições completas armazenadas como JSON bruto com metadados
- Origem da legenda registrada para cada vídeo (manual, automática ou IA)
- Exportação para CSV ou texto para R, Python, NVivo ou ATLAS.ti
- Um script de coleta que pode ser rodado de novo para replicação
Como criar, passo a passo
- 01
Defina a amostra
Liste os canais e o período que você vai estudar e registre os critérios de inclusão para a seção de metodologia.
- 02
Resolva as listas de vídeos
Chame /channels/resolve para cada canal e filtre os resultados pela data de publicação.
- 03
Colete as transcrições
Envie os IDs de vídeo para /batch e armazene a resposta JSON completa, incluindo o idioma e a origem da legenda de cada transcrição.
- 04
Prepare para a análise
Exporte as transcrições como texto ou CSV com ID do vídeo, canal, data e timestamps, e analise-as com modelos de tópicos, frequência de palavras-chave ou codificação qualitativa.
Código inicial
Esta ideia segue o padrão "Receita 3: carregue uma playlist inteira em uma base de conhecimento". Use seus próprios canais, prompts e armazenamento.
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
"limit": 100}).json()
ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
"video_ids": ids,
"format": {"timestamp": True, "paragraphs": True},
}).json()
# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
if r["status"] == "completed":
for p in r["data"]["transcript"].get("paragraphs") or []:
store(video_id=r["video_id"], start=p["start"], text=p["text"]) # your vector DBPor que vale a pena criar
Para pesquisadores, o retorno é um conjunto de dados reproduzível por uma fração do custo e do tempo da transcrição manual. Equipes também criam datasets pagos ou serviços de análise para empresas de monitoramento de mídia e think tanks.
Erros a evitar
- Misturar legendas automáticas e humanas sem registrar isso: anote a origem da legenda, porque a precisão é diferente.
- Não salvar as respostas brutas: guarde o JSON original para que sua análise possa ser refeita.
- Ignorar a revisão ética e os termos da plataforma: verifique as exigências da sua instituição e os termos do YouTube antes de publicar datasets.
Dúvidas sobre esta ideia
Posso usar transcrições do YouTube em pesquisa acadêmica?
Muitos pesquisadores usam. Verifique as exigências de ética da sua instituição, os termos do YouTube e a lei de direitos autorais, principalmente antes de compartilhar um dataset publicamente.
Qual a precisão das legendas automáticas do YouTube?
Varia com a qualidade do áudio, os sotaques e o assunto. A API informa se cada transcrição veio de legendas manuais, legendas automáticas ou reconhecimento de fala por IA, para que você possa levar isso em conta.
Quantos vídeos posso coletar de uma vez?
Uma única requisição em lote aceita até 3.000 IDs de vídeo no plano Business. Estudos maiores podem rodar vários lotes.