Podcast quotidien qui décrypte l'actualité de la finance et de la tech. Entièrement automatisé, 100 % gratuit, publié automatiquement sur Spotify via un flux RSS.
Chaque matin, GitHub Actions exécute le pipeline :
news_collector.py → script_generator.py → voice_synth.py → update_rss.py
(Google News) (Groq / Llama 3.3) (Edge-TTS) (flux RSS)
- Collecte les actus du jour (Google News RSS, sans clé API)
- Rédige un script de ~650 mots ancré sur ces articles (Groq, gratuit)
- Génère un titre accrocheur (Groq)
- Synthétise la voix en MP3 (Edge-TTS, gratuit et sans quota)
- Met à jour le flux
rss.xmlet pousse le tout sur GitHub
Spotify lit ce flux RSS automatiquement → chaque nouvel épisode apparaît tout seul.
generate_podcast.py est le chef d'orchestre qui enchaîne les 4 premières étapes.
pip install -r requirements.txt
cp .env.example .env # puis renseigne ta clé GROQ_API_KEY
python generate_podcast.py # génère l'épisode du jour
python update_rss.py # met à jour le flux RSSDans le dépôt GitHub → Settings → Secrets and variables → Actions → New repository secret :
- Nom :
GROQ_API_KEY - Valeur : ta clé Groq (https://console.groq.com)
⚠️ L'ancien workflow attendait une clé ElevenLabs : ce n'est plus nécessaire. SeulGROQ_API_KEYest requis. Edge-TTS ne demande aucune clé.
Settings → Pages → Source : branche main, dossier / (root).
Les fichiers seront servis sur https://sarx613.github.io/Simon-FinTech/.
Le workflow .github/workflows/podcast.yml tourne :
- automatiquement à 06:00 UTC chaque jour ;
- ou à la demande via Actions → Podcast quotidien → Run workflow.
Lance-le une première fois à la main pour valider que tout passe.
- Va sur Spotify for Podcasters et connecte-toi.
- Add your podcast → I have a podcast → Continue with RSS.
- Colle l'URL du flux :
https://sarx613.github.io/Simon-FinTech/rss.xml - Valide la propriété (code envoyé par mail) et confirme les métadonnées.
À partir de là, plus rien à faire : Spotify relit le flux régulièrement et publie chaque nouvel épisode automatiquement. (La même URL fonctionne pour Apple Podcasts, Deezer, Amazon Music, etc.)
Tout se règle dans .env (voir .env.example) :
| Variable | Rôle | Défaut |
|---|---|---|
GROQ_API_KEY |
Clé LLM (gratuite) | — |
EDGE_VOICE |
Voix française Edge-TTS | fr-FR-HenriNeural |
TTS_ENGINE |
edge, hf (voix clonée) ou kyutai |
edge |
HF_SPACE_ID |
Space HF de la voix clonée (hf) |
— |
HF_TOKEN |
Token Hugging Face (hf) |
— |
Voix clonée : le dossier hf_space/ contient un Space Hugging Face prêt à
déployer (Kyutai + ta voix). Une fois le Space en ligne, bascule la variable
GitHub TTS_ENGINE=hf — voir hf_space/README.md pour les étapes.
| MAX_ARTICLES | Nombre d'articles par épisode | 5 |
| Fichier | Rôle |
|---|---|
generate_podcast.py |
Orchestrateur — point d'entrée principal |
news_collector.py |
Collecte des actus (Google News RSS) |
script_generator.py |
Rédaction du script (Groq) |
voice_synth.py |
Synthèse vocale (Edge-TTS / Kyutai) |
update_rss.py |
Génération du flux RSS (balises iTunes) |
podcasts/ |
Fichiers MP3 générés |
scripts/ |
Scripts texte archivés |
rss.xml |
Flux RSS soumis à Spotify |