MinusPod: Remove Ads From Podcasts With Whisper and an LLM

MinusPod: Remove Ads From Podcasts With Whisper and an LLM

MinusPod sits between you and your podcast feeds and removes the ads before you listen. You subscribe to MinusPod’s version of a feed in any podcast app, and each episode arrives already cut.

How it works

  1. Whisper transcribes each new episode, either locally or through a remote Whisper API
  2. An LLM reads the transcript and identifies ad segments
  3. FFmpeg removes them, and MinusPod serves a re-cut RSS feed with the edited audio

Supported LLM providers include Anthropic Claude, OpenRouter, Ollama, and any OpenAI-compatible endpoint, switchable at runtime. Using Ollama keeps the whole pipeline on your own hardware.

Features

  • Learns from corrections: fix a missed or wrong cut and it applies the pattern to later episodes
  • Audio analysis alongside the transcript, including loudness, silence gaps, and dynamic ad insertion transitions
  • A web UI with a waveform editor, a review queue for low-confidence cuts, and cost analytics for paid LLM APIs
  • Per-feed choice to remove, beep, or keep detected segments
  • Podcasting 2.0 output: regenerated transcripts, chapters, and AI-content disclosure
  • A REST API, and optional encryption of stored provider credentials

Deployment

MinusPod runs in Docker, with a GPU image for fast local Whisper and a CPU image, which can also offload transcription to a remote Whisper server. Configuration lives in an .env file with your LLM keys and the public BASE_URL your podcast app will fetch from. The repository’s compose file is the starting point.

Transcribing every episode of every feed is the expensive part. A GPU makes a large difference, and with a paid LLM API, the cost dashboard is worth watching. The whisper.cpp project is a lighter-weight option for the transcription server.

Things to consider

Ads fund most podcasts. Many shows offer ad-free feeds through a subscription, which pays the people making them; MinusPod is best for the feeds where that option does not exist.

License

MIT.