有些網站使用 flash 在線播放視頻,不方便進行下載。
可以使用 Chrome 的 Developer Tools 模擬成 iOS 設備(通過修改 User Agent),然后取得 h.264 視頻流的地址。
取得 h.264 視頻流的地址
1. 在頁面上打開 Developer Tools (開發者工具),點擊坐上的"手機"按鈕(如下圖)。
2. 在左邊 "Device" 選擇 "Apple iPhone" 或 "Apple iPad" 等設備,刷新頁面。
3. 這時頁面應該會提供 html5 的視頻播放支持,定位到播放器元素,找到數據源鏈接(通常是一個 m3u8 文件)。
如何下載分段並加密的 .m3u8 視頻流
1. 下載一個編譯好的 ffmpeg 可執行文件(http://ffmpeg.org)。
2. 使用命令 ffmpeg -i http://...m3u8 -c copy out.mkv 將視頻流下載並合並成 out.mkv。
4. 如果視頻流並未加密,或者加密密鑰(URI 存在於 m3u8 中)可以直接通過 http 訪問到,通常可以正常下載(這種情況一般也可以用各種瀏覽器視頻下載插件下載),但如果 URI 通過 https 協議,或者有 cookies 驗證等機制,則需要手動下載密鑰。
5. m3u8 中的密鑰通常是這樣的:#EXT-X-KEY:METHOD=AES-128,URI="https://xxx" 這時需要用能夠在線觀看到這個視頻的瀏覽器會話去訪問這個 URI (通過 cookies 驗證),並保存到本地,把 m3u8 也保存到本地,密鑰的 URI 改為下載好的本地路徑(一個 m3u8 中可能有多個密鑰,需要一一處理)。
6. 再次執行 ffmpeg 的命令,即可正常下載。
注:
使用 ffmpeg 無法直接下載 m3u8 內容的情況:
1. m3u8 中的密鑰的 URI 是走 https 協議的(這時 ffmpeg 一般會提示不支持 https 協議,但可以通過自己編譯一個 ffmpeg 來打開 https 的支持)。
2. URI 有 cookies 認證(這種情況應該只能用瀏覽器先下載密鑰了)。