小屋創作

日誌2021-07-17 20:11

【密技】Youtube-dl — 傳說中的辣個工具

作者:這種要求我還真沒見過

-前言-

youtube-dl

沒錯 傳說中的辣個工具

想用但卻不知道該怎麼用?

沒問題!現在就讓我手把手教你該如何使用youtube-dl吧!

--------------------------------------------------

這篇文章會以下面11個類別來讓各位更好理解youtube-dl該如何使用

  1. 前言
  2. 關於youtube-dl
  3. 安裝環境
  4. 指令簡介
  5. config配置
  6. cmd實際操作
  7. 常見問題
  8. 苦手包
  9. Linux作業系統使用教學 (由巴友 雪糕♪ james10949 提供)
  10. 後話
  11. 備註

順帶一提 如果覺得文章圖片看不清楚的話 點開來看就行了



-關於youtube-dl-


youtube-dl是一項開源專案,它可存取上百種影音串流平台的內容
而它是使用Python做為開發基礎的,讓它得以在各式平台上做使用
也同時正因為開源,所以衍生出了以下幾款不同樣式的youtube-dl

  1. youtube-dl
  2. youtube-dlc
  3. yt-dlp
  4. youtube-dl-gui

如上所示 常見的有4種
前3項並不含使用者介面 需要用cmd做為窗口執行操作
而最後1項則有

我目前使用的只有yt-dlp
所以全篇文章會以yt-dlp做為主軸介紹
但苦手包也會附上youtube-dl-gui的使用方法
方便真的看不懂的這文到底在供三小的電腦苦手們也能開心使用
(但還是建議使用yt-dlp 畢竟彈性空間較大 能使用的東西也較多)

至於為何不用本家 以及這4種版本的目前狀況
你可以在常見問題裡找到解答



-安裝環境-


由於我並不熟悉macOS和Linux系統 在此只提Windows的操作方式


好 這裡我們會需要用到2樣工具

  1. yt-dlp
  2. ffmpeg

首先是yt-dlp
點我進ytdlp下載頁面

點擊yt-dlp.exe的這個選項 把它載下來就好

載下來之後是個小巧可愛的exe檔
不用雙擊啟動它 把它放在一個你喜歡的位置即可


第二項是 ffmpeg
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])s


也就是說 你可以進一步運用同樣的邏輯
置換括弧中的[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有支援更多不同的指令
在Reddit上的 youtube-dl版 內你可以找到更多資訊
本家和yt-dlp的更新日誌皆在最上方

簡單來說
yt-dlp就是youtube-dl 2.0
更為強大且好用


Q3:使用它們,我的電腦會有任何危害嗎?

A:至少截至目前為止 我還沒聽說過youtube-dl們有任何負面消息
除了本家曾經被美國唱片公司因版權問題提告而慘遭Github下架之外

相關新聞報導:GitHub 全面封殺 YouTube-dl!7.2 萬顆星的熱門專案真的沒救了?


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:添加指令
--force-ipv4
試試看


Q7:檔案沒下載成功,而且最後顯示了 "unexpected status code: 404"

A:重新下載一次就好


Q8:不能下載年齡限制的影片

A:yt-dlp在2021.06.23版本的更新裡有修補這項錯誤 確認你有沒有安裝了最新的yt-dlp


Q9:下載速度突然減慢到只剩KiB了

A:這是YouTube的服務政策所導致 但還是可以解決
添加指令
--throttled-rate 100K

即可


Q10:我的IP位置在歐盟地區,有絕大多數影片不允許我載

A:你是歐盟新政策的受害者
有2種方式可以解決

1.開VPN(推薦)

2.用proxy繞到其他國家的IP嘗試下載
添加指令
--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:嘗試添加
--concurrent-fragments 8
這條指令看看
這條指令是用於增加線程數 應該會對你的下載速度有些許提升
當然 數字部分是可以更改成你想要的線程數
但我不確定最高支援到多少線程
順帶一提 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 提供資訊)
--cookies-from-browser




-苦手包-


我知道 我理解
有很多東西其實真的不是想要懂就能懂
但同時也不甘寂寞 很想要參一咖
對嗎?

別擔心 這裡有項很方便的工具 能讓你即便完全不了解也能輕鬆玩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實際操作章節部分的更多內容
更多實用的操作方式都整合在裡面了
有需要的就來看一下吧!~ ☆(ゝω●)

youtube-dl教學 — 進階cmd實際操作


文字最後編輯 2022/03/01
圖片最後編輯 2022/01/23

218

157

LINE 分享

相關創作

【NEW❗小水豚 動態表情貼5】✨好想捏捏+嚕嚕小水豚✨動態表情貼5 小水豚來啦~

防雷分隔線

【自用工具】Arcaea 單曲潛力值計算工具

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】