youtube-transcript
Obtém legendas de vídeos do YouTube e as salva como texto limpo. Utiliza ferramentas de API ou locais para garantir a qualidade do resultado.
O que ela faz
Esta ferramenta extrai o texto falado de um vídeo do YouTube e o salva em um arquivo de texto simples. Ela tenta usar um serviço chamado DeepAPI primeiro, e se isso não funcionar, usa uma ferramenta chamada yt-dlp.
Quando usar
- ✓Quando você quiser o texto de um vídeo do YouTube para ler ou copiar.
- ✓Quando você precisar das legendas de um vídeo para entender melhor.
- ✓Quando você quer o conteúdo falado de um vídeo sem ter que assistir.
Exemplo do que pedir para a IA
“Me dê a transcrição do vídeo do YouTube: [link do vídeo]”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A IA acessa o vídeo do YouTube e busca as legendas ou o áudio transcrito. Depois, ela limpa esse texto e o salva em um arquivo.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill youtube-transcriptOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/youtube-transcript/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Transcrição do YouTube (via DeepAPI, fallback yt-dlp)
Quando Usar
- Use quando o usuário pedir uma transcrição do YouTube, legendas, legendas ocultas ou extração de conteúdo falado.
- Use quando o DeepAPI ou um fallback local puderem buscar a transcrição com segurança.
Busque a transcrição de um vídeo do YouTube e salve um arquivo bruto limpo .txt. O caminho principal é o DeepAPI POST /v1/scrape/youtube/transcript. Ele é executado no lado do servidor, evitando a marcação de bot por IP local que assola o yt-dlp.
Local de Salvamento
- Se o usuário estiver em um projeto/diretório de trabalho real → salve lá.
- Caso contrário (nenhum diretório fornecido, ou o diretório atual não faz sentido) → salve em
~/Downloads. - Sempre nomeie o arquivo
Channel_Titlecom espaços substituídos por_(por exemplo,David_Ondrej_title_of_video.txt). Se os metadados não estiverem disponíveis, use o ID do vídeo como fallback.
Caminho Principal — DeepAPI
DEEPAPI_API_KEY deve estar presente no ambiente. Não leia arquivos de inicialização do shell ou imprima segredos:
test -n "$DEEPAPI_API_KEY" || { echo "DEEPAPI_API_KEY is not set"; exit 1; }
BASE=${DEEPAPI_API_BASE_URL:-https://deepapi.co}
Execute o scrape (mantenha a Chave de Idempotência; retentativas devem reutilizar a MESMA):
IDK=$(uuidgen)
curl -s --max-time 120 "$BASE/v1/scrape/youtube/transcript" \
-H "Authorization: Bearer $DEEPAPI_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $IDK" \
-d '{"url": "VIDEO_URL", "maxCostUsd": "0.05", "waitForFinishSecs": 60}' \
> /tmp/yt_transcript.json
- Vídeos não em inglês: adicione
"language": "de"(etc.) ao corpo. status: running→ esperenext.afterSecs, entãocurl "$BASE$(jq -r '.next.path' /tmp/yt_transcript.json)" -H "Authorization: Bearer $KEY"atésucceededoufailed.
Extraia o texto e salve-o:
jq -r '.status' /tmp/yt_transcript.json # succeeded | running | failed
jq -r '.output[0].text' /tmp/yt_transcript.json > "$OUT/$NAME.txt"
jq -r '.debitMicrousd' /tmp/yt_transcript.json # cost (50000 = $0.05)
.output[0].segments também tem segmentos com tempo (startSecs, durationSecs, text) se o usuário quiser os carimbos de data/hora. output vazio = o vídeo não tem legendas; reporte, não tente novamente.
Para o nome do arquivo Channel_Title, obtenha os metadados com um rápido yt-dlp --print "%(channel)s|%(title)s" --skip-download "URL"; se falhar, use o ID do vídeo.
Quando usar o yt-dlp como fallback
DEEPAPI_API_KEYausente no ambiente.- HTTP 402
insufficient_credits(diga ao usuário para recarregar em deepapi.co/credits primeiro; use o fallback apenas se estiverem indisponíveis). - Requisição do DeepAPI
failedduas vezes.
Informe o usuário sempre que usar um fallback — um fallback significa que o produto perdeu um caso de uso real.
Caminho de Fallback — yt-dlp (local)
OUT="$(pwd)" # or ~/Downloads if cwd makes no sense
META=$(yt-dlp --print "%(channel)s|%(title)s" --skip-download "URL")
NAME=$(echo "$META" | tr '| ' '__' | tr -cd '[:alnum:]_.-') # "Channel_Title", spaces -> _, strip unsafe chars
yt-dlp --skip-download --write-subs --write-auto-subs \
--sub-langs "en.*" --sub-format json3 \
-o "$OUT/$NAME.%(ext)s" "URL"
- Fallback
channel→uploader→uploader_idsechannelfor nulo. --skip-download= apenas legendas.--write-subs+--write-auto-subs= manual primeiro, automático como fallback.- Sempre use
json3, nunca VTT/SRT — VTT automático repete cada linha duas vezes (legendas rolantes).
Achate json3 → texto bruto:
python3 - "$OUT" <<'PY'
import json, html, re, glob, sys, pathlib
f = glob.glob(sys.argv[1] + "/*.json3")
if not f: sys.exit("no json3 file")
data = json.load(open(f[0], encoding="utf-8"))
parts = ["".join(s.get("utf8","") for s in e.get("segs") or []) for e in data.get("events", [])]
txt = re.sub(r"\s+", " ", html.unescape(" ".join(p.strip() for p in parts if p.strip()))).strip()
out = pathlib.Path(f[0]).with_suffix(".txt")
out.write_text(txt, encoding="utf-8"); print(out)
PY
Tratamento de falha do yt-dlp
- Não em inglês / idioma desconhecido: execute
yt-dlp --list-subs "URL"primeiro, depois defina--sub-langs. - yt-dlp mais recente pode precisar de
denono PATH para extração do YouTube. - Na primeira falha: execute
yt-dlp -Uuma vez, tente novamente uma vez, depois pare. - 429 / "Faça login para confirmar que você não é um bot" = IP marcado. PARE — NÃO tente novamente em loop (piora).
- Nunca use fallback para baixar áudio para Whisper, a menos que o usuário peça explicitamente.
Saída
Relate o caminho salvo; imprima o texto se for curto. Se o DeepAPI foi usado, também relate o custo em dólares.
Limitações
…
Perguntas frequentes
O que acontece se o vídeo não tiver legendas?
Se o vídeo não tiver legendas disponíveis, a ferramenta informará que não foi possível extrair o texto.
Onde o arquivo de texto será salvo?
O arquivo será salvo na sua pasta de Downloads, ou na pasta do seu projeto se você estiver trabalhando em um. O nome do arquivo será o título do canal e do vídeo, com espaços substituídos por underscores.
A ferramenta cobra alguma coisa?
O serviço DeepAPI pode ter um custo muito baixo (menos de 5 centavos de dólar por vídeo), que a IA informará. Se usar a ferramenta local (yt-dlp), geralmente não há custo.
Detalhes
Descrição original do autor
Fetch YouTube transcripts through DeepAPI or local fallback tooling and save clean text output.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4619
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC