github aizhimou/pigeon-pod 1.31.0
release 1.31.0

5 hours ago

Changelog

Features

  • Unified RSS Feed: Added a built-in "All Episodes" feed card pinned to the top of the Home dashboard, along with global RSS endpoints (/api/rss/all.xml and /api/rss/unified.xml). Supports browsing all completed episodes in one place, web playback, and customizable feed title, cover, and language.
  • Per-Podcast yt-dlp Arguments: Supported configuring custom yt-dlp download arguments for individual channels or playlists under "Expert Mode", enabling fine-grained download parameters that override or complement global settings.
  • Podcast Language Configuration: Added podcast language settings for both individual subscriptions and global feed defaults, outputting standard RFC 5646-compliant <language> tags in RSS feeds for better compatibility with Apple Podcasts and other podcast directories.
  • Livestream VOD Filter: Added an option to filter channel subscriptions to only synchronize and display archived livestream recordings (VODs).
  • Local Episode Cover Reuse: Podcast feeds now prefer locally stored episode covers for <itunes:image> tags with normalized URL protocols, preventing external CDN rate limits and broken image displays.
  • Region-Aware CDN Routing: Added declarative, community-maintainable CDN routing rules for yt-dlp to automatically select optimal download mirrors (such as overseas APAC, Western, or China mainland routes) and bypass throttled P2P nodes.

Fixes

  • Podcast RSS Standards Alignment: Adjusted channel metadata tags (<itunes:explicit>, <itunes:category>, <itunes:image>) to precede item entries in compliance with Apple Podcasts RSS specifications, and corrected M4A audio enclosure MIME types to audio/x-m4a.
  • RSS pubDate Timezone Preservation: Fixed an issue where episode publication dates were converted using UTC instead of the server's local timezone, ensuring correct release timestamps and preventing publication dates from shifting to the next day in non-UTC timezones.
  • Bilibili Request Stability: Attached user cookies to API metadata requests to avoid HTTP 412 (Precondition Failed) errors during video information synchronization.
  • Webhook Notification Compatibility: Redesigned the default webhook JSON payload with root-level title, content, and text fields, offering out-of-the-box compatibility with Discord and Slack, alongside improved delivery failure error reporting.
  • Subtitle Language Code Matching: Supported hyphens in subtitle language identifiers (such as zh-Hans and en-US), allowing multi-regional subtitles to be recognized correctly.
  • Episode Cleanup & Resilience: Added defensive null checks during episode lookups and ensured file cleanup routines gracefully handle missing directories without interrupting task processing.

更新日志

新增功能

  1. 全局聚合播客源与内置卡片:在主页顶部新增置顶的内置“全部单集”卡片,并提供全局聚合 RSS 订阅地址(/api/rss/all.xml 与 /api/rss/unified.xml)。支持统一浏览所有已完成单集、在线播放,并可自定义聚合源的标题、封面及语言配置。
  2. 单播客自定义 yt-dlp 参数:在编辑订阅的“专家模式”下,支持为单个频道或播放列表配置独立的 yt-dlp 下载参数,满足不同订阅源的个性化下载需求,并可回退至全局设置。
  3. 播客语言配置与 RSS 标签:新增单播客及全局订阅默认语言配置,并在 RSS 2.0 中输出符合 RFC 5646 及 Apple Podcasts 规范的标准 <language> 标签,提升第三方播客客户端的识别与兼容性。
  4. 直播回放过滤:新增订阅过滤选项,支持仅同步并展示频道中的直播归档回放(VOD)视频。
  5. 本地单集封面复用:播客源中的 <itunes:image> 优先使用本地存储的单集封面并规范化访问协议,避免外部图片源防盗链、速率限制或图片失效问题。
  6. 区域感知 CDN 下载路由:引入社区化声明式 CDN 路由规则与 yt-dlp 运行时挂钩,针对不同部署地域(海外亚太、欧美、大陆直连)智能重定向至优质镜像节点,规避限速严重的 P2P 边缘节点。

修复问题

  1. 播客 RSS 规范对齐:调整 <itunes:explicit>、<itunes:category> 与 <itunes:image> 等频道级元数据标签至首个单集前输出,完全符合 Apple 播客官方规范;并将 M4A 文件的 MIME 类型修正为标准的 audio/x-m4a。
  2. RSS 发布时间时区精度:修复在非 UTC 时区环境下,单集发布时间未正确保留本地时区偏移而导致 RSS pubDate 出现偏差、甚至日期跳至次日的问题。
  3. Bilibili 接口稳定性:在请求视频元数据时附带用户 Cookie,避免触发风控导致 HTTP 412 错误,提升同步成功率。
  4. Webhook 通知载荷兼容性:优化默认 Webhook 消息结构,在根层级提供 title、content 与 text 字段,开箱即用兼容 Discord、Slack 等通知服务,并增强投递失败时的错误排查提示。
  5. 字幕语言代码兼容:字幕文件匹配规则支持连字符语言代码(如 zh-Hans、en-US),确保区域字幕文件被正常识别与关联。
  6. 容错性与文件清理提升:增强获取最新单集时的空指针防御,并在媒体资产清理过程中妥善处理不存在的目录,避免中断任务生命周期。

Don't miss a new pigeon-pod release

NewReleases is sending notifications on new releases.