需求
在網路上要下載影片時,遇到影片嵌入在網頁裡無法下載的問題。
使用過
yt-dlp "在網站中的影片嵌入連結" --referer "該網站的網址"
無效。
解法
前往放有目標影片的網站。
如果該影片是需要登入會員才可以取得的,必須要先登入好網站,讓瀏覽器和後續使用的下載工具能取得確認登入狀態的 Cookie,才能成功下載。
用 F12 開啟網頁開發工具後切換到
Network
的網路頁籤。點擊左上角的禁止圖示清除目前的網路紀錄。
重新整理網頁並觀察所有的網路請求,仔細觀察其中
.m3u8
的檔案請求。點擊重新整理後出現的第一個
.m3u8
的檔案請求,查看右邊的回應頁籤。這個檔案中記載著這支影片有哪些相關的檔案可以請求。
1 2 3 4 5 6 7 8 9 10 11
#EXTM3U #EXT-X-VERSION:3 #EXT-X-INDEPENDENT-SEGMENTS #EXT-X-STREAM-INF:BANDWIDTH=664768,AVERAGE-BANDWIDTH=298958,CODECS="avc1.64001f,mp4a.40.5",RESOLUTION=480x270,FRAME-RATE=15.000 c74f43166cf91fa68d78e5c446527f70_480x270.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2231434,AVERAGE-BANDWIDTH=539318,CODECS="avc1.64001f,mp4a.40.5",RESOLUTION=640x360,FRAME-RATE=30.000 c74f43166cf91fa68d78e5c446527f70_640x360.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=7555093,AVERAGE-BANDWIDTH=1729705,CODECS="avc1.640028,mp4a.40.5",RESOLUTION=1280x720,FRAME-RATE=30.000 c74f43166cf91fa68d78e5c446527f70_1280x720.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=11995904,AVERAGE-BANDWIDTH=4292701,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=30.000 c74f43166cf91fa68d78e5c446527f70_1920x1080.m3u8
依照需求複製其中一個
.m3u8
檔案的檔名,先貼上到記事本。1
c74f43166cf91fa68d78e5c446527f70_1920x1080.m3u8
回到原本記載影片檔名清單的
.m3u8
的檔案請求,查看右邊的請求頁籤中的請求網址。這個代表我們要去哪可以下載到影片,一般情況下清單的下載路徑跟影片的是相同的。
1
https://video.movie.com/147c0455/attachments/765cc9dd/hls/c74f43166cf91fa68d78e5c446527f70.m3u8?v=50d7
查看清單的請求網址,把清單的檔名替換為影片的檔名。
1
https://video.movie.com/147c0455/attachments/765cc9dd/hls/c74f43166cf91fa68d78e5c446527f70_1920x1080.m3u8
開啟終端機依照語法輸入指令。
語法:
1
yt-dlp "影片請求網址"
範例:
1
yt-dlp "https://video.movie.com/147c0455/attachments/765cc9dd/hls/c74f43166cf91fa68d78e5c446527f70_1920x1080.m3u8"