播客 RSS 验证器

粘贴播客 RSS XML,逐项找出 XML、频道、单集、音频 <enclosure> 和日期问题,并查看修正位置。

播客 RSS XML

粘贴完整 Feed,包括 XML 声明和 <rss> 根元素。

这里只做静态结构检查,不会访问 Feed、封面图或媒体 URL;请另行确认链接能否访问、字节长度、音频能否解码,以及播客目录是否接受。

Feed 诊断

这里只做静态结构检查,不会访问 Feed、封面图或媒体 URL;请另行确认链接能否访问、字节长度、音频能否解码,以及播客目录是否接受。

    粘贴 Feed 后进行验证,即可查看每个问题的行号、列号和 XML 路径。

    可以检查 RSS XML。

    你的播客 Feed 会在浏览器本地检查,BroBroGo 不会上传或保存任何内容。

    常见问题

    这个播客 RSS 验证器会检查什么?

    它会检查 RSS 2.0 XML 是否规范、RSS 与常用 Apple Podcasts 频道和单集必填字段、<enclosure> 属性、重复值以及 RFC 2822 日期。

    它会测试音频文件吗?

    它会检查 <enclosure> 的 URL、字节长度、MIME 类型、是否重复,以及文件名与类型是否一致,但不会下载或解码音频。

    通过检查的 Feed 在所有平台都会被接受吗?

    不会。播客应用可能有额外规则和远程检查。通过只表示粘贴的 XML 满足这里显示的静态检查,不代表目录一定会接受或发布。

    播客 RSS 2.0 与 Apple Podcasts 规范要求

    播客分发的核心是 RSS 2.0 规范。一个合格的播客 Feed 必须是结构完整的 XML 文档,其文档根元素必须是 <rss>。同时,该 <rss> 标签的 version 属性必须设为 2.0。为了让主流平台(如 Apple Podcasts)正确识别播客的元数据,必须在 <rss> 上声明 Apple Podcasts 命名空间。

    在结构层面上,RSS 必须且只能包含一个直属 <channel>。该 <channel> 代表播客节目本身,其中必须包含至少一个单集 <item> 才能构成有效的播客 Feed。对于连续型(Serial)节目,规范要求更为严格,需要为每个单集提供正整数 <itunes:episode>。此外,<itunes:explicit> 标签必须明确设置为 "true" 或 "false"。

    在分类与链接方面,<itunes:category> 必须添加非空 text 属性。所有涉及的链接,包括 <link> 等字段,必须是完整的 HTTP 或 HTTPS URL。对于播客封面图,必须把 <itunes:image> 的 href 设为完整的 HTTP 或 HTTPS URL。

    音频 <enclosure> 属性验证标准

    <enclosure> 标签用于关联单集的媒体文件,是播客 RSS 中最关键的元素之一。每个单集只能保留一个 <enclosure>。该标签包含三个必填属性:urllengthtype

    1. URL 规范:必须把 <enclosure> 的 url 设为完整的 HTTP 或 HTTPS URL。
    2. 字节长度:必须把 <enclosure> 的 length 设为整数形式的字节数。如果 <enclosure> 的 length 为 0,验证器会触发警告:的 length 为 0。发布前请确认真实字节数。
    3. MIME 类型:必须使用有效的 MIME 类型,例如 audio/mpeg。如果使用了非音频 MIME 类型,会触发警告:此 <enclosure> 未标记为音频。请确认这是有意发布的视频或文档单集。

    此外,媒体文件的扩展名必须与声明的 MIME 类型保持一致,否则会触发警告:媒体文件名与 MIME 类型不一致(‹extension›‹mime›)。

    日期格式与唯一性标识

    播客客户端依赖发布日期对单集进行排序和展现。每个单集都应添加 <pubDate>,让播客应用可以可靠地排序和发布此单集。

    <pubDate> 必须遵循 RFC 2822 时间格式规范。合规的格式必须包含真实的日期和时区,例如:Sat, 01 Apr 2023 19:00:00 +0000。如果使用命名时区(如 EST、GMT),虽然可以被接受,但由于兼容性较差,建议使用 +0000 这类数字偏移。

    为了防止客户端在抓取时出现单集混乱或重复推送,Feed 中的关键字段必须保持唯一:

    • GUID 唯一性:每个单集的 <guid> 必须唯一,若出现重复,会提示:此 GUID 与第 ‹first› 行的值重复。
    • 音频 URL 唯一性:不同单集不能指向相同的媒体文件,若 <enclosure> 的 URL 重复,会提示:此 URL 与第 ‹first› 行的值重复。

    诊断信息与 XML 调试定位

    当使用验证器检查播客 Feed 时,工具会输出详细的 Feed 诊断信息,包括:

    • ‹count› 个错误
    • ‹count› 个警告
    • ‹count› 个单集

    为了方便开发者和播客制作人快速修复问题,验证器会精确指出问题所在的物理位置,格式为:第 ‹line› 行,第 ‹column› 列。同时,系统会提供 XPath 风格的路径,标明修正位置:‹path›,并提供直达链接:前往第 ‹line› 行的 ‹path›。如果 Feed 中的问题过多,列表会进行截断展示,并提示:共 ‹total› 个问题,显示前 ‹shown› 个。

    如果 XML 文档本身存在格式错误,必须修正格式错误的 XML 后再验证。如果文档中包含 DOCTYPE 声明,则必须在检查此 Feed 前,请移除 DOCTYPE 声明。

    静态验证的局限性与平台限制

    本验证器执行的是静态结构检查。通过验证仅代表 Feed 满足了工具所设定的静态规则,并不保证播客目录或托管平台一定会接受或发布它。

    验证器不会访问 Feed、封面图或媒体 URL,也不会下载或解码音频文件。用户需要另行确认链接能否访问、字节长度是否正确、音频能否正常解码,以及播客目录是否接受该 Feed。

    此外,主流平台对单集数量设有上限。例如,如果一个 Feed 包含超过 2,000 个单集,验证器会提示:此 Feed 有 ‹count› 个单集;Apple Podcasts 只显示最近 2,000 个。

    隐私保护与使用限制

    本工具在处理数据时严格保护用户隐私。你的播客 Feed 会在浏览器本地检查,BroBroGo 不会上传或保存任何内容。

    为了保证浏览器端的处理性能,工具设有以下限制:

    • 每次最多检查 500,000 个字符。
    • 如果输入的 Feed 体积过大导致计算超时,会提示:验证耗时过长,请尝试较小的 Feed。
    • 如果未输入任何内容直接点击验证,会提示:请先粘贴播客 RSS XML,再进行验证。

    常见问题

    这个播客 RSS 验证器会检查什么?

    它会检查 RSS 2.0 XML 是否规范、RSS 与常用 Apple Podcasts 频道和单集必填字段、<enclosure> 属性、重复值以及 RFC 2822 日期。

    它会测试音频文件吗?

    它会检查 <enclosure> 的 URL、字节长度、MIME 类型、是否重复,以及文件名与类型是否一致,但不会下载或解码音频。

    通过检查的 Feed 在所有平台都会被接受吗?

    不会。播客应用可能有额外规则和远程检查。通过只表示粘贴的 XML 满足这里显示的静态检查,不代表目录一定会接受或发布。