podly-pure-podcasts

podly-pure-podcasts

Official

Docker app from UnraidUser-2043743457's Repository

Overview

Podly removes ads from podcasts. For each new episode of a feed you add, it transcribes the audio with Whisper, has an LLM find the ad segments, cuts them out, and serves an ad-free RSS feed you can subscribe to in any podcast app. After the first start, open the web UI and choose your LLM and transcription providers on the Config page. A Groq API key is enough for both. The default image can also transcribe locally on the CPU; the lite tag leaves local Whisper out. With REQUIRE_AUTH=true (the default here), the admin account is created on first start from PODLY_ADMIN_USERNAME and PODLY_ADMIN_PASSWORD. Podcast apps then subscribe with the link from each feed's "Subscribe to Podly RSS" button, which carries its own token. NVIDIA GPU: change the tag to gpu-nvidia-amd64 and add --runtime=nvidia to Extra Parameters (needs the Nvidia Driver plugin).

Ad-block for podcasts. Create an ad-free RSS feed.

Discord

Overview

Podly uses Whisper and Chat GPT to remove ads from podcasts.

How To Run

You have a few options to get started:

How it works:

  • You request an episode
  • Podly downloads the requested episode
  • Whisper transcribes the episode
  • LLM labels ad segments
  • Podly removes the ad segments
  • Podly delivers the ad-free version of the podcast to you

Cost Breakdown

Monthly cost breakdown for 5 podcasts

Cost Hosting Transcription LLM
free local local local
$2 local local remote
$5 local remote remote
$10 public (railway) remote remote
Pay What You Want preview server n/a n/a
$5.99/mo https://zeroads.ai/ production fork of podly

Contributing

See contributing guide for local setup & contribution instructions.

Media gallery

Requirements

An API key for an LLM provider (Groq, OpenAI, Anthropic, Gemini, or any OpenAI-compatible endpoint). Transcription can use the same Groq key, a remote Whisper API, or local Whisper on the CPU (default image only).

Related apps

Details

Repository
ghcr.io/podly-pure-podcasts/podly-pure-podcasts:latest
Last Updated2026-11-14
First Seen2026-11-14

Runtime arguments

Web UI
http://[IP]:[PORT:5001]/
Network
bridge
Shell
bash
Privileged
false

Template configuration

WebUIPorttcp

Web UI and RSS feeds.

Target
5001
Default
5001
Value
5001
AppdataPathrw

Database, settings, custom prompts, logs and processed audio.

Target
/app/src/instance
Default
/mnt/user/appdata/podly-pure-podcasts
Value
/mnt/user/appdata/podly-pure-podcasts
REQUIRE_AUTHVariable

Require a login for the web UI. Podcast apps then use the tokenised link from each feed's Subscribe to Podly RSS button.

Default
true|false
Value
true
PODLY_ADMIN_USERNAMEVariable

Admin account created on first start when REQUIRE_AUTH is true.

Default
podly_admin
Value
podly_admin
PODLY_ADMIN_PASSWORDVariable

Password for that admin. Required when REQUIRE_AUTH is true: the container will not start without it. It is only used to create the admin on an empty database; change it later in the web UI.

PODLY_SECRET_KEYVariable

Session signing key. Set a long random string (for example from: openssl rand -hex 32). Left empty, a new key is generated at every start and everyone is logged out.

PUIDVariable

User ID the app runs as.

Default
99
Value
99
PGIDVariable

Group ID the app runs as.

Default
100
Value
100
SERVER_THREADSVariable

Web server worker threads.

Default
1
Value
1
PODLY_TRUSTED_PROXYVariable

Behind an HTTPS reverse proxy: the proxy's exact IPv4 address as Podly sees it, so feed links use https. Leave empty otherwise. Never use a Docker bridge gateway address that clients of a published port also appear as.