[閒聊] 用yt-dlp下載影片的小心得&入門教學
前言:
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格式,沒辦法直接開啟,所以我個人不太建議,而且同時播放影片+聊天室的軟體也不好找,我目前是有看到一個網頁啦,如果很多推文想知道,我會考慮放在下篇一起寫。
--
推yt-dl,簡單好用的軟體
記得用dlp不要用到youtube-dl哦,後者會被yt降速,而且從2021開始就沒再更新了
感謝推 找時間試試看
你的ffmpeg太舊了,新版可以將webm影印裝在mp4檔案內
我是用2023/2/27出的6.0版本,應該算最新的吧…?
※ 編輯: otosaka (114.25.53.117 臺灣), 04/27/2023 10:38:47--merge-output-format mp4
欸不是吧,這參數我之前試好幾次常常沒載入成功欸,結果現在試都沒問題... 可能是之前資料夾內太多同名檔案才出錯..? 感謝告知,內文已修正。
※ 編輯: otosaka (114.25.53.117 臺灣), 04/28/2023 16:17:10好文推,另外yt-dlp我錄直播錄兩年了沒碰過錯誤耶,你dow
nloader是選ffmpeg嗎?
36
[閒聊] 自己做的vlive統整下載清單TWICE vlive youtube-dl下載清單(截至2021/09/18): youtube-dl下載處: ffmpeg下載處:31
[程式] Auto translator Unity機翻程式手機po文 建議使用全版閱讀 這個是適用於Unity的翻譯模組,他能夠將遊戲的UI、對話框等等都機翻成指定語言,而且可以選擇的翻譯來源很多,並且還能做到同時顯示原文和譯文,以及手動修改並記憶譯名等,不過是優點也是麻煩的是這個Mod開啟方式很多,所以要找對相對應的檔案 我以作者推薦的BeplnEx為例 首先先下載對應版本的BeplnEx28
[閒聊] 如何使用youtube-dl下載會限影片前言:剛剛翻了るる的頻道,目前還可以觀看會限影片 雖然不知道會開放到何時,總之整理了這篇教學文,給有需要或想超前部屬的人 個人電腦OS是Windows7,所以這篇教學文主要針對Windows環境 iOS和Linux系統網路上很多再自行Google了~ 基礎知識需求:至少用過"command line(命令列)"和知道指令"cd"是什麼意思13
[心得] LOL 改日文介面、日文語音 (10.16)如題 本次分享如何將臺服改成日文介面、日文語音的方法 本篇文章內容參考了巴哈這篇 【密技】最新版本非程式修改、圖文簡單方法更換全伺服器語音、介面,包含日韓服!!13
Re: [閒聊] 自己做的vlive統整下載清單TWICE vlive網址清單(截至2022/11/01): 下載程式yt-dlp下載處: 合併程式ffmpeg下載處: 批次下載命令1: 批次下載命令2:10
[心得] 使用 DepotDownloader 下載舊版本遊戲本篇教學,教大家如何使用 DepotDownloader 下載 Steam 上的舊版本遊戲。 起因是我想下載《Divinity: Original Sin - EE》的舊版語言檔 結果用 Steam 控制臺輸入指令卻怎樣都沒辦法下載成功。 最後終於找到了控制臺以外的下載方法,那就是利用 DepotDownloader 來下載 為了避免自己以後忘記如何操作,寫篇文章做記錄,也順便分享給大家。8
[Vtub] 如何下載會限影片簡介 因為會長即將到期,我拖到才去下載備份 板上有參考文章,但有遇到點問題 參照另一篇文章後,統合成自己的筆記,也讓有需要的人參考 網頁版5
Re: [討論] 亞太電信似乎開通IPv6 網路承接塵封已久的舊文: #1Rm0xgef (MobileComm) 關於 IPv6 Public IP 的部分, 參考網路幾篇文章:5
Re: [軟體] 影片大量轉檔程式更新一下前導腳本,現在搭配 ffmpeg 和 ffprobe 一起使用 下載腳本,解開檔案後放在 ~/Library/Scripts/ 下面即可 使用前先到官網 下載 mac 版本 ffmpeg 和 ffprobe 把兩個執行檔放在 /usr/local/bin/ 裡面.4
[軟體] 影片大量轉檔程式因為自己有影片大量轉檔的需求,主要是把收藏的影片容量變小 網路找了幾個轉檔軟體,要嘛太貴,要嘛介面用起來很麻煩. 就順手用 macOS 內建的 "Script Editor" 寫了個小工具來跑轉檔 有相同需求的人可自己拿去用