行動端網頁的授權播放功能與原理
隨著行動端影片技術的發展,使用者對行動端觀看影片的需求日益增加,教育行業對行動端的影片版權保護意識也日益加強。保利威視推出了行動端網頁的授權播放功能,以保護使用者在行動端觀看影片的版權。
要實現行動端網頁的授權播放功能,首先需要在 POLYV 後台進行以下設定:
儲存好以上設定之後,還需要在頁面程式碼中加入 ts 和 sign 參數。當手機瀏覽器請求 m3u8 位址時,會將 ts 和 sign 參數傳遞給 m3u8 位址,m3u8 的 key 授權伺服器收到參數後進行驗證。如果 ts 和 sign 參數正確,保利威視的 key 授權伺服器會回傳正確的 key 檔案給播放器。如果 ts 或 sign 參數錯誤,則會回傳 400 錯誤。
以下以 PHP 為範例程式碼,其中 ts 參數為當前時間戳乘以 1000,sign 為 secretkey、vid、ts 依序拼湊起來的字串進行 MD5 計算得到的結果。
<?php
$vid = "e2e84a738354402a52ce81aeab4e3067_e";
$secretKey= "7UagtQOq2A";
$ts=time()*1000;
$hash = md5($secretKey.$vid.$ts);
?>
<script src='http://static.polyv.net/file/polyvplayer_v2.0.min.js'></script>
<div id='plv_e2e84a738354402a52ce81aeab4e3067_e'></div>
<script>
var player = polyvObject('#plv_e2e84a738354402a52ce81aeab4e3067_e').videoPlayer({
'width':'600',
'height':'485',
'vid' : 'e2e84a738354402a52ce81aeab4e3067_e',
'ts':'<?php echo $ts; ?>',
'sign':'<?php echo $hash; ?>'
});
</script>
整個行動端網頁的授權播放功能實現過程,如下圖所示:
那麼,保利威視是如何重視並保護行動端存取的 m3u8 檔案呢?
首先,我們來看一下 m3u8 檔案裡面的具體內容。
其中,m3u8 檔案在播放過程中需要用來解密播放 ts 檔案的 key,如下圖所示:
接下來,在「開放授權」(在「POLYV 後台」——「影片設定」——「行動端加密設定」裡面設定)的情況下,直接存取 key 檔案 http://hls.videocc.net/e2e84a7383/7/e2e84a738354402a52ce81aeab4e3067_1.key ,存取正常,回傳 200。如下圖所示:
如果在「網頁授權」的情況下,直接存取 key 檔案 http://hls.videocc.net/e2e84a7383/7/e2e84a738354402a52ce81aeab4e3067_1.key ,則存取異常,回傳 400 錯誤。如下圖所示:
那在「網頁授權」的情況下,使用保利威視行動端網頁的授權播放功能,如何合法正確地請求 m3u8 檔案,從而取得合法的 key 檔案呢?
首先,取得使用者頁面程式碼中的 ts(時間戳)和 sign 參數,將這兩個參數拼接到原來的 m3u8 位址中,得到合法的 m3u8 位址 http://hls.videocc.net/e2e84a7383/7/e2e84a738354402a52ce81aeab4e3067_1.m3u8?ts=1437043087000&sign=7318672c72cc6a1991cf3817537900e3 ,存取請求到合法的 m3u8 檔案。如下圖所示:
接下來,從合法的 m3u8 檔案中取得合法的 key 位址 http://hls.videocc.net/e2e84a7383/7/e2e84a738354402a52ce81aeab4e3067_1.key?ts=1437043087000&sign=9cc24d16d03623e74041e3a757dffa65 ,存取請求到合法的 key 檔案,回傳 200。如下圖所示:
由於在「網頁授權」的情況下,key 檔案的存活時間為 5 分鐘。5 分鐘過後,則之前的 key 檔案失效,存取原來的 key 檔案則會回傳 400 錯誤。如下圖所示:


