如何下載優酷 m3u8 格式的影片文件?

  • 2019 年 10 月 4 日
  • 筆記

mp4

平常最熟悉的影片文件格式就是mp4了,比如這個微博影片就是mp4格式https://weibo.com/tv/v/I6NlI3XNO?fid=1034:4416174394388093

通過一鍵影片下載器擴展獲取mp4文件地址https://f.video.weibocdn.com/000ayK6Dlx07wZwKH7lu01041200prjS0E010.mp4?label=mp4_hd&template=640x396.24.0&trans_finger=ac6fb6d5c49a67fe2901ae638b222ab2&Expires=1568554727&ssig=ZtEl%2F7uG8e&KID=unistore,video 然後直接用瀏覽器下載就可以了。

那m3u8又是什麼呢?

m3u8

M3U是一種播放多媒體列表的文件格式,它的設計初衷是為了播放音頻文件,比如MP3,但是越來越多的軟體現在用來播放影片文件列表,M3U也可以指定在線流媒體音頻源。很多播放器和軟體都支援M3U文件格式。 M3U8是Unicode版本的M3U,用UTF-8編碼。"M3U"和"M3U8"文件都是蘋果公司使用的HTTP Live Streaming格式的基礎,這種格式可以在iPhone和Macbook等設備播放。

以上來自維基百科解釋。

m3u8是HTTP Live Streaming直播的索引文件,打開它時播放軟體並不是播放它,而是根據它的索引找到對應的音影片文件的網路地址進行在線播放。

優酷影片播放的文件就是m3u8格式,比如這個影片 周杰倫電影《不能說的秘密》你看過嗎 https://v.youku.com/v_show/id_XMjg5MDQxOTc2MA==.html?spm=a2h0k.11417342.soresults.dtitle

通過控制台可以看到m3u8文件地址 https://pl-ali.youku.com/playlist/m3u8?vid=XMjg5MDQxOTc2MA&type=mp4&ups_client_netip=3b6d992c&utid=M196FRgJHVwCAXb3FB8gYVHW&ccode=0502&psid=f50f79c10a8678682848a73d82d3716a&app_ver=1.8.1&duration=298&expire=18000&drm_type=1&drm_device=7&play_ability=5376&media_type=standard,subtitle&ups_ts=1568551492&onOff=0&encr=0&ups_key=11ea864efe421edbefa4aaa770c2b741

把這個文件下載到本地可以看到內容:

#EXTM3U  #EXT-X-TARGETDURATION:12  #EXT-X-VERSION:3  #EXTINF:6.0,  http://ykugc.cp31.ott.cibntv.net/6574C0B44B8357159B75639A8/03000201005968368A9A59456709F2F71EACA8-CD59-5E8E-E5CC-BCC4CD6E539C.flv.ts?ccode=0502&duration=298&expire=18000&psid=f50f79c10a8678682848a73d82d3716a&ups_client_netip=3b6d992c&ups_ts=1568551492&ups_userid=&utid=M196FRgJHVwCAXb3FB8gYVHW&vid=XMjg5MDQxOTc2MA&sp=&bc=2&vkey=Ae1f41ad7d602251c773d68dc69615287&ts_start=0.0&ts_end=5.9&ts_seg_no=0&ts_keyframe=1  #EXTINF:6.0,  http://ykugc.cp31.ott.cibntv.net/6574C0B44B8357159B75639A8/03000201005968368A9A59456709F2F71EACA8-CD59-5E8E-E5CC-BCC4CD6E539C.flv.ts?ccode=0502&duration=298&expire=18000&psid=f50f79c10a8678682848a73d82d3716a&ups_client_netip=3b6d992c&ups_ts=1568551492&ups_userid=&utid=M196FRgJHVwCAXb3FB8gYVHW&vid=XMjg5MDQxOTc2MA&sp=&bc=2&vkey=Ae1f41ad7d602251c773d68dc69615287&ts_start=5.9&ts_end=11.9&ts_seg_no=1&ts_keyframe=1  

播放影片的時候就是播放這樣一段一段的ts文件 http://ykugc.cp31.ott.cibntv.net/6574C0B44B8357159B75639A8/03000201005968368A9A59456709F2F71EACA8-CD59-5E8E-E5CC-BCC4CD6E539C.flv.ts

m3u8格式的文件用QQ影音這樣的軟體沒法直接播放的,這就需要將m3u8轉換為mp4格式了,推薦一個非常好用的命令行工具ffmpeg 。

ffmpeg

FFmpeg 是一個自由軟體,可以運行音頻和影片多種格式的錄影、轉換、流功能,包含了libavcodec——這是一個用於多個項目中音頻和影片的解碼器庫,以及libavformat——一個音頻與影片格式轉換庫。

直接在官網下載就好 https://ffmpeg.org/ ,然後打開命令行直接輸入ffmpeg -i "https://pl-ali.youku.com/playlist/m3u8?vid=XMjg5MDQxOTc2MA&type=mp4&ups_client_netip=3b6d992c&utid=M196FRgJHVwCAXb3FB8gYVHW&ccode=0502&psid=f50f79c10a8678682848a73d82d3716a&app_ver=1.8.1&duration=298&expire=18000&drm_type=1&drm_device=7&play_ability=5376&media_type=standard,subtitle&ups_ts=1568551492&onOff=0&encr=0&ups_key=11ea864efe421edbefa4aaa770c2b741" -vcodec copy -acodec copy -absf aac_adtstoasc 不能說的秘密短片.mp4 等待一會就能下載到本地。

當然也可以將mp4轉換為m3u8格式,直接ffmpeg -i 不能說的秘密短片.mp4 -c copy -bsf h264_mp4toannexb 不能說的秘密短片.ts ,然後再將ts文件切片生成m3u8文件,更多 ffmpeg 的使用可以參考我之前的文章ffmpeg 將影片轉GIF

不過用命令行有點麻煩而且對普通人有點難度,還好有人開發了M3U8批量下載器,複製上面的m3u8地址就能直接下載了,公眾號回復 m3u8 獲取軟體。

有了 ffmpeg 和之前我之前說的那些工具 那些你可能不知道的影片下載奇技淫巧 ,幾乎任何影片網站的影片都可以自由下載了(付費除外)。

Tags: