Podcast RSS 2.0 規範與結構要求
Podcast 的發佈核心建立在 RSS 2.0 規範之上。一個合格的 Podcast RSS 必須是結構完整且格式正確的 XML 文件。
在結構上,文件的根元素必須是 <rss>,且其 version 屬性必須設為 "2.0"。為了支援 Apple Podcasts 等主流平台的進階欄位,必須在 <rss> 標籤中宣告 Apple Podcasts 命名空間。此外,RSS 必須且只能包含一個直屬 <channel>。如果 XML 文件中包含 DOCTYPE 宣告,將會導致解析衝突,必須在檢查前予以移除。
Apple Podcasts 頻道與單集必填欄位
為了確保節目能在各大平台正常上架,頻道與單集必須滿足特定的欄位要求:
- 頻道層級:必須包含所有必填的 RSS 與 Apple Podcasts 欄位。例如,
<itunes:explicit>標籤必須明確設定為 "true" 或 "false"。若有設定分類,必須為<itunes:category>加入非空白的 text 屬性。所有連結與圖片的href屬性,都必須是完整的 HTTP 或 HTTPS URL。 - 單集層級:一個有效的頻道中至少必須加入一個單集。如果是連續型節目(Serial),則需要為每個單集提供正整數的
<itunes:episode>。此外,每個單集必須擁有唯一的<guid>,若出現重複的 GUID,將會觸發錯誤。
音訊 Enclosure 屬性驗證
<enclosure> 標籤負責關聯單集的媒體檔案,每個單集只能保留一個 <enclosure>。驗證器會針對以下屬性進行嚴格檢查:
- URL 格式:必須將
<enclosure>的 url 設為完整的 HTTP 或 HTTPS URL。 - 檔案長度:必須將 length 設為整數位元組數。如果長度設定為 0,系統會發出警告,提醒在發佈前確認實際位元組數。
- MIME 類型:必須使用有效的 MIME 類型(例如
audio/mpeg)。如果使用了非音訊的 MIME 類型,系統會提出警告,要求確認是否為有意發佈的影片或文件單集。 - 一致性與唯一性:媒體檔名與 MIME 類型必須一致,若副檔名與類型不符(例如
‹extension›與‹mime›)會產生警告。此外,同一個 Feed 中不可出現重複的 enclosure URL。
日期格式與單集數量限制
正確的日期格式對於 Podcast App 排序與發佈單集至關重要。
單集必須加入 <pubDate>。日期格式必須嚴格遵守 RFC 2822 規範,使用包含真實日期與時區的格式,例如:Sat, 01 Apr 2023 19:00:00 +0000。如果使用具名時區(例如 EST、GMT),雖然可以接受,但通用性較差,建議改用 +0000 這類數字偏移量。
在單集數量方面,雖然 RSS 本身沒有嚴格限制,但若 Feed 中的單集數量超過 2,000 個,系統會發出警告,因為 Apple Podcasts 預設只會顯示最近的 2,000 個單集。
診斷訊息與除錯定位
當驗證器偵測到問題時,會提供精確的定位資訊,協助開發者與節目製作人快速修正:
- 精確位置:指出問題位於「第
‹line›行,第‹column›欄」。 - XML 路徑:提供 XPath 格式的修正位置(例如「修正位置:
‹path›」),並提供直接跳轉連結「前往第‹line›行的‹path›」。 - 結果摘要:顯示「
‹count›個錯誤」與「‹count›個警告」,若問題過多,則會顯示「共‹total›個問題,顯示前‹shown›個。」。
需要注意的是,本工具進行的是靜態結構檢查,並不會實際下載、解碼音訊檔,也不會連線至封面圖或媒體 URL。通過此處的靜態檢查,並不代表 Podcast 目錄或託管平台一定會接受或發佈該 Feed。
隱私與處理說明
本工具的驗證程序完全在您的瀏覽器本機執行,您的 Podcast Feed 內容不會上傳或儲存至 BroBroGo 伺服器。本工具每次檢查的上限為 500,000 個字元。
常見問題
這個 Podcast RSS 驗證器會檢查什麼?
它會檢查 RSS 2.0 XML 是否完整、RSS 與常用 Apple Podcasts 頻道和單集必填欄位、<enclosure> 屬性、重複值,以及 RFC 2822 日期。
它會測試音訊檔嗎?
它會檢查 <enclosure> 的 URL、位元組長度、MIME 類型、是否重複,以及檔名與類型是否一致,但不會下載或解碼音訊。
通過檢查的 Feed 在所有地方都會被接受嗎?
不會。Podcast App 可能另有規則與遠端檢查。通過只表示貼上的 XML 符合這裡顯示的靜態檢查,不代表目錄一定會接受或發佈。