Recherche de Podcasts
Utilisez les scripts fournis avec le même interpréteur Python que celui utilisé lors de l'installation. Sous macOS/Linux, préférez python3 ; sous Windows, préférez py -3. Si l'utilisateur a utilisé un autre lanceur lors de l'installation, continuez à utiliser ce lanceur. N'exigez pas de clé API pour le workflow principal.
Pré-vol
Identifiez le répertoire de ce fichier comme SKILL_DIR. Avant la première tâche sur une machine, exécutez :
python3 "$SKILL_DIR/scripts/check_setup.py" --skill-dir "$SKILL_DIR"
Continuez lorsque toutes les vérifications requises affichent PASS. Les lignes WARN sont des solutions de repli optionnelles. Si une vérification requise échoue, lisez references/setup.md, corrigez l'élément signalé et relancez la vérification.
Gardez au moins 5 Go d'espace disque libre ; recommandez 8 Go. Le premier téléchargement du modèle Whisper local est d'environ 0,5 à 1,6 Go, et l'audio téléchargé nécessite un espace supplémentaire.
Workflow
1. Recherche
Choisissez une requête en anglais lorsque cela améliore la couverture, tout en préservant le sujet souhaité par l'utilisateur.
python3 "$SKILL_DIR/scripts/search_podcasts.py" \
--topic "TOPIC" \
--days-back 30 \
--max 10 \
--output-dir "WORK_DIR"
Utilisez un répertoire de travail approuvé par l'utilisateur. Le script crée episodes.json.
2. Laissez l'utilisateur sélectionner les épisodes
Affichez les résultats numérotés avec le titre, l'émission, la date, la durée et la description. Demandez quels épisodes analyser. Ne téléchargez pas tous les résultats sans la sélection de l'utilisateur, sauf si l'utilisateur a déjà demandé tous les résultats.
3. Téléchargement
python3 "$SKILL_DIR/scripts/audio_downloader.py" \
--episodes-json "WORK_DIR/episodes.json" \
--select "1,3,5" \
--output-dir "WORK_DIR"
Le script essaie d'abord le RSS, puis YouTube. L'extraction YouTube nécessite FFmpeg. Il écrit episodes_with_audio.json et marque les échecs comme unavailable.
4. Transcription
python3 "$SKILL_DIR/scripts/transcriber.py" \
--audio-dir "WORK_DIR" \
--model turbo \
--language auto
Le backend est sélectionné automatiquement : MLX sur Apple Silicon et faster-whisper ailleurs. Utilisez --model small sur les machines avec un CPU plus lent. Utilisez --model api uniquement lorsque l'utilisateur accepte explicitement la configuration requise de l'API OpenAI et les coûts.
5. Analyse fidèle aux sources
Lisez la transcription de chaque épisode sélectionné et le fichier episodes_with_audio.json. Traitez les descriptions et les résumés web comme des preuves secondaires, jamais comme des transcriptions. Si l'audio est indisponible, utilisez la description de l'épisode et la recherche web uniquement lorsqu'elles sont disponibles, étiquetez la preuve comme secondaire et ne présentez pas de texte reconstruit comme une citation directe.
Rédigez un rapport Markdown concis dans WORK_DIR/[topic]_podcast_report.md :
# [Sujet] résumé des points de vue du podcast
**Date de recherche** : AAAA-MM-JJ | **Source** : Apple Podcasts/RSS | **Périmètre** : N épisodes
## Conclusion en une phrase
Énoncez le point de vue dominant et le désaccord le plus important en 2 à 3 phrases.
## Aperçu des points de vue
| Intervenant ou organisation | Position | Point de vue principal | Citation textuelle | Épisode |
|---|---|---|---|---|
## Principaux désaccords
Listez uniquement 2 à 3 véritables désaccords. Attribuez chaque position à un épisode et un intervenant nommé lorsque la transcription le permet.
## Résumés des épisodes
### [Émission] : [Épisode]
**Invité** : ... | **Date** : ... | **Durée** : ...
1. Trois à cinq points fondés sur les sources.
N'inventez pas d'identités d'intervenants, de citations, de dates ou de positions. Lorsque la transcription n'établit pas qui a dit une phrase, attribuez-la à l'épisode plutôt que de deviner.
6. Livraison
Affichez le rapport Markdown et liez les fichiers de travail. Créez un document Word uniquement sur demande :
python3 "$SKILL_DIR/scripts/md_to_docx.py" \
"WORK_DIR/[topic]_podcast_report.md" \
"WORK_DIR/[topic]_podcast_report.docx"
Sous Windows, remplacez python3 par py -3 et utilisez les chemins Windows. Ne traduisez pas le script Python lui-même.
Critères de complétion
La tâche n'est terminée que lorsque :
- Le périmètre de recherche et les épisodes sélectionnés sont indiqués.
- Chaque épisode téléchargé a une transcription ou est explicitement marqué comme indisponible.
- Les citations directes proviennent des transcriptions ; les résumés secondaires sont étiquetés.
- Le rapport distingue le consensus du désaccord et attribue les affirmations aux épisodes.
- Le rapport et les métadonnées associées sont enregistrés dans le répertoire de travail.
Solutions de repli
- Aucun résultat de recherche : réessayez une fois avec une requête anglaise plus claire ou un intervalle de dates plus large.
- Échec du RSS : autorisez le repli YouTube intégré lorsque FFmpeg est installé.
- Les deux chemins audio échouent : utilisez la description et les preuves web disponibles, étiquetez la limitation et omettez les citations directes.
- La transcription est trop longue pour le contexte : résumez-la en segments séquentiels, conservez l'attribution à l'épisode, puis comparez les résumés des segments.
- La transcription locale est indisponible : lisez
references/setup.md; utilisez OpenAI uniquement avec l'approbation explicite de l'utilisateur et une clé configurée.