本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SPEKE API 2.0 版
這是 REST API for Secure Packager and Encoder Key Exchange (SPEKE) v2。使用此規格為使用加密的客戶提供 DRM 版權保護。若要符合 SPEKE,您的 DRM 金鑰提供者必須公開此規格中所述的 REST API。加密程式會對您的金鑰提供者進行 API 呼叫。
注意
本規定中的代碼範例僅供參考之用。您無法執行這些範例,由於它們不是完整 SPEKE 實作的一部分。
SPEKE 使用 DASH 產業論壇內容保護資訊交換格式 (DASH-IF-CPIX) 資料結構定義進行金鑰交換,但有一些限制。DASH-IF-CPIX 會定義結構描述,以提供從 DRM 平台到加密程式的可擴展、多 DRM 交換。這可讓系統在內容壓縮和封裝時,能夠對所有自適性位元速率封裝格式進行內容加密。自適性位元速率封裝格式包括 HLS、DASH 和 MSS。
從其 2.0 版開始,SPEKE 會在特定的 CPIX 版本上對齊:
在 SPEKE 端,這是透過使用 X-Speke-Version HTTP 標頭,以及在 CPIX 端透過使用 CPIX@version 屬性強制執行。請求中缺少這些元素是 SPEKE v1 舊版工作流程的典型情況。在 SPEKE v2 工作流程中,只有在金鑰提供者同時支援兩個版本參數時,才會預期其會處理 CPIX 文件。
如需交換格式的詳細資訊,請參閱 DASH 產業論壇 CPIX 2.3 規格。
整體而言,與 SPEKE v1.0 相比,SPEKE v2.0 帶來了以下發展:
-
來自 SPEKE XML 命名空間的所有標籤都已棄用,以有利於 CPIX XML 命名空間中的對等標籤
-
SPEKE:ProtectionHeader已棄用,並由 取代CPIX:DRMSystem.SmoothStreamingProtectionHeaderData -
CPIX:URIExtXKey、SPEKE:KeyFormat和SPEKE:KeyFormatVersions已棄用,並由 取代CPIX:DRMSystem.HLSSignalingData -
CPIX@id被 取代CPIX@contentId -
新的強制性 CPIX 屬性:
CPIX@version、ContentKey@commonEncryptionScheme -
新的選用 CPIX 元素:
DRMSystem.ContentProtectionData -
支援多個內容金鑰
-
SPEKE 和 CPIX 之間的跨版本機制
-
HTTP 標頭演變:新
X-Speke-Version標頭、Speke-User-Agent標頭重新命名為X-Speke-User-Agent -
活動訊號 API 棄用
隨著 SPEKE v1.0 規格保持不變,現有的實作不需要變更,即可繼續支援 SPEKE v1.0 工作流程。