-
-
Notifications
You must be signed in to change notification settings - Fork 101
Configuration Overview
This page gives you the configuration map for PigeonPod.
Use this page when you want to understand:
- which settings matter most for a normal self-hosted setup
- which settings are required only for specific use cases
- which settings affect sync, downloads, RSS, storage, and networking
This page is intentionally high-level. It tells you what each group is for and when you should care about it.
Before using this page, you should already have:
- a running PigeonPod instance
- access to the web UI
- admin access to User Settings
If you have not deployed the app yet, start with Quick Start.
These settings control how users reach and sign in to your instance.
By default, PigeonPod enables built-in authentication.
For most users:
- keep it enabled
- use the default login once
- change credentials after your first login
Only disable built-in auth if the instance is already protected by another trusted layer such as:
- an auth proxy
- VPN access
- reverse proxy access control
- a private network
If you disable built-in auth and expose the instance directly to the public Internet, that is a deployment mistake.
Base URL is used when PigeonPod generates or copies RSS links and other externally shared URLs.
Use it when:
- you access PigeonPod through a domain name
- you want RSS links to work outside your local browser session
- you want public links to point to the correct hostname
Example:
https://podcasts.example.com
If this is empty, the app can still run, but copied RSS links may not be usable.
This is an extra login protection option.
Most self-hosting users can leave it off unless:
- the instance is more exposed
- you want an additional login friction layer
These settings matter if you use YouTube channels or playlists.
This is the main requirement for YouTube feed detection and sync.
Without it:
- YouTube channel and playlist workflows will not function correctly
You should configure this early in setup.
Related page:
PigeonPod can track and enforce a daily quota limit for YouTube API usage.
When the limit is reached:
- auto sync stops for the rest of the day
- sync resumes later when the quota window resets
Use this when:
- you want predictable API usage
- you are close to YouTube quota limits
- you manage many feeds
Cookies are not required for normal public content.
Use YouTube cookies only when needed, for example:
Sign in to confirm you're not a bot- age-restricted content
- members-only or account-protected content
Do not treat cookies as a default setup step.
Related page:
If you use Bilibili feeds, the main optional advanced setting is cookies.
Use Bilibili cookies when:
- yt-dlp hits browser verification or
412 - public access is unreliable from your environment
If Bilibili works normally, you can leave cookies unset.
Feed defaults define the starting values used when you create new subscriptions.
These are especially useful if you create many feeds and want consistent behavior.
Important defaults include:
- auto download limit
- auto download delay
- minimum duration
- maximum episodes
- download type
- subtitle languages
- subtitle format
Use feed defaults to reduce repetitive setup, but still adjust individual feeds when one source needs special handling.
Related page:
PigeonPod supports an outbound proxy for:
- YouTube Data API requests
- yt-dlp requests
This is useful when:
- your network blocks or rate-limits YouTube access
- you need region-specific access
- your host environment needs a proxy to reach upstream services reliably
Supported proxy types include:
- HTTP/HTTPS
- SOCKS5
Practical notes:
- if PigeonPod runs in Docker and the proxy runs on the host machine, do not use
127.0.0.1 - use
host.docker.internalor the host LAN IP instead - save the proxy first, then run the built-in proxy tests
If you do not need a proxy, leave it disabled.
PigeonPod supports two storage modes:
LOCALS3
Use local storage when:
- you want the simplest setup
- you store media on the same machine as the app
- you do not need object storage
Main settings:
- local audio path
- local video path
- local cover path
Use S3-compatible storage when:
- you want external object storage
- you need more flexible cloud deployment
- local disk is not your preferred long-term media store
Main settings:
- endpoint
- region
- bucket
- access key
- secret key
- path style access
- timeout options
- presign expiry
Important limitation:
- switching storage mode does not migrate existing media
- if you move from
LOCALtoS3or back, you must migrate old media manually
Use the built-in storage test before saving or switching.
yt-dlp is the runtime PigeonPod uses for downloads.
The main advanced areas are:
- custom yt-dlp arguments
- managed yt-dlp runtime version
Use this only when you have a specific need and understand the risk.
These arguments can:
- improve compatibility in edge cases
- also break downloads if misused
If downloads start failing after adding custom arguments, remove them first and test again.
PigeonPod can manage the yt-dlp runtime under /data.
This helps when:
- upstream extraction behavior changes
- a newer yt-dlp version fixes a site-specific problem
- you want in-app control over updates
Do not update yt-dlp blindly on a stable instance unless you actually need the change.
PigeonPod can generate RSS feeds for podcast apps.
For RSS to work well outside your browser:
- set the correct Base URL
- make sure the instance is reachable from your client
- make sure at least one episode is actually downloaded
If RSS looks empty, the problem is often not the RSS feature itself. The real cause is usually that no episode has reached COMPLETED.
For a normal setup, the minimum important configuration usually is:
- YouTube API key, if using YouTube
- Base URL, if you want usable copied RSS links
- Storage mode and paths
- Feed defaults
Everything else is conditional:
- cookies only when needed
- proxy only when needed
- yt-dlp args only when needed
- S3 only when you actually want object storage
After configuring your instance, verify these checkpoints:
- You can log in and open User Settings
- A YouTube or Bilibili feed can be created successfully
- One episode can be downloaded successfully
- The feed can produce a usable RSS link
- If you use proxy or S3, the built-in tests pass
Usually:
- missing or invalid YouTube API key
- daily quota exhausted
Usually:
- cookies are stale
- proxy is wrong
- custom yt-dlp arguments are unsafe
Usually:
- storage mode changed without migrating old files
Repository · Releases · Issues · Discussions
Security note: Do not expose an auth-disabled PigeonPod instance directly to the public Internet.