為什麼這篇YouTube dl 無法下載鄉民發文收入到精華區:因為在YouTube dl 無法下載這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者x94fujo6 ()看板EZsoft標題[教學] youtube-dl win版文字介面 簡易...
文字介面對不懂英文的人可能比較難上手
做個簡易教學
這篇不會用到git流程
也不需要架python或其他語言環境
(會上面的請不要看這篇好嗎XD)
https://github.com/ytdl-org/youtube-dl
這是ytdl的git頁面
往下拉直接就是說明
要下載 點release
https://i.imgur.com/qoeehWn.png
![](https://cache.ptt.cc/c/https/i.imgur.com/qoeehWnl.png?e=1725181915&s=vsetIfMS1o3mR6w5WT9VVw)
最上面就是最新的版本
https://i.imgur.com/Goykg4T.png
![](https://cache.ptt.cc/c/https/i.imgur.com/Goykg4Tl.png?e=1725233983&s=Skzoc7sYvXC6vhig0vxEzg)
最常見就是突然無法下載,跳錯誤
(一些貼網址下載的釣魚(劃掉)網站也會很神奇的同步失效 ㄏㄏ)
當你發現無法下載,大概過一兩天有新版下指令更新就好了
你要穩定+更新快就是用ytdl
(ytdl不只能抓youtube 還能抓twitter、bili、p_rnhub等一大堆網站根本數不完)
因為git是全世界的人都可以共同維護
youtube一偷改甚麼,大概沒幾分鐘就會有人反應
(然後太多人洗版直接關issues→在修了不要吵辣XD)
(一些看vtuber的監控室(?)/自家保存(?)工具其實也是用ytdl,幾乎24小時都有人盯著)
大約1~2小時,很快就會有人寫好修復方法推上去
但因為要跑流程,不會馬上就release新版本
需要第一時間更新請自己學git流程
人家改好放上去,就自己下指令更新/自己修改編譯/直接用python跑
就不用等git那邊release
windwos懶人環境就是下載*.exe執行檔
https://i.imgur.com/Z1W6PyQ.png
![](https://cache.ptt.cc/c/https/i.imgur.com/Z1W6PyQl.png?e=1725173950&s=X0omk03HOMqFLiqGf7uFCw)
然後做一些設定後
打開cmd/powershell (就windows的文字介面)
輸入youtube-dl就可以直接調用
下載之後放到你好記的位置
例如C:\youtube-dl\youtube-dl.exe
(這是超懶人的爛例子,知道我在說啥就不要亂學)
win10
開始→右鍵→系統→(右上)系統資訊→(左上)進階系統設定
進階→環境變數
上面的使用者變數下
有個path(路徑)
點兩下 編輯
新增
輸入剛才放youtube-dl.exe的"資料夾路徑"
上面例子就是C:\youtube-dl
改好一路確定儲存
這樣設定之後
C:\youtube-dl這個資料夾下面所有的exe執行檔
都可以在任何地方打開cmd/powershell後直接調用
就跟內鍵的dos/powershell指令一樣
在任意資料夾(最好是你要放下載檔案的位置)下
按住shift+右鍵
會多一個在這裡開啟powershell
你現在可以用youtube-dl下載所有支援網站的影片了
指令很簡單
youtube-dl youtube影片/播放清單/使用者影片列表的網址
例如
youtube-dl https://www.youtube.com/watch?v=pIZHuwR6FKQ
這不是最好的,但是是最懶人的格式
[以下進階使用]
更多指令請看,全都寫在上面了
https://github.com/ytdl-org/youtube-dl
要說真的一篇說不完
google很方便,相信有寫得比我好的教學
沒有也沒關係,不懂英文沒啥好怕
現在chrome右鍵直接翻譯很方便
加減看也能懂個七八成
看不懂就直接試試看就懂了
ytdl
可以下載影像
可以下載聲音
可以下載縮圖(Thumbnail)
可以下載字幕(Subtitle)←要過濾出你要的不然會一大堆自動翻譯/多國語言全抓下來
可以下載串流
可以設定多個設定檔,下載不同網站時直接調用就不用花時間改指令
可以配合cookie/代理繞過各種魔法(?)
可以用批次檔/python/其他語言環境調用配合其他工具各種花式使用
etc...
youtube為了適應各種下載速度/硬體,自動減少流量使用/調整畫質
現在一個影片會有一大堆不同格式
用-F指令可以看有甚麼格式(注意大小寫有差)
這指令也可以用來測試ytdl支不支援這網站
支援的話就會列出能下載的格式
youtube-dl -F https://www.youtube.com/watch?v=t2X3wlvoShg
![](https://cache.ptt.cc/c/https/i.imgur.com/qV6qAs7l.png?e=1725228711&s=xRhhD1cdF5Rc6uS4nIXbzg)
但如果是幾十分鐘甚至一小時以上,或是2K、4K
那個檔案大小會很歡樂
一般會改選vp9(影像)+opus(聲音)←這樣會包成mkv,因為mp4不支援
相比mp4+m4a檔案更小,品質還可能更好
指令用小寫的 -f 格式就可以選你想要的格式
以上面當範例
要抓最高畫質又想節省空間,指令就改成
youtube-dl -f 303+251 https://www.youtube.com/watch?v=pIZHuwR6FKQ
因為不一定所有影片都有你要的格式
想要自動選擇也可以寫好幾個條件選最好的
只要用/隔開就好,優先順序是由左到右
像這個例子
-f 243+251/243+140/134+140/bestvideo+bestaudio/best
會從最左邊條件開始嘗試抓
都抓不到就會抓預設的best
下載的檔案名稱也可以用-o自由設定
可以抓取的資料都在說明頁面的OUTPUT TEMPLATE下
https://github.com/ytdl-org/youtube-dl
這些主要是支援youtube但其他網站也是可以用的
只是可能其他網站並沒有這個資料,就抓不到
範例
youtube-dl -o "%(uploader)s\%(playlist)s_%(upload_date)s_%(title)s.%(ext)s"
https://www.youtube.com/watch?v=pIZHuwR6FKQ
這樣抓下來檔案會自己放到
アズールレーン資料夾下
檔名
NA_20200326_期間限定イベント「闇靄払う銀翼」 イメージPV.mp4
↑因為這是單影片網址所以抓不到播放清單名稱顯示NA
[好孩子不要學]
播放清單有可能影片很多
但ytdl為了避免流量太大youtube不爽
預設是一個抓完才會抓下一個
加速方法
用播放清單(playlist)指令+不下載影片只輸出資料
只提取影片的網址,再傳遞給多個ytdl/其他批量工具
就可以一次下載好幾個影片
不過這樣會損失播放清單名稱
不想損失播放清單名稱
ytdl可以指定下載清單裡的第幾個檔案
用個簡單迴圈
想同時下載幾個就執行幾個ytdl
好幾倍速
其實已經接近程式設計的領域了XD
指令跟工具一大堆
1萬個人可以有1萬種花式解法
純指令→批次檔/設定檔→python或其他語言→結合其他工具
[結合其他工具使用]
live(直播)是hls(串流)
https://i.imgur.com/EPU9njw.png
![](https://cache.ptt.cc/c/https/i.imgur.com/EPU9njwl.png?e=1725210832&s=i3b-jutVH57w8uXZjiNrRg)
相比在瀏覽器開網頁看
優點:
消耗的系統資源大幅降低
可以多線程降低網路不穩(不論你或up)的影響←可能增加延遲
減少延遲
可以一次開10幾個撥放器同時看
可以設定buffer(緩衝)←播放會更穩定,但緩衝越大延遲也越高
串流不只能看,也可以直接下載
(我會跟你說有時人家vtuber還在直播,翻譯群已經分工打軸+翻譯完了嗎)
但ytdl原意是下載影片,對直播的支援還是streamlink比較好
雖然沒有一定
下面Q&A有
Should I add --hls-prefer-native into my config?
有時ytdl比較好
有時ffmpeg比較好
有時streamlink比較好
甚至有時要cookie/代理繞過魔法(?)
ytdl也可以只提取出網址然後傳給其他下載工具如aria來下載
一堆毛
也是說不完
streamlink/ffmpeg其實就跟ytdl一樣,執行檔抓下來
環境變數設定一下,打個指令就可以用
要再進階一點但是又不想架程式環境
就是寫批次檔
ytdl/streamlink都可以寫設定檔(config)
不同網站不同設定直接載入
以上是很懶人不想架程式環境的方法
會用git很好
會用python更好
不需要用這麼陽春的方法
ytdl-dlg也是可以下指令
寫在options→extra就可以
建議勾選ignore youtube-dl config(忽略ytdl設定檔)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.176.49 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/EZsoft/M.1585232504.A.BBC.html
※ 編輯: x94fujo6 (114.33.176.49 臺灣), 03/26/2020 22:25:30