[閒聊] 用yt-dlp下載影片的小心得&入門教學

看板Vtuber作者 (學生會長我老婆啦)時間1年前 (2023/04/26 19:35), 1年前編輯推噓4(402)
留言6則, 4人參與, 1年前最新討論串1/2 (看更多)
前言: 2021年可可會長畢業的時候,為了保存會限曾在板上爬過文,先謝謝當初發 #1WtIiBFG (Vtuber), #1XJnGX2A (C_Chat), #1UVBfuky (EZsoft)的大大, 以及巴哈的mashumeow大。(其實還有一大堆,但是過太久記不得了XD) 發這篇文的目的,主要是這些參考文章離現在有點久了,也剛好最近有空, 就寫個簡易入門的教學兼心得。 註:我沒在用twitch,因此這篇是針對youtube平台寫的。 懶人包: 1.下載yt-dlp 2.下載ffmpeg (2.5)下載別人做好的batch file並修改參數/檔案路徑 3.執行yt-dlp.exe,影片網址就能安心下載 詳細步驟: 1.先建立一個資料夾X,用來放yt-dlp、ffmpeg、做好的.bat檔。 2.到github的yt-dlp頁面下載最新版本的exe檔案 https://github.com/yt-dlp/yt-dlp/releases 隨便介紹幾個我有用到的參數: -F 列出所有格式。 -f--format 指定格式,範例 -f 137+140, -f "wv*+wa/w",沒改就是預設("bv*+ba/b" ) 所以除非改了config,不然-f best是不會用到,甚至不用輸入-f。 -o--output 設定輸出模板,能設定輸出路徑+檔名樣式,預設沒調整的話,檔名是 %(title)s [%(id)s].%(ext)s,輸出路徑是放yt-dlp.exe的資料夾,我自己是用 -o "檔案路徑\%(upload_date)s_%(title)s [%(id)s].%(ext)s", 這樣會在最前方加上時間比較好排序。 -i 無視下載過程出現的錯誤。 --ignore-config 不取用config,巴哈那篇有提config.txt設置,設置config的優點是下 次執行.exe能少輸些指令,但其實沒必要,建好batch file後連手動輸cmd跟指令都不用 ,貼上網址就行了,還能依不同用途設多個bat檔,比全域config更加靈活。 PS.就算沒建config.txt還是會有預設config,所以要打這指令。 --cookies-from-browser 抓瀏覽器cookies,直接用指令抓,不用像舊文還要找瀏覽器擴 充套件,省略載cookies.txt的步驟。使用時機:會限or播放列表。 --embed-metadata 下載metadata到檔案中,常見的metadata就標題、參與演出者、註解 、年份等等。 --embed-thumbnail 載入封面圖到檔案。 上面兩個embed的參數,都不建議輸出mkv metadata在mkv格式會有些東西跑掉,ex: https://imgur.com/jYmYCXI
thumbnail部份,我試的時候發現,輸出要是mp4格式才會成功, webm+webm/webm+m4a/mp4+webm會是mkv,封面圖會載入失敗,這時候就會用到下個參數。 --merge-output-format 指定輸出格式。用法:參數後+空格+格式(mp4/mkv等) 參數真的很多,我只懂一點點而已,想了解更詳細請到github上面去看,像-o跟-f這種常 用的參數有範例,應該能更好理解。 https://github.com/yt-dlp/yt-dlp 3.下載最新版本的ffmpeg 進入ffmpeg的網站 https://ffmpeg.org/download.html https://imgur.com/VZfMh3C
底下有兩個連結,我自己是用上面打勾的這個,會連到該作者架設的網站,然後到下方 release https://imgur.com/yjMURis
下載essential_build就可以,這用途應該不需要full多的東西。 另一個會連到github頁面,但東西有點亂我不知道該下載的檔案藏在哪,就不多加贅述, 想了解的可以自己點進去試。 下載完後解壓縮,應該會叫做ffmpeg-版本-essentials_builds,再打開裡面的bin資料 夾,把ffmpeg抓來丟到X裡面,其他的ffprobe和ffplay不會用到。 1~3步驟做完就能用了,到X上方的路徑框打cmd後,鍵入yt-dlp+指令碼+網址即可 範例 yt-dlp -F https://youtu.be/0-AZJj1ODbY
https://imgur.com/mHI94sa
(查看能下載的格式) yt-dlp --embed-metadata -embed-thumbnail --merge-output-format mp4 -o "檔案路徑\%(upload_date)s_%(title)s [%(id)s].%(ext)s" https://youtu.be/0-AZJj1ODbY
這樣就把影片+metadata+封面圖載下來了,很簡單吧。 要下載會限,加個--cookies-from-browser chrome就行了,chrome的位置可以換成你喜 歡的瀏覽器。 如果想省略每次開cmd/PowerShell再打一長串指令的動作,那就到第4步 4.利用batch file省略繁雜步驟 爬到的文章是用cmd或是PowerShell來執行yt-dlp.exe,之前在備份可可會限時也是用上 述 方式(那時候用的還是youtube-dl…被yt降速載超久= =) 後來換電腦剛好想到有batch file的方式可以用,我是不會寫啦,但我有查到別人寫好的 https://github.com/edinsuta/yt-dlp-batch 像yt-dlp_Update.bat這檔案,實際執行到.exe檔的只有yt-dlp -U一行指令而已,但滑鼠 點兩下就會直接執行,不用再輸入任何東西,很方便吧; yt-dlp_Basic.bat則是先把你輸入的網址設成URL這個變數,到底下yt-dlp … "%URL%"的 時候會自己跑前面的參數,同時調用URL,實際要做的只有點開貼上網址而已。 yt-dlp_Advanced.bat 這個有空建議好好欣賞。*但要小心網址輸入播放列表會把所有影 片 都抓成同一種格式(按個137+140每一部都是137+140了) * 製作方式 打開電腦的notepad,把人家寫好的字全部複製貼上,修改前方參數(參照步驟3範例,記 得 改在yt-dlp那行就好,然後原本的%要變成%%),把檔案存成.txt(要跟yt-dlp等程式一起 存 在資料夾X內),關掉notepad再用重新命名的方式把.txt改成.bat,要修改參數時對著檔 案 點右鍵編輯就行了。 做完後在桌面建立捷徑(不是把檔案剪下貼上到桌面),如果不想用捷徑就在最上面 SET /P的前或後加一行cd /d 檔案路徑就行了。之後要用就點開即可 我自己在用的是這樣(只擷參數部分) yt-dlp -i --ignore-config --embed-thumbnail --parse-metadata "description:(?s)(?P<meta_comment>.+)" --parse-metadata "release_year:(?s)(?P<meta_date>.+)" --embed-metadata --merge-output-format mp4 -o "檔案路徑\%%(upload_date)s_%%(title)s [%%(id)s].%%(ext)s" "%URL%" 大部分參數前面都介紹過,多了個--parse-metadata,這參數是加入特定的metadata, 操作方式比較複雜,我自己都不太懂就不細講,但我可以解釋為甚麼用 "description:(?s)(?P<meta_comment>.+)"跟"release_year:(?s)(?P<meta_date>.+)", 如果只是--embed-metadata,檔案內容的註解欄會是影片網址,年份還跑出43829,19235之 類的怪數字(如下圖),但-o後方的%%(ext)s已經把影片網址記錄下來了, 所以用"description:…"改成影片的概要欄、"release_year:…"把怪數字弄掉。 https://imgur.com/Ikc9pYS
沒輸入的會是這樣,有加的話會變成概要欄/空白。 這部份真的很複雜,我已經把這兩個部分試好了(以前抓的影片這兩塊都沒抓到QQ), 建議直接抄,其他部分別亂動,想知道更多的可以到github看, 底下還有提供範例(有範例還是很難懂就是了)。 https://github.com/yt-dlp/yt-dlp#modifying-metadata 我自己是分4個batch file(Basic,Basic+get cookies,Advanced,Update), 平常單純載影片+封面圖點個basic就好,要載一串or會限就+get cookies的版本, Advanced是想抓特定檔案格式才會用到,幾乎不會用到。 分好幾個batch file的好處是,可以依情況調整參數,不用每次都執行所有的參數, 能加快執行速度。當然也可以把指令都寫在一起, 每次執行就把-U, --get-cookies等等都跑一次,這就看個人習慣了。 這只是我個人對yt-dlp的小小心得,再更難的部份我也不懂了QQ 若有問題或內容寫錯的部分,請推文告訴我,感謝收看。 PS.沒意外的話,最近會有下篇寫類似yt-dlp的紀錄yt直播軟體(yt-dlp遇到直播好像容易 出錯?)。還有就是聊天室部分,也能透過指令備份,但檔案會蠻大的,而且載下來的會是 .json格式,沒辦法直接開啟,所以我個人不太建議,而且同時播放影片+聊天室的軟體也 不好找,我目前是有看到一個網頁啦,如果很多推文想知道,我會考慮放在下篇一起寫。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.53.117 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Vtuber/M.1682508953.A.E5E.html

04/26 20:27, 1年前 , 1F
推yt-dl,簡單好用的軟體
04/26 20:27, 1F
記得用dlp不要用到youtube-dl哦,後者會被yt降速,而且從2021開始就沒再更新了

04/26 20:41, 1年前 , 2F
感謝推 找時間試試看
04/26 20:41, 2F
※ 編輯: otosaka (114.25.53.117 臺灣), 04/27/2023 03:42:25

04/27 10:09, 1年前 , 3F
你的ffmpeg太舊了,新版可以將webm影印裝在mp4檔案內
04/27 10:09, 3F
我是用2023/2/27出的6.0版本,應該算最新的吧…? ※ 編輯: otosaka (114.25.53.117 臺灣), 04/27/2023 10:38:47

04/27 20:50, 1年前 , 4F
--merge-output-format mp4
04/27 20:50, 4F
欸不是吧,這參數我之前試好幾次常常沒載入成功欸,結果現在試都沒問題... 可能是之前資料夾內太多同名檔案才出錯..? 感謝告知,內文已修正。 ※ 編輯: otosaka (114.25.53.117 臺灣), 04/28/2023 16:17:10

04/29 01:28, 1年前 , 5F
好文推,另外yt-dlp我錄直播錄兩年了沒碰過錯誤耶,你dow
04/29 01:28, 5F

04/29 01:28, 1年前 , 6F
nloader是選ffmpeg嗎?
04/29 01:28, 6F
文章代碼(AID): #1aIGoPvU (Vtuber)
文章代碼(AID): #1aIGoPvU (Vtuber)