RSS Feed Parser Expert 是 Modcaster 的播客 RSS 源解析专用技能,目标是确保对播客 RSS 源的稳健解析,提取全部元数据以支持智能整理与内容分类。
用途:面向播客 RSS 源解析场景,负责读取并解析播客订阅源,抽取频道与单集信息,为后续组织、分类和播放状态管理提供结构化数据。
主要能力:
- 标准 RSS 2.0:解析 <channel> 元数据(标题、描述、链接、语言)与 <item> 单集数据(标题、描述、pubDate、guid、enclosure);正确处理永不改变的 GUID,以跨会话跟踪单集;按 RFC 2822 解析日期并支持时区。
- iTunes 命名空间(itunes:):解析季/集编号(itunes:season、itunes:episode)、单集类型(itunes:episodeType:full、trailer、bonus)、时长(秒或 HH:MM:SS)、显式内容标记(从频道继承到单集)、节目/单集封面(1400-3000px 方形)与分类层级。
- Podcasting 2.0 命名空间(podcast:):解析转录链接(podcast:transcript,含类型/语言)、章节标记(podcast:chapters JSON 引用)、声音片段(podcast:soundbite,含 startTime/duration)、人物标签(podcast:person,用于主持人/嘉宾)、变现 value 标签与直播单集支持。
- 章节标准:支持 Podlove Simple Chapters(嵌入源中)与 Podcast Namespace Chapters(外部 JSON),采用 Normal Play Time 格式(HH:MM:SS、MM:SS 或 SS.mmm),并解析章节元数据(标题、href、图片)。
使用方式:该技能作为解析专家被调用时,会询问“Parse new feed?”、“Audit existing feed: [URL]”或“Full feed validation check?”。其处理流程为:使用条件请求头(If-None-Match、If-Modified-Since)通过 HTTP GET 获取源;解析前检查 XML 格式正确性;解析频道并验证命名空间;流式处理单集并提取全部元数据;应用单集类型检测与季度分组;以 GUID 为主键去重并检测变化;将结果持久化到 CoreData/SQLite 并建立关系;记录解析错误、缺失字段与警告。
校验清单:检查必填字段(guid、enclosure 的 url/length/type、pubDate);进行类型安全转换与错误处理;验证 enclosure.url 可访问且 MIME 类型正确;处理日期时区差异,模糊时默认 UTC;安全去除或转义标题/描述中的 HTML;命名空间缺失时优雅降级;处理 UTF-8 字符编码与实体解码;检测 XML 畸形与部分下载的源。
智能分类逻辑:当 RSS 未指定类型时进行推断——时长小于 5 分钟且标题含 trailer、preview、teaser 视为 Trailer;标题含 bonus、extra、behind the scenes、Q&A 视为 Bonus;存在季与集编号视为 Full;否则默认为 Full。交叉推广检测:识别描述中带有不同播客 GUID 的单集,检测“Check out [other show]”模式,并标记明显短于该节目常规长度的单集。季度组织:优先按 itunes:season 分组,其次按 pubDate 的年份分组,并从标题模式(如 S01E01、Season 2 Episode 3)检测季度变化。
性能优化:仅解析 lastBuildDate 之后的新单集;使用 ETag 与 Last-Modified 头做条件请求;在后台队列解析并缓存结果;流式处理大源,避免整源载入内存;支持部分解析容错,保存有效数据并报告错误。
常见问题与修复:GUID 意外变化时,跟踪 GUID 与 enclosure URL 配对,并将 enclosure URL 作为次级标识;显式标记不正确时,对频道与单集采用 OR 逻辑(任一为真即视为显式);日期无时区时假定 UTC 并记录警告;附件 URL 损坏时,最多跟随 3 跳重定向并缓存最终 URL;标题含 HTML 实体时全部解码。
输出格式:以 FEED、URL、Status(✓ VALID | ⚠ WARNINGS | ✗ INVALID)、已解析单集数与新增数,以及元数据覆盖率(季/集、单集类型、转录、章节、显式标记的百分比)、问题列表(带严重级别与单集标题)和优化建议的形式呈现。
适用场景:播客应用的源解析与元数据整理、单集去重与播放状态跟踪、内容分类与季度归档、源质量审计与校验、新单集增量抓取等。
限制:资料未提供具体收费、价格、平台支持情况或效果保证;部分播客单集类型覆盖率仅 40-60%,季/集编号等字段并非所有播客都完整填充,需要依赖回退策略;章节、转录等 Podcasting 2.0 能力取决于源是否实际提供。