lp177

Podcaster

Studio de podcasts d’actualité auto-hébergé, à la demande ou planifié

Service auto-hébergéjuin 2026PythonFastAPIpodcastfyGeminiEdge TTSPWA

Code source Site du projet Moteur podcastfy

Application web auto-hébergée qui produit un épisode audio d’actualité sur n’importe quel sujet : recherche des dernières nouvelles, script rédigé par un LLM, voix de synthèse (gratuite via Edge TTS). Multi-utilisateur, multilingue, écoutable hors ligne.

But du projet

Écouter chaque jour un point d’actualité audio sur ses propres sujets (tech, jeux vidéo, finance, géopolitique…) sans plateforme tierce : l’application tourne sur son serveur, avec ses clés d’API, et les abonnements comme l’historique d’écoute restent locaux. Une seule clé LLM suffit pour démarrer.

Fonctionnalités

  • Épisodes frais : recherche web ancrée (Gemini), avec repli sur des flux RSS puis sur un LLM seul ; une mémoire par sujet évite de répéter ce qui a déjà été traité.
  • À la demande ou planifié : génération immédiate, quotidienne ou hebdomadaire.
  • Application installable (PWA) avec enregistrement hors ligne des épisodes.
  • Rôles : admin (tout, premier compte créé), publisher (crée et planifie), reader (écoute et s’abonne).
  • Abonnements par e-mail avec lien d’écoute privé à chaque nouvel épisode.
  • Cinq langues (français, anglais, espagnol, allemand, italien) et régénération d’un épisode dans une autre langue.
  • Liens de partage privés /s/<clé>, sans connexion.
  • Voix gratuites via Edge TTS ; Gemini, OpenAI ou ElevenLabs en option.

Fonctionnement

recherche → script (LLM) → audio (TTS) → bibliothèque + mémoire → notification des abonnés
  • Ordre de repli pour le script : Gemini → OpenAI → Anthropic → Ollama (ou tout point d’accès compatible OpenAI). Pour les voix : Gemini → OpenAI → Edge.
  • La génération s’appuie sur le moteur podcastfy ; ffmpeg assemble l’audio.
  • Tout l’état est en JSON et MP3 sous data/ ; les épisodes de plus de 7 jours d’un sujet sont purgés à chaque génération.
  • Les sujets intégrés sont des modules Python dans themes/, découverts automatiquement ; d’autres se créent depuis l’interface web.

Captures d’écran

Installation

Avec Docker ou Podman :

cp .env.example .env    # au moins GEMINI_API_KEY
docker compose up -d    # ou : podman-compose up -d
# http://127.0.0.1:8077 — le premier compte créé devient administrateur

Le fichier compose lance aussi un service scheduler qui déclenche les planifications toutes les heures.

En local (Python 3.13, ffmpeg dans le PATH) :

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python server.py

En ligne de commande :

python generate.py --list
python generate.py markets-finance --lang en --minutes 12
python scheduler.py install-cron