pigeon-pod
Media ServersA self‑hosted podcast manager that lets you subscribe to YouTube and Bilibili channels, generate protected RSS feeds, and download audio/video with fine‑grained controls.
Features
- Smart subscription & preview for YouTube/Bilibili channels and playlists
- Generate secure RSS feeds compatible with any podcast client
- Flexible audio/video download with quality/format options
- Auto‑sync, history backfill, and advanced filtering/retention controls
Recent releases
View all 14 releases →
1.28.0
New feature
Notable features
- Show retry count and next scheduled retry timestamp for failed episodes in the dashboard
- Add automatic log rotation to manage application log file sizes
Full changelog
Changelog
Features
- Transform YouTube playlist synchronization strategy to use the official YouTube Data API instead of
yt-dlp --flat-playlist, significantly improving metadata sync speed and reliability. - Show the current retry count and the next scheduled retry timestamp for failed episodes in the dashboard, providing better visibility into the auto-recovery process.
- Add automatic log rotation to manage application log file sizes more effectively.
Fixes
- Fix download failures caused by special symbols in file names during the
yt-dlpprocess. - Implement execution timeouts for
yt-dlpand a task recycling policy to prevent download tasks from being stuck indefinitely in the "downloading" state.
更新日志
新增功能
- 重构 YouTube 播放列表同步策略:从
yt-dlp --flat-playlist切换至官方 YouTube Data API,大幅提升元数据同步的速度与稳定性。 - 仪表盘失败任务列表新增显示当前重试次数及下次预定自动重试的时间戳,提升自动恢复过程的透明度。
- 新增日志轮转规则,更有效地管理应用程序日志文件大小。
修复问题
- 修复由于文件名中包含特殊符号导致
yt-dlp下载失败的问题。 - 为
yt-dlp执行过程增加超时机制,并引入任务回收策略,防止下载任务无限期卡死在“下载中”状态。
v1.27.0
Mixed
Notable features
- Post-download media validation catches broken or incomplete files before they remain in the library
- Configurable download file name pattern with variables: {channel}, {title}, {id}, {date}
- Auto-create playlist when adding single YouTube video for subscription-style management
Full changelog
Changelog
Features
- Add post-download media validation to catch broken or incomplete files before they remain in the library.
- Add bulk delete actions in the failed episode list so users can clean up failed tasks faster.
- Add a configurable download file name pattern with variables such as
{channel},{title},{id}, and{date}. - Automatically create a playlist when adding a single YouTube video, so individual videos can be subscribed to and managed like a normal feed.
Fixes
- Improve YouTube VOD and Premiere detection so episode filtering behaves more accurately.
- Fix cases where automatically created episodes could be skipped by auto-download tasks.
- Fix manually submitted download tasks that were not entering the queue in some cases.
- Fix playlist auto-download behavior by preserving episode order and avoiding unintended auto-downloads when retrying from playlist details.
- Fix download file name collisions by appending numeric suffixes instead of reusing an existing name.
- Fix the failed task list layout on small phone screens.
更新日志
新增功能
- 新增下载后媒体校验能力,在文件损坏或下载不完整时尽早识别问题,避免异常文件留在媒体库中。
- 失败任务列表新增批量删除操作,清理失败任务时更高效。
- 新增下载文件名模式配置,支持
{channel}、{title}、{id}、{date}等变量。 - 新增单个 YouTube 视频订阅支持,添加单个视频时会自动生成对应播放列表,便于像普通订阅源一样持续管理。
修复问题
- 优化 YouTube VOD 与 Premiere 的识别逻辑,使节目过滤结果更准确。
- 修复自动下载任务在部分情况下可能跳过新节目的问题。
- 修复手动提交的下载任务在部分情况下未能进入队列的问题。
- 修复播放列表自动下载行为,保持节目顺序稳定,并避免在播放列表详情页重试时触发非预期自动下载。
- 修复下载文件名冲突问题:当目标文件名已存在时,自动追加数字后缀,避免覆盖已有文件。
- 修复小屏手机上失败任务列表的布局异常。
1.26.0
New feature
Notable features
- YouTube VOD exclusion option
- Immediate queue processing for manual downloads
- Automatic refresh queue improvements
1.25.0
New feature
Notable features
- Automatic failed-download retry with exponential backoff
- Email and webhook notifications
- yt-dlp runtime management
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Install & Platforms
Install via
docker-compose
binary