PTT評價

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

看板Vtuber標題[閒聊] 用yt-dlp下載影片的小心得&入門教學作者
otosaka
(學生會長我老婆啦)
時間推噓 4 推:4 噓:0 →: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 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.53.117 (臺灣)
PTT 網址

okbown04/26 20:27推yt-dl,簡單好用的軟體

記得用dlp不要用到youtube-dl哦,後者會被yt降速,而且從2021開始就沒再更新了

okakaisgood04/26 20:41感謝推 找時間試試看

※ 編輯: otosaka (114.25.53.117 臺灣), 04/27/2023 03:42:25

labbat04/27 10:09你的ffmpeg太舊了,新版可以將webm影印裝在mp4檔案內

我是用2023/2/27出的6.0版本,應該算最新的吧…?

※ 編輯: otosaka (114.25.53.117 臺灣), 04/27/2023 10:38:47

labbat04/27 20:50--merge-output-format mp4

欸不是吧,這參數我之前試好幾次常常沒載入成功欸,結果現在試都沒問題... 可能是之前資料夾內太多同名檔案才出錯..? 感謝告知,內文已修正。

※ 編輯: otosaka (114.25.53.117 臺灣), 04/28/2023 16:17:10

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

SSutan04/29 01:28nloader是選ffmpeg嗎?