Podcaster
🔒 Self-hosted · private · open-source

The news, as a podcast.
On your terms.

Podcaster generates a fresh audio briefing on any subject — on demand or on a schedule — running on your own server, with your keys and your data. Give listeners accounts, subscriptions and offline playback. Nothing leaves your machine unless you share it.

Any subject On-demand or scheduled Accounts & roles Offline 5 languages
Podcaster — a fresh episode for every subject
Yours to run

Own the whole stack

A real listener-facing platform you host yourself — not a service you rent. Your subjects, your audience and your audio stay with you.

Self-hosted & sovereign

Runs entirely on your own machine or in a container. No SaaS, no account on someone else's platform, no middleman between you and your audio.

Private by design

Subjects, listeners and listening history never leave your server. An episode becomes shareable only when you mint a private link for it.

Any subject, on demand

Describe a topic — tech, games, geopolitics, science, finance, sport — and get a fresh, sourced news episode in minutes.

Fresh every run

Grounded web search pulls the latest developments, with RSS and a plain-LLM fallback. It remembers what it covered so episodes don't repeat.

Your keys, no lock-in

Bring any one LLM key; providers fall back automatically and audio is free via Edge TTS. Point it at a local Ollama model to go fully offline.

Scheduled automatically

Run subjects daily or weekly. A single hourly cron entry — or the bundled scheduler container — fires whatever is due.

Listen offline

Install it like an app, tap Save offline, and your episodes play with no connection — on the train, on a plane, anywhere.

Accounts & roles

Run it just for yourself or open it to a household or team — admin, publisher and reader roles, with publishing gated.

Email subscriptions

Readers subscribe to the subjects they care about and get a private listen link by email whenever a new episode drops.

Multilingual

French, English, Spanish, German, Italian — native voices, with one-click regeneration of any episode into another language.

Take a look

Screenshots

The real app — captured straight from the running server.

Built for teams

Three roles, clear boundaries

ADMIN

Everything — manage users & roles, API keys, the SMTP setup and the scheduler. The first registered account.

PUBLISHER

Create subjects, generate episodes on demand and schedule them. Cannot touch users or system settings.

READER

The default. Listen, save episodes offline, subscribe to subjects and get notified by email. No publishing.

Get running

Install & deploy

Ship it in a container, or run it straight from Python. You only need one LLM key to start — audio works for free via Edge TTS.

  Docker / Podman
# 1 — configure your keys
cp .env.example .env
# add at least GEMINI_API_KEY in .env

# 2 — build & run
docker compose up -d
# or: podman-compose up -d

# 3 — open the app
http://127.0.0.1:8077
The first account you create becomes the admin. The bundled scheduler service fires due schedules hourly — no host cron needed.
  Local (Python 3.13)
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

cp .env.example .env   # add a key
python server.py       # http://127.0.0.1:8077

# generate from the CLI too:
python generate.py markets-finance --lang en --minutes 12
No paid TTS key? Leave them blank — Edge TTS voices every episode for free.
Under the hood

From headlines to audio

01 · Research

Fresh sources

Grounded web search gathers the latest developments for the subject, skipping anything already covered.

02 · Script

Written episode

An LLM turns the brief into a clear, structured episode at your chosen length and language.

03 · Voice

Text-to-speech

It's voiced with native per-language voices and saved as an MP3 you own.

04 · Publish

Catalog & notify

It lands in the catalog, retention prunes old episodes, and subscribers get an email.