小屋創作

日誌2024-07-17 20:15

【密技】yt-dlp — 傳說中的辣個工具 Ver. 2.0 (2024年重新編寫第二版)

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


圖片來源:yt-dlp 的 Github 發布頁面


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


前言


2021 年的今天 我寫了【密技】Youtube-dl — 傳說中的辣個工具 這篇文章
為從沒用過 yt-dlp 的朋友們提供一個入門的墊腳石
在這段時間內文章被很多人注意到 也幫助了很多想認識這款工具的人
而第一版文章截至目前 也有將近10萬人氣 真的非常令人驚喜
對此我感到很開心 也很榮幸

3 年後 那篇文章雖然還算堪用 但也有很多應該被修正刪改的地方
於是我在原有的第一版文章上 對此進行了一定幅度的翻新與整修
包括內容、圖片呈現等要素為基礎 重新整理了第一版文章


不過由於我自己並不是真正懂程式設計的人
僅僅只是一位在因緣際會下 發現了這樣的工具 並寫了簡介提供給大眾的普通網友
縱使我已經盡我所能 但文章內也許還會有我未曾注意到的疏漏
如果文內出現了任何問題 都可以直接在文章底下留言 / 私訊 / 站內信聯絡我
我會對文章進行修正 還請各位多擔待  ⁽⁽ ◟(∗ ˊωˋ ∗)◞ ⁾⁾

與第一版一樣 文章定位為面向初心者 / 新手的保母級教學
第二版同樣也會為真的無法掌握 yt-dlp 使用方式的朋友們
提供含有圖形介面版本的 yt-dlp 簡介
讓即便是完全不懂指令操作的朋友們也能享受 yt-dlp

同時 也因為文章定位的關係 內容可能會有點長
但還是建議初次使用的朋友們耐心看完
避免錯過重要資訊!

好的 前言至此結束 接下來即為正文
如果有需要查找的資訊
可以按下 Ctrl + F 進行快速搜尋
方便你搜索需要的資料

就讓我們開始吧!


提示:
圖片內容可能會隨著時間推移 而不與實際狀況一致
但文字內容所述的操作方式基本上都是相同的
另外 如果圖片中的文字太小 可以把圖片點開來放大看


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


⠀⠀⠀⠀▍章節目錄


1. 前言
2. 章節目錄
3. 什麼是 youtube-dl / yt-dlp?
4. 下載與安裝
5. 常用指令介紹
6. config.txt 配置
7. 命令提示字元(CMD)實際操作環節
8. 常見問題
9. plugin 安裝 *08/26新增*
10. 苦手包(GUI 版本 yt-dlp 使用方式簡介)
11. 後話
⠀12. 備註


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


什麼是 youtube-dl / yt-dlp?


youtube-dl 是能為你下載 Youtube 與其他網站上影音內容的工具
最初發布時間為 2008 年 是一項歷史悠久的專案 其原始碼公開於 Github 上
但由於 youtube-dl 專案主要開發 / 維護者們的活躍程度降低
分支 yt-dlp 應運而生
而截至目前為止  yt-dlp 的更新與維護頻率要遠高於其他分支
是社區內最為活躍的影音下載工具之一

以此緣由為基礎
接下來的文章將會以 yt-dlp 作為主軸進行介紹與使用


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


下載與安裝


礙於文章篇幅限制和本人並不熟悉 macOS 與 Linux 系統
在此只提供 Windows 版本的操作方式


首先 我們需要兩樣東西:


⠀yt-dlp
⠀ffmpeg (yt-dlp 訂製版本)


yt-dlp 是用來執行各式任務的主體
ffmpeg 則是用以執行各種必要的後期處理任務(例如影片與音訊合併)
兩者都同樣不可或缺

至於這裡會說是 yt-dlp 訂製版本
是因為原始版本的 ffmpeg 在與 yt-dlp 共同運行時會出現一些問題
為此  yt-dlp 的團隊提供了修補過後的 ffmpeg 特殊版本
此訂製版本也同樣發布於 yt-dlp 的 Github 上


簡單的介紹在此結束
那麼就來下載他們吧!

首先 我們進到 yt-dlp 的 Releases 頁面:
https://github.com/yt-dlp/yt-dlp/releases

在最上方 我們能看到有標註 Latest 的項目
(Latest 的意思為最新發布 請優先下載標註為 Latest 的項目)

尋找名為 yt-dlp.exe 的選項 並下載他到你的桌面

圖片來源:自製


再來則是需要 ffmpeg(yt-dlp 訂製版本):
https://github.com/yt-dlp/FFmpeg-Builds/releases

同樣看到有標註 Latest 的項目
如果你的電腦是 64 位元
那就下載 ffmpeg-master-latest-win64-gpl.zip
如果你的電腦是 32 位元
那就下載 ffmpeg-master-latest-win32-gpl.zip
同樣 也將他下載到你的桌面

圖片來源:自製


下一步
在你的桌面新建一個資料夾 取名為 yt-dlp
yt-dlp.exe 擺進去

ffmpeg-master-latest-win(32/64)-gpl.zip 則需要解壓縮過後把整個資料夾一起放進去
並把 ffmpeg-master-latest-win(32/64)-gpl 資料夾改名為 ffmpeg

圖片來源:自製


這個 yt-dlp 資料夾擺哪裡都可以
你可以就這樣放在桌面 或是移到其他磁碟 都沒問題
但是有個前提 擺放 yt-dlp 資料夾的路徑裡不能包含任何中文
否則有機會報錯

決定好你要把 yt-dlp 資料夾放在哪裡後
我們要把這個資料夾加入環境變數裡 方便日後快速執行 yt-dlp:

1. 按下鍵盤上的 Win + S
2. 搜尋 path (編輯系統環境變數)
3. 右下角環境變數選項
4. 下方系統變數欄位 稍微往下滑 找到 Path 這個變數 點兩下進入編輯環境變數視窗
5. 右側選擇新增 並加入 yt-dlp資料夾的路徑
6. 最後 在這些視窗一路按確定把他們關掉

一定要按確定 不能直接按右上角 X  否則剛剛做的都不會生效!

圖片來源:自製


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


常用指令介紹


執行操作時我們會需要用到指令
yt-dlp 可以做的事很多 所以指令也很多
不過我們沒有必要知道全部指令的使用方式 只需要知道常用的就好
在這裡 我會幫你們列出最常用 & 各位可能會有興趣的指令
協助接下來 config.txt 配置與 CMD 實際操作環節章節的進行

執行 yt-dlp 時的語法 應該大致上呈現如下列格式:
yt-dlp [OPTIONS] URL
範例:yt-dlp -f 614+140 https://youtu.be/dQw4w9WgXcQ

yt-dlp
用於呼叫 yt-dlp 執行指令 如果要用 yt-dlp 就一定要在指令最前端加入此前綴
如果缺少此前綴  CMD 會報 "不是內部或外部命令、可執行的程式或批次檔。"

-F
列出指定影片所有可供下載的格式與格式代碼

-f [FORMAT]
指定格式代碼

--audio-format [FORMAT]
指定音訊格式 目前支援 mp3 / m4a / aac / opus / wav / flac / alac / vorbis

--recode-video [FORMAT]
指定影片格式 目前支援 mp4 / flv / ogg / webm / mkv / avi

--download-sections [*TIME~TIME]
下載影片中的指定片段
例如我想下載影片內 1 分鐘到 1 分半的內容
那就是 --download-sections [*1:00~1:30]

--embed-metadata
嵌入媒體詳細資訊至檔案中

--embed-subs
嵌入字幕至影片中 僅適用於 mp4 / webm / mkv

--concurrent-fragments [N]
並行下載 m3u8 / mpd 影片
如不添加此指令 預設為不分割

--cookies-from-browser [BROWSER]
獲取指定瀏覽器的 cookies
目前支援 chrome / chromium / brave / edge / firefox / opera / safari / Vivaldi / whale
(通常用於下載會員限定影片)

--ignore-config
不使用 config

--version
查看當前 yt-dlp 版本

-U
更新 yt-dlp

--output '[PATH]'
指定檔案輸出路徑
如不添加此指令 預設輸出路徑為 C:\Users\[USER NAME]


以上僅列出一小部分指令
yt-dlp 還有非常多好用的指令 但礙於篇幅限制 這裡僅列出較常用的指令
如果你想找查閱更多指令 可以參閱以下連結:

英文:https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#usage-and-options

中文:https://blog.csdn.net/z_y_z_l/article/details/121015231


英文的是最齊全的
中文的雖然有些資訊沒有打上 但也足夠我們使用了


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


config.txt 配置


config.txt 為全域配置文件
能讓你以預先寫好的指令執行默認配置進行下載
這樣某些常用指令 就不用每次操作都重打一次

我們來到 C:\Users\[USER NAME]\AppData\Roaming
如果沒辦法找到 AppData 資料夾 請開啟顯示隱藏檔案 同時也建議一併開啟顯示副檔名 方便日後進行操作
開啟顯示隱藏檔案與顯示副檔名的方式網路上都有介紹 這裡就不多做贅述

接著 我們要在 Roaming 資料夾內
新增一個資料夾 並改名為 yt-dlp
並在這個 yt-dlp 資料夾內新增一個文字文件 取名為 config

圖片來源:自製


config.txt 裡你想加什麼指令就加什麼
只要是你會常用到的都可以擺進來

在這裡 我強烈建議各位加上:
--output '[PATH]\%(title)s.%(ext)s'

這項指令能夠指定你希望把影片下載到的預設資料夾內 並刪除多餘的媒體 ID
例如 我想要把影片下載到桌面
那麼指令就應該呈現如下:
--output 'C:\Users\[USER NAME]\Desktop\%(title)s.%(ext)s'

中間 [USER NAME] 要輸入你的本機帳戶名稱
以我來舉例 像我的本機帳戶名稱叫 K
那麼我就應該這樣寫:
--output 'C:\Users\K\Desktop\%(title)s.%(ext)s'


另外 有一些我覺得還不錯的指令 也推薦各位一併加入 用來最佳化下載體驗
直接複製貼上進 config.txt 裡即可

--force-ipv4
--concurrent-fragments 8
--part
--continue
--throttled-rate 200K
--retries 10

圖片來源:自製


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


命令提示字元(CMD)實際操作環節


指令可以各種方式呈現
添加不同的指令會對下載結果產生不同的影響

在這裡 我們就把目標放在多數人最常用的 "下載包含音訊的影片" 為例
並用 Rick Astley - Never Gonna Give You Up (Official Music Video) 進行示範:

開始上按下右鍵 即可找到終端機選項 點選並開啟 CMD

圖片來源:自製


首先 我們要確定想要的影片有哪些格式可供下載
預先複製好你想要下載的影片的網址
並在 CMD 中輸入:
yt-dlp -F https://youtu.be/dQw4w9WgXcQ

按下 Enter 後 我們能看到非常多選項
黃色字標題綠色字格式代碼、白與灰色字為細項資訊
同時 我們能看到音訊與影片是分開來的

圖片來源:自製


接著 如果現在我想要下載 1080p 的 mp4
我們就可以選擇 614
同時我希望影片帶有聲音
所以我們也要選擇 140

最後 我們得出應該要 614 和 140 一起下載
才會有包含音訊的 1080p 影片
那麼呈現出來的結果就是:
yt-dlp -f 614+140 https://youtu.be/dQw4w9WgXcQ
按下 Enter 後 他就會開始下載

完成後 我們就能在一開始指定的檔案存放路徑裡找到我們的影片
像是我剛剛把檔案存放路徑放在桌面
那麼下載出來的影片就會出現在桌面了!

圖片來源:自製


至此 我相信各位已經學會 yt-dlp 的基礎操作了
當然 我們也可以更進階一點的添加其他指令去做變化
就像前面所說的 添加不同指令會對結果產生不同影響
更多有趣的指令就交由大家親自去嘗試了

另外 我前面有提到過 yt-dlp 也可以用來下載其他網站內的影音內容
同樣也是用上述的方法進行下載
多數時候都是能成功的 但某些網站可能比較沒那麼好抓到檔案
又或者是用特殊的方式直接不讓我們抓 這個就只能多試幾次才會知道了


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


常見問題


操作 yt-dlp 時 難免會遇上 CMD 報錯
在這裡我列出幾項我自己在使用 yt-dlp 時曾經出現的問題
還有我之前寫的第一版介紹文底下眾多網友們遇到過的問題
整理出來提供給各位一個解方
當然 如果你發生的狀況沒有出現在下述狀況之中
你可以在留言區留下你遇到的困難、執行的指令與 CMD 報出的錯誤資訊
我會盡可能的幫你尋找答案

Q1:CMD 只顯示了幾行錯誤資訊就不動了
A1:檢查你的指令 看有沒有打錯字 或是格式錯誤的地方
要特別注意你的空格有沒有多空或少空

Q2:下載到一半 CMD 突然不動了
A2:關閉 CMD 重新操作看看
或是嘗試改用系統管理員的 CMD

Q3:下載到一半 檔案管理員卡住
A3:把檢視方式改為清單 或是在不開啟檔案管理員的狀態下進行下載

Q4:檔案管理員卡住之後 我沒辦法操作裡面的內容
A4:到工作管理員(快捷鍵:Ctrl + Shift + Esc) 把 Windows 檔案總管重新啟動

Q5:我手賤 不小心把 Windows 檔案總管結束工作了 現在電腦畫面完全是黑的 QQ
A5:去重啟電腦吧 可憐蟲 (´・ω・`)

Q6:檔案沒下載成功 而且最後顯示了 "Http error 403: Forbidden"
A6:添加指令 --force-ipv4

Q7:檔案沒下載成功 而且最後顯示了 "unexpected status code: 404"
A7:重新下載一次就好

Q8:不能下載被標註為年齡限制的影片
A8:如果你的 Youtube 帳戶有達到指定年齡
那麼可以添加 --cookies-from-browser 這條指令重新進行下載

Q9:下載速度突然減慢到只剩 KiB/s
A9:這是 YouTube 的服務政策所導致 但還是可以解決
添加指令 --throttled-rate 200K
這項指令能夠限制最低下載速度(以位元率/秒計算)
在下載速度低於指定速度時 會自動重新下載檔案

Q10:我的 IP 位置在歐盟地區 有絕大多數影片不允許我下載
A10:你是歐盟政策的受害者 建議在開著 VPN 的環境下進行操作

Q11:我嘗試嵌入影片縮圖做為檔案封面 但卻顯示失敗
A11:重新下載即可

Q12:音訊檔案嵌入影片縮圖 並用播放程式開啟後 封面變成上半部是黑色 下半部是影片縮圖這樣的狀況了 有辦法讓他美觀一點嗎?
A12:添加指令

--ppa "EmbedThumbnail+ffmpeg_o:-c:v mjpeg -vf crop=\"'if(gt(ih,iw),iw,ih)':'if(gt(iw,ih),ih,iw)'\""

這串指令會自動把影片封面裁切正中間的部分做為封面 裁切的長寬比是 1:1
能夠很好的解決美觀上的問題

Q13:下載出來的東西只有 part 檔案
A13:重新下載即可 或是可以添加 --no-part 指令

Q14:我想要取消下載
A14:把 CMD 直接關掉即可
但沒下載完全的檔案會殘留著 記得到下載路徑裡把他刪掉

Q15:config 裡的指令能不能換行寫
A15:可以
順帶一提 如果你希望在 config 裡加上註解
可以在你想註解的文字前面加上 ## 前綴
這樣 yt-dlp 在執行時會略過被標註為 ## 的文字
但即便是註解也仍然不能包含中文 不然會報錯

Q16:我的 ffmpeg 沒有生效
A16:把 ffmpeg.exe 拉出來與 yt-dlp.exe 一起放
或是把 /yt-dlp/ffmpeg/bin 路徑也加入進 path 裡

Q17:下載出來的影片開不了
A17:可能是下載途中有一部分資料遺失 重新下載看看
如果檔案沒有問題 那有可能是播放器出了狀況
換成用 VLC 或是 PotPlayer 試試看

Q18:下載直播影片會遺失部分片段 而不是整個直播的影片檔案
A18:添加指令 --live-from-start 與 --no-part

Q19:超過 2 小時的影片下載出來只剩下 1:59:59
A19:Youtube 處理超過 2 小時的新上傳影片會需要一點時間
建議等數小時至數天後再重新嘗試下載

Q20:顯示了錯誤代碼 'cp950' codec can't decode byte 0xe9 in position 3: illegal multibyte sequence 後就沒動作了
A20:把擺放 yt-dlp 的路徑與 config 文件裡的中文去除

Q21:可以改用 batch file 執行這些任務嗎?
A21:當然可以  batch file 的彈性更高 也是很棒的選擇
但基於文章定位 所以我在這裡是挑比較簡單好編寫的 config 做介紹
如果有這樣的進階需求 可以參閱 PTT 的這篇文章
裡面有介紹 batch file 該如何配置 我這裡就不多贅述


⫺  ⫺  ⫺  ⫺                      


plugin 安裝


yt-dlp 也是能裝 plugin 的
而其中有一個 ChromeCookieUnlock 的 plugin
我很推薦會用到 --cookies-from-browser 指令的 chromium 核心瀏覽器用戶使用
像我自己平時用 Brave 瀏覽器 就可以裝這個

當然也還有其他 plugin  你可以在以下連結找到更多
https://github.com/yt-dlp/yt-dlp/wiki/Plugins


這裡就用 ChromeCookieUnlock 做示範 其他 plugin 的安裝方式應該都大同小異
https://github.com/seproDev/yt-dlp-ChromeCookieUnlock

進來後 你可以看看側邊 Releases 有沒有幫你打包好的壓縮檔
沒有的話也沒關係 上方 Code 選單點一下後也會出現一個 Download ZIP 選項

圖片來源:自製


接著 到你擺 config 文件的資料夾
新增一個 plugins 資料夾
再新增一個資料夾 取名隨意 你看得懂就好 但建議只用英文
最後 把 zip 內的檔案解壓縮到裡面

路徑大致上呈現
plugins/(取個你看的懂的名子的資料夾)/(你下載的 zip 解壓縮放到這裡)

這樣即可 裡面的東西基本上只要保留 yt_dlp_plugins 資料夾就好
其他檔案可刪可不刪 除非他的 README 頁面裡有特別要求

圖片來源:自製


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


苦手包(GUI 版本 yt-dlp 使用方式簡介)


當然 我知道大家會因為各種原因而無法或是不想使用 CMD
這裡我也提供了對電腦小白更友好的方案
接下來要介紹的是帶有使用者圖形介面的 yt-dlp

網路上有非常多種下載器
而這裡 我選用的是 StefanLobbenmeier 寫的 Open Video Downloader (youtube-dl-gui) 分支
這一款的介面簡單易懂 非常好操作 個人認為比較適合電腦小白們

圖片來源:StefanLobbenmeier - Open Video Downloader (youtube-dl-gui) 的 Github 發布頁面


在第一版文章中我也是介紹 Open Video Downloader (youtube-dl-gui)  那時還是介紹原始版本
原始版本是由 jely2002 所寫的 但原版已經停止更新 存在許多 bug
StefanLobbenmeier 重新處理了這項專案 現在還有在持續維護
是目前 Open Video Downloader (youtube-dl-gui) 裡星數最高的分支

首先 我們進來 Open Video Downloader 的 Releases 頁面:
https://github.com/StefanLobbenmeier/youtube-dl-gui/releases

找到標註為 Latest 的項目 並在下方 我們能看到
Open-Video-Downloader-Setup-X.X.X.exe
Open-Video-Downloader-X.X.X.exe

圖片來源:自製


含有 Setup 字元的項目為安裝檔
沒有的為便攜版本
兩者皆可使用 功能也都一樣 依照自己的喜好進行挑選即可

安裝檔的安裝方式這裡就不贅述 和其他應用程式的安裝方式都一樣
至於便攜版本點開就能用了 不過執行時會多出一個資料夾
裡面會擺放執行工作時必要的檔案與文件 請不要將他刪除

接著我們把他開啟
點開後會是全英文的介面
這裡我提供了主介面的翻譯與簡介給各位參考
同時也附上原作者製作的示範 gif

圖片來源:自製


圖片來源:StefanLobbenmeier - Open Video Downloader (youtube-dl-gui) 的 Github 發布頁面


另外 設定裡的選項我看過了
沒有必須要調整的設定 以預設模式進行使用即可

如果你有其他問題或需求 一樣可以在留言區提出


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


後話


這篇介紹文雖然是以前一篇為模板進行修整 但還是花了好多時間
前前後後共有 5000 多字 費了很多心力 敲鍵盤敲到肩膀爛掉 ( ´•̥̥̥ω•̥̥̥` )
不過我相信這是值得的 畢竟 yt-dlp 真的是很棒的工具
值得讓更多人知道這小巧可愛但又強大無比的實用程式

而如果有任何操作上的問題 或是文章內有錯誤之處
都可以在底下留言處提出 我都會一一回應!
(有時後可能要一小段時間我才會回覆
畢竟我平時也有很多自己的事要忙 / 為你查找解決方法 還請多擔待)

此篇文章到這裡就算是結束了
謝謝你願意看到最後

如果你覺得這篇文章對你有幫助
不妨按下喜歡、收藏!

最後 再次感謝各位的閱覽
希望這篇文章能讓你有所收穫!


⠀⠀⠀⫺  ⫺  ⫺  ⫺                      


備註


yt-dlp、Open Video Downloader (youtube-dl-gui) 與此文章內提到的任何應用程式、網頁、音樂版權等皆非我所有
此篇文章僅做為介紹用途 無任何營利行為

另外
如有需要轉發此篇文章的任何內容(文字、圖像等) 也還請附上來源
此篇文章網址:https://home.gamer.com.tw/creationDetail.php?sn=5969214

誠摯感謝各位





圖文作者:mashumeow
文章最後編輯時間:2024 / 08 / 26

45

22

LINE 分享

相關創作

開箱|【Targus 泰格斯】Terra 15-16 吋環保電腦後背包(TBB649)

[模型工具分享] - 游標卡尺~機械製圖與模型圈的好朋友!!~~

【密技】CyberPower PowerPanel Email 電力事件自動通知設定

留言

開啟 APP

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

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