-前言-
youtube-dl
沒錯 傳說中的辣個工具
想用但卻不知道該怎麼用?
沒問題!現在就讓我手把手教你該如何使用youtube-dl吧!
--------------------------------------------------
這篇文章會以下面11個類別來讓各位更好理解youtube-dl該如何使用
- 前言
- 關於youtube-dl
- 安裝環境
- 指令簡介
- config配置
- cmd實際操作
- 常見問題
- 苦手包
- Linux作業系統使用教學 (由巴友 雪糕♪ james10949 提供)
- 後話
- 備註
順帶一提 如果覺得文章圖片看不清楚的話 點開來看就行了
-關於youtube-dl-
youtube-dl是一項開源專案,它可存取上百種影音串流平台的內容
而它是使用Python做為開發基礎的,讓它得以在各式平台上做使用
也同時正因為開源,所以衍生出了以下幾款不同樣式的youtube-dl
- youtube-dl
- youtube-dlc
- yt-dlp
- youtube-dl-gui
如上所示 常見的有4種
前3項並不含使用者介面 需要用cmd做為窗口執行操作
而最後1項則有
我目前使用的只有yt-dlp
所以全篇文章會以yt-dlp做為主軸介紹
但苦手包也會附上youtube-dl-gui的使用方法
方便真的看不懂的這文到底在供三小的電腦苦手們也能開心使用
(但還是建議使用yt-dlp 畢竟彈性空間較大 能使用的東西也較多)
至於為何不用本家 以及這4種版本的目前狀況
你可以在常見問題裡找到解答
-安裝環境-
由於我並不熟悉macOS和Linux系統 在此只提供Windows的操作方式
好 這裡我們會需要用到2樣工具
首先是yt-dlp
點擊yt-dlp.exe的這個選項 把它載下來就好
載下來之後是個小巧可愛的exe檔
不用雙擊啟動它 把它放在一個你喜歡的位置即可
第二項是 ffmpeg
ffmpeg是用於音訊處理 嵌入圖片等各式各樣工作的工具
你會很需要用到它的
頁面側邊 你可以找到 release builds 這個類別
點擊他 再點選旁邊最上面的那一行就可以把ffmpeg載下來了
如附圖所示
載下來後是7z檔
把它全部解壓縮到跟yt-dlp同樣的位置
如果你覺得檔案夾名稱太落落長 可以更改一下名稱
像是底下附圖這樣
安裝環境目前就稍微告一段落 很簡單對吧
-指令簡介-
在開始下一步前 我想先簡單說明一下一些指令
當然 指令有爆幹多 我不可能現在全部列出來一個一個解釋
所以我只說我個人認為比較重要的
另外 有些指令我後面有打上[ ]且內有數字或大寫英文字
這代表著這是可以自由替換的 能設成你想要的選項
yt-dlp |
這是每次執行yt-dlp都會需要用到的前綴 用於呼叫並執行yt-dlp 沒有在指令前添加這項前綴的話 cmd只會報 "不是內部或外部命令、可執行的程式或批次檔。" 給你而已 沒有這傢伙就啥都幹不了 |
-F |
列出所有可供下載的格式及格式程式碼 |
-f [FORMAT] |
指定格式程式碼 |
--extract-audio |
將影片檔案轉換為純音訊檔案 |
--audio-format [FORMAT] |
指定音訊格式 目前支援 mp3 / m4a / opus / wav / aac / flac / vorbis |
--recode-video [FORMAT] |
指定影片格式 目前支援 mp4 / flv / ogg / webm / mkv / avi |
--embed-subs |
嵌入字幕至影片中 僅適用於mp4 / webm / mkv |
--concurrent-fragments [N] |
多線程下載 可以指定你想要的線程數 如不使用此指令 預設線程數為1 |
--version |
確認當前yt-dlp版本 |
--update |
更新yt-dlp |
--output 'X:\[PATH]' |
指定檔案輸出位置 如果不設定此指令的話 預設位置是 C:\Users\[NAME] |
當然 這僅僅是只佔了極小部分
更多指令你可以從這裡找到
-config設置-
既然我們已經大致了解指令可以用來幹嘛了
那可以開始下載我要的東西了嗎?
別急 在開始真正下載前 還有一件事要做
設置預設全域配置
這能讓你在編寫指令及往後使用yt-dlp時更加方便
--------------------------------------------------
首先 我們要自行建立一個資料夾和一個文字文件檔
我們要在這個路徑下設置名為 yt-dlp 的資料夾:
C:\Users\[USER]\AppData\Roaming
如果你找不到AppData這個項目 到資料夾選項開啟顯示隱藏檔案就行
網路上有教學 這裡就不多做贅述
建立好之後 我們點進來yt-dlp這個資料夾內
並新增一個名為config.txt的檔案
完成好後會像下圖所示
沒錯 就是這麼簡單
接著 點開你剛剛建立好的config.txt
貼上這個進config.txt裡:
--output '[PATH]\%(title)s.%(ext)s' |
接著 找個你喜歡的資料夾做為預設下載位置
選擇好你喜歡的資料夾後 把它的路徑複製起來
並取代上面--out put指令中[PATH]的部分
以我的路徑做為示範好了
最後出來的會類似像這樣:
--output 'C:\Users\jk\Desktop\music\%(title)s.%(ext)s' |
我知道你們想問後面那個奇怪的%(title)s.%(ext)s是什麼
簡單解釋一下
這是為了消除影片及音訊ID
假如說 我今天要下載一個影片
影片標題叫做 霸主樹屋廢墟開箱備份 (中文字幕)
那最終下載完後的影片 出來的主檔案名稱就會是 霸主樹屋廢墟開箱備份 (中文字幕)
如果沒有這些奇怪的東西呢?
那它最終下載出來的主檔案名就會叫做 霸主樹屋廢墟開箱備份 (中文字幕) [Uucqx-bV5TI]
另外 這東西很好理解 它其實就是長這樣
也就是說 你可以進一步運用同樣的邏輯
置換括弧中的[NAME]來做出更多變化
因應不同的情況置換不同的配置
更多指令你可以從這裡找到
-cmd實際操作-
由於指令可以由各種方式呈現
我這裡只簡單的解釋大致上的操作過程
超級簡單 不用擔心 就是複製貼上而已
首先 找到你想要下載的影片
那我們就拿這個
[AMV]刀劍神域:Alicization War of Underworld part 2 【ANIMA】By ReoNA (中日字幕) https://youtu.be/mimLMJO5o9o
來示範好了
--------------------------------------------------
打開你的cmd
直接輸入
yt-dlp -F https://youtu.be/mimLMJO5o9o |
並按Enter
我們可以得到如下圖所示的列表
你可以在這裡看到所有可以下載的格式
而且所有的影片資料都寫在上面了
選好你要的影片格式
往前看 你會看到在開頭 每個不同的格式都有各自的ID
也就是說 我們必須靠指定ID 讓yt-dlp下載我們想要的影片
我們就來載ID為22的720p影片好了
那麼該輸入些什麼?
很簡單
用 -f 這項指令來指定格式
示範如下
yt-dlp -f 22 https://youtu.be/mimLMJO5o9o |
如果你成功了 底下顯示的就會類似這樣
順帶一提
通常1080p以上品質的影片並不會自帶聲音
所以要額外多加下載音訊檔案
選定你想要的影片和音訊內容
在2者之間的ID加上 + 這個符號
示範如下
yt-dlp -f 303+251 https://youtu.be/mimLMJO5o9o |
如果你成功了 底下顯示的就會類似這樣
看吧 超簡單的
就是打幾個英文字然後剪剪貼貼
然後哇~~
你想要的東西就出來了
當然 這是最簡單的下載方式
如果你對品質或是效率有更高的要求
指令庫裡面有更多指令供你操作
-常見問題-
在這裡 我會把問題種類分為 "關於youtube-dl" 和 "操作yt-dlp上的問題"
解答一些常見且你可能會有疑問的大小事
--------------------------------------------------
關於youtube-dl
Q1:你在最一開始提到了4種不同的youtube-dl,它們各自不同的地方在哪裡?
A:youtube-dl是本家
youtube-dlc是暫停更新許久的版本
yt-dlp是目前社群裡最為活躍的版本
youtube-dl-gui則是含有使用者介面的youtube-dl 操作起來最為方便的版本
而這4種youtube-dl皆出自不同人所製
Q2:為什麼不選擇本家,而要選擇yt-dlp?
A:youtube-dl雖然是本家 但更新及修補錯誤的速度比不及yt-dlp
而且yt-dlp有支援更多不同的指令
本家和yt-dlp的更新日誌皆在最上方
簡單來說
yt-dlp就是youtube-dl 2.0
更為強大且好用
Q3:使用它們,我的電腦會有任何危害嗎?
A:至少截至目前為止 我還沒聽說過youtube-dl們有任何負面消息
除了本家曾經被美國唱片公司因版權問題提告而慘遭Github下架之外
Q4:要用yt-dlp的話,硬體規格至少要多高?
A:你的電腦能開cmd就可以用了
Q5:你說可以存取上百種影音串流平台的內容,該怎麼用?
A:不知道 我從來沒想過這個問題 至少現在還沒開始研究
Q6:中文指令庫跟原文指令庫有差嗎
A:有 其實差的還蠻多的
畢竟中文指令庫是挑本家那邊的資訊做翻譯 而且也很久沒更新了
原文指令庫那邊才有最新資訊
但說實在 中文指令庫裡的就已經很夠我們用了
Q7:可以的話,也能順便教一下macOS和Linux要怎麼操作嗎?
A:我沒有macOS和Linux系統的電腦 不確定實際上到底該怎麼做
如果有好心人願意提供自己的使用經驗的話 我會補上
Q8:嗚嗚...我真的看不懂到底要怎麼操作,可是我也好想用喔...
A:底下苦手包參考一下
--------------------------------------------------
操作yt-dlp上的問題
Q1:只顯示了幾行錯誤資訊就不動了?
A:檢查你的指令 看有沒有打錯字 或是格式錯誤的地方
要特別注意你的空格有沒有多空或少空
Q2:下載到一半,cmd突然不動了
A:嘗試改用系統管理員的cmd
Q3:下載到一半,檔案管理員卡住了
A:把檢視方式改為清單 不然就不要開著檔案管理員
Q4:檔案管理員卡住之後,我沒辦法操作裡面的內容
A:到工作管理員(快捷鍵:Ctrl+Shift+Esc)把Windows檔案總管重新啟動
Q5:我他媽的手賤 不小心把Windows檔案總管結束工作了 現在電腦畫面完全是黑的QQ
A:去重啟電腦 可憐啊 (´・ω・`)
Q6:檔案沒下載成功,而且最後顯示了 "Http error 403: Forbidden"
A:添加指令
試試看
Q7:檔案沒下載成功,而且最後顯示了 "unexpected status code: 404"
A:重新下載一次就好
Q8:不能下載年齡限制的影片
A:yt-dlp在2021.06.23版本的更新裡有修補這項錯誤 確認你有沒有安裝了最新的yt-dlp
Q9:下載速度突然減慢到只剩KiB了
A:這是YouTube的服務政策所導致 但還是可以解決
添加指令
即可
Q10:我的IP位置在歐盟地區,有絕大多數影片不允許我載
A:你是歐盟新政策的受害者
有2種方式可以解決
1.開VPN(推薦)
2.用proxy繞到其他國家的IP嘗試下載
添加指令
IP要填什麼 自己上網找
Q11:我嘗試嵌入影片縮圖做為檔案封面,但卻顯示失敗
A:重新下載即可
Q12:音訊檔案嵌入影片縮圖,並用撥放程式開啟後,封面變成上半部是黑色 下半部是影片縮圖這樣的狀況了
A:添加指令
--ppa "EmbedThumbnail+ffmpeg_o:-c:v mjpeg -vf crop=\"'if(gt(ih,iw),iw,ih)':'if(gt(iw,ih),ih,iw)'\"" |
即可這串指令會自動把影片封面裁切正中間的部分做為封面 裁切的長寬比是1:1
能夠很好的解決美觀上的問題
Q13:我希望下載速度再快一點
A:嘗試添加
這條指令看看
這條指令是用於增加線程數 應該會對你的下載速度有些許提升
當然 數字部分是可以更改成你想要的線程數
但我不確定最高支援到多少線程
順帶一提 yt-dlp的預設線程數是1
Q14:下載出來的東西只有part檔案
A:重新下載即可
Q15:yt-dlp很容易報錯,有沒有可以盡可能減少下載時出錯的指令
A:你可以添加以下幾項指令
--force-ipv4 --throttled-rate 100K --continue --retries --proxy [IP] (選填 依照個人需求決定 如果有開VPN則不用加此項) |
這些指令可以幫助你盡可能的減少報錯機會 並增加下載檔案時的流暢度
Q16:我想要取消下載
A:把cmd直接關掉即可
Q17:config裡的指令能不能換行寫,全部擠在一行很難看
A:可以
Q18:無論我打什麼指令,都只 會跳出 'yt-dlp' 不是內部或外部命令、可直行的程式或批次檔
A:把你擺yt-dlp的資料夾打開,在上方的資料夾路徑打cmd
用這個新跳出來的cmd重新試一次
Q19:我想下載會員限定影片,而且我已經有該頻道的會員了,要怎麼做?
A:添加這條指令 (感謝巴友 雪糕♪ james10949 提供資訊)
-苦手包-
我知道 我理解
有很多東西其實真的不是想要懂就能懂
但同時也不甘寂寞 很想要參一咖
對嗎?
別擔心 這裡有項很方便的工具 能讓你即便完全不了解也能輕鬆玩youtube-dl
沒錯 就是我們最偉大的youtube-dl-gui
趕快來看看吧 下載最新版本即可
這邊你可以選擇要下載需安裝版本或是免安裝版本 挑你喜歡的即可
注意尾綴
需安裝版本:Setup
免安裝版本:portable
好了之後就直接把它開啟吧
系統可能會把它擋下來
點擊其他資訊→仍要執行即可
好 讓我們來看看裡面長甚麼樣子...
沒錯 全部都是英文 還沒有置換語言的選項
什麼?你看不懂英文?
沒問題 讓我來翻譯給你看!
--------------------------------------------------
大致上就是如此
對了 記得先到左下角設定檔案儲存位置再開始使用喔
使用方式很簡單 就是把連結貼上 然後很直覺的這邊點點那邊點點 就可以了
如果遇到任何操作上的困難再來找我
-Linux作業系統使用教學-
此項目由巴友 雪糕♪ james10949 提供
環境:Ubuntu 20.04.3 LTS on Windows 10 x86_64
先建立兩個檔案(yt-dlp.conf和cookies.txt)在家目錄(應該都會用Linux…吧)
檔案說明:
yt-dlp.conf => Config檔
cookies.txt => 下載會限那些需要登入的影片用的
yt-dlp.conf配置如下[這裡面的是說明不要打進檔案裡]
--cookies '~/cookies.txt' [設定cookies檔案位置 cookies用途看上面的檔案說明區 如不需要必須拔掉這句]
-N 8 [多線程]
--write-thumbnail [下載預覽圖 webp格式]
-o '~/ClipResource/%(title)s.%(ext)s' [設定路徑]
-後話-
首先 先謝謝你花了大把時間看完這篇文章
小妹我感激涕零
其實老早就想研究一下怎麼使用這東西了
巴哈上也沒看到太多關於youtube-dl的文章
於是趁著之前被桶2周的機會
於是來好好研究一下這如此強大的神祕妙妙工具
順便寫個簡單的懶人包提供給各位
幹 那個gui繁中化就花了我8個小時...肩膀會爛掉...
其實這文章早在7月初的時候就寫好了 但窩一直沒發
所以圖片裡的東西可能多少會有落差 至於操作上應該不會差太多
最後
如果有任何錯誤或想補充的 都歡迎來跟我說一聲喔 謝謝各位!
-備註-
這裡擺了一些沒在內文提及的補充~
--------------------------------------------------
底下這些是巴友 雪糕♪ james10949 推薦使用的指令
有看到需要的就拿來用吧!
-
我這邊提供我的config檔給那些有需要的人
然後新的config檔位置放在"~/.config/yt-dlp/config"(這是整個檔案路徑)
--live-from-start #如果有開啟DVR的直播會從頭開始錄
--mark-watched #標記為已觀看(可選)
--yes-playlist #允許播放清單
--concurrent-fragments 16 #多線程(我設定16)
--retries "infinite" #無限重試次數
--hls-use-mpegts #允許邊下載邊看(通常不需要)
--output "~/yt-dlp/%(channel)s/%(playlist_title)s/%(title)s.%(ext)s" #下載位置格式(放在家目錄/yt-dlp資料夾/頻道名稱/撥放清單名稱/影片標題.你選的格式
--windows-filenames #使用windows檔案命名格式(純Linux不用這條)
--cookies-from-browser "firefox" #瀏覽器cookies(Ubuntu Desktop預設firefox wsl無法用 除非是wsl2灌瀏覽器)
--cookies '~/cookies.txt' #手動設定cookies(wsl或是純console用這比較方便)
--write-thumbnail #下載預覽圖
--quiet #安靜模式(console不會噴一堆咚咚)
--progress #進度條(搭配安靜模式很好用)
--sleep-interval 1 #下載多個影片至少等1秒(可以更久但最好別調短)
--max-sleep-interval 5 #下載多個影片最多等5秒(可以更久但最好別調短)
--merge-output-format "mkv" #輸出格式(我偏好mkv 可選格式在下方)
--embed-thumbnail #嵌入預覽圖(下載音樂超好用 可以省去專輯圖的部分)
--convert-thumbnails "png" #預覽圖格式(我偏好png 可選格式在下方)
--console-title #console的title顯示進度(搭配安靜模式很好用 ssh連入Linux下載超好用)
影片可選格式(輸入的格式如果是音檔就會變成下載聲音)
3gp / aac / flv / m4a / mp3 / mp4 / ogg / wav / webm
圖片可選格式
jpg / png / webp
--------------------------------------------------
除了文字教學之外
我也有額外再做一隻影片教學
主要是強化cmd實際操作章節部分的更多內容
更多實用的操作方式都整合在裡面了
有需要的就來看一下吧!~ ☆(ゝω●)
文字最後編輯 2022/03/01
圖片最後編輯 2022/01/23