前言
其實就是看到某個東西,想要抓。然後突然不知道怎麼抓…就拿這篇當備忘錄了。
正文
1. 取得m3u8
開啟chrome 按下F12 開啟 開發者工具,
切到 Network頁籤,再重新整理(F5)一次。
再來利用上方的 Filter 搜尋 m3u8 (Fig.1)
(Fig.1)
這就是我們要找的檔案了(別關掉,等等可能還會用到),
再來要如何下載m3u8呢?
把他當成一個播放清單會比較好理解。
2.下載ffmpeg
(這東西真萬能,前陣子公司再搞ffmpeg硬體加速也死了我一堆腦細胞,那篇文章還處於草稿階段XDDDD),
解壓縮後,到該資料夾內的bin底下,看有沒有ffmpeg的執行檔,
如果想在其他地方使用,就必須去設定系統參數,
我在這邊不設定,直接切到該資料夾底下執行ffmepg(Fig. 2),
(Fig.2)
3.下載指令
ffmpeg –i http://example.com/123.m3u8 demo.mp4
如果這樣就能下載, 非常好
如果碰到下載失敗的情況,仔細看錯誤訊息。
我這邊的話是,403 存取被拒(Fig.3),
(Fig.3)
通常這個時候,就是要把一些Header塞進去下載參數內了。
要塞哪些資料呢,此時開啟(Fig. 1),找到 Request Header(Fig.4)
看看下面塞了哪些東西,開始往ffmpeg指令塞,運氣好可能第一個塞完就可以抓了。
(Fig.4)
這邊我是看英文亂猜,塞入:authority 就能下載了。
完整指令如下
ffmpeg -user_agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0)
Gecko/20100101 Firefox/61.0" ^
-headers "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36" ^
-headers ":authorityr: dbdve" ^
-i https://abc.ere/10201.m3u8 ^
-c copy "02.mp4"
windows 利用 ^ 來換行,如果是linux,就要用 \ 換行了
要中斷的話,按下ctrl+c 即可。
ref.
ffmpeg - How to pass http headers?
0 意見:
張貼留言