Communitygithub.com

winnieAI123/podcast-recherche

Compétence multi-plateforme pour la recherche, la transcription locale Whisper et l'analyse des points de vue des podcasts.

Qu'est-ce que podcast-recherche ?

Cette compétence pour agents IA permet d'effectuer des recherches de podcasts, de télécharger les épisodes audio (via RSS ou YouTube), de les transcrire localement avec Whisper (via MLX sur Apple Silicon, faster-whisper ailleurs, ou l'API OpenAI en dernier recours avec accord explicite), et de générer un rapport d'analyse des points de vue respectueux des sources. Elle est conçue pour fonctionner en local sans clé API obligatoire, avec une configuration automatique de l'environnement (Python 3, FFmpeg optionnel). Le rapport final distingue les citations directes des résumés secondaires, attribue chaque position à un épisode et un intervenant quand c'est possible, et liste les principaux désaccords. La compétence supporte les systèmes macOS, Linux et Windows, et inclut des scripts Python prêts à l'emploi pour chaque étape du workflow.

Compatible avec~Claude Code✓Codex CLI~Cursor
npx skills add winnieAI123/podcast-research-skill

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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 :

  1. Le périmètre de recherche et les épisodes sélectionnés sont indiqués.
  2. Chaque épisode téléchargé a une transcription ou est explicitement marqué comme indisponible.
  3. Les citations directes proviennent des transcriptions ; les résumés secondaires sont étiquetés.
  4. Le rapport distingue le consensus du désaccord et attribue les affirmations aux épisodes.
  5. 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.

Skills associés