Pesquisa de Podcasts
Use os scripts fornecidos com o mesmo interpretador Python usado durante a instalação. No macOS/Linux, prefira python3; no Windows, prefira py -3. Se o usuário usou outro inicializador durante a instalação, continue usando esse inicializador. Não é necessário ter uma chave de API para o fluxo de trabalho principal.
Pré-verificação
Resolva o diretório deste arquivo como SKILL_DIR. Antes da primeira tarefa em uma máquina, execute:
python3 "$SKILL_DIR/scripts/check_setup.py" --skill-dir "$SKILL_DIR"
Continue quando todas as verificações necessárias mostrarem PASS. Linhas WARN são fallbacks opcionais. Se uma verificação necessária falhar, leia references/setup.md, corrija o item reportado e execute a verificação novamente.
Mantenha pelo menos 5 GB de espaço livre em disco; recomenda-se 8 GB. O download inicial do modelo Whisper local é de aproximadamente 0,5–1,6 GB, e o áudio baixado requer espaço adicional.
Fluxo de Trabalho
1. Pesquisar
Escolha uma consulta em inglês quando melhorar a cobertura, preservando o tópico pretendido pelo usuário.
python3 "$SKILL_DIR/scripts/search_podcasts.py" \
--topic "TOPICO" \
--days-back 30 \
--max 10 \
--output-dir "DIR_TRABALHO"
Use um diretório de trabalho aprovado pelo usuário. O script cria episodes.json.
2. Deixar o usuário selecionar episódios
Mostre os resultados numerados com título, programa, data, duração e descrição. Pergunte quais episódios analisar. Não faça download de todos os resultados sem a seleção do usuário, a menos que ele já tenha solicitado todos os resultados.
3. Baixar
python3 "$SKILL_DIR/scripts/audio_downloader.py" \
--episodes-json "DIR_TRABALHO/episodes.json" \
--select "1,3,5" \
--output-dir "DIR_TRABALHO"
O script tenta RSS primeiro e YouTube em segundo lugar. A extração do YouTube requer FFmpeg. Ele escreve episodes_with_audio.json e marca falhas como unavailable.
4. Transcrever
python3 "$SKILL_DIR/scripts/transcriber.py" \
--audio-dir "DIR_TRABALHO" \
--model turbo \
--language auto
O backend é selecionado automaticamente: MLX no Apple Silicon e faster-whisper em outros lugares. Use --model small em máquinas mais lentas apenas com CPU. Use --model api apenas quando o usuário aceitar explicitamente o requisito e custo da API OpenAI.
5. Analisar com fidelidade à fonte
Leia a transcrição de cada episódio selecionado e o arquivo episodes_with_audio.json. Trate descrições e resumos da web como evidência secundária, nunca como transcrições. Se o áudio não estiver disponível, use a descrição do episódio e a pesquisa na web apenas quando disponíveis, rotule a evidência como secundária e não apresente texto reconstruído como citação direta.
Escreva um relatório conciso em Markdown para DIR_TRABALHO/[topico]_podcast_report.md:
# [Tópico] resumo de opiniões do podcast
**Data da pesquisa**: AAAA-MM-DD | **Fonte**: Apple Podcasts/RSS | **Escopo**: N episódios
## Conclusão em uma frase
Declare a visão dominante e a discordância mais importante em 2–3 frases.
## Visão geral das opiniões
| Palestrante ou organização | Posição | Visão central | Citação literal | Episódio |
|---|---|---|---|---|
## Principais discordâncias
Liste apenas 2–3 discordâncias genuínas. Atribua cada posição a um episódio e palestrante nomeados quando a transcrição tornar o palestrante claro.
## Resumos dos episódios
### [Programa]: [Episódio]
**Convidado**: ... | **Data**: ... | **Duração**: ...
1. Três a cinco pontos baseados na fonte.
Não invente identidades de palestrantes, citações, datas ou posições. Quando a transcrição não estabelecer quem disse uma linha, atribua-a ao episódio em vez de adivinhar.
6. Entregar
Mostre o relatório em Markdown e vincule os arquivos de trabalho. Crie Word apenas quando solicitado:
python3 "$SKILL_DIR/scripts/md_to_docx.py" \
"DIR_TRABALHO/[topico]_podcast_report.md" \
"DIR_TRABALHO/[topico]_podcast_report.docx"
No Windows, substitua python3 por py -3 e use caminhos do Windows. Não traduza o script Python em si.
Critérios de conclusão
A tarefa só está completa quando:
- O escopo da pesquisa e os episódios selecionados são declarados.
- Cada episódio baixado tem uma transcrição ou é explicitamente marcado como indisponível.
- Citações diretas vêm de transcrições; resumos secundários são rotulados.
- O relatório distingue consenso de discordância e atribui alegações a episódios.
- O relatório e os metadados de suporte são salvos no diretório de trabalho.
Fallbacks
- Nenhum resultado de pesquisa: tente novamente uma vez com uma consulta em inglês mais clara ou um intervalo de datas mais amplo.
- RSS falha: permita o fallback do YouTube incluído quando o FFmpeg estiver instalado.
- Ambos os caminhos de áudio falham: use a descrição e a evidência da web disponível, rotule a limitação e omita citações diretas.
- Transcrição muito longa para o contexto: resuma-a em blocos sequenciais, mantenha a atribuição ao episódio e, em seguida, compare os resumos dos blocos.
- Transcrição local indisponível: leia
references/setup.md; use OpenAI apenas com aprovação explícita do usuário e uma chave configurada.