相信每個自媒體工作者都會遇過一個問題,就是影片遺失的問題,當你的網站越來越大,但是你的儲存空間跟不上你的產內容的速度,或是你的NAS突然全掛掉,但是你的頻道影片卻毫無備份檔案,這時候你想要下載影片備份,但是官方沒有提供下載備份方式,就必須上網找一些第三方下載的網站,但這些網站可能充斥著釣魚或是詐騙的Youtube影片下載網站,很容易不小心就將自己的隱私資料外洩,近期再找相關Youtube影片下載工具的時候,發現國外有人在討論這套,討論度也挺高的,經過RD爸的測試也的確蠻容易上手的,本筆記我會將我所測試的知識分享給大家參考,我也順便紀錄下來當作備忘錄,也希望藉由此次分享讓初學者能更快掌握如何將自己Youtube頻道的影片備份一份到本地的機器。
Table of Contents
介紹
yt-dlp 是一個免費的Open Source Command Line工具,可用於從各種網站下載視訊和音訊。它是 youtube-dl 的分支,並具有一些新的功能和錯誤修復,由於他的功能太多,本文只會針對常用的去做介紹其他指令建議可以參考官方的github說明=>此處。
套件安裝
yt-dlp 是一套垮平台的工具,安裝方式也相當多元,在此我先提供大家最常用的windows安裝方式,建議可以使用 Chocolatey 來介紹安裝及升級就好。
安裝
choco install yt-dlp -y
更新至nightly版本
# 由於yt-dlp 變動很快,若是遇到有問題發生,可嘗試更新到 nightly 版本,以排除錯誤
yt-dlp --update-to nightly
升級
choco upgrade yt-dlp -y
指令格式
下載之前先腦補一下yt-dlp的指令格式。由於yt-dlp必須透過終端機輸入指令下載,你要餵給它「影片網址」,並加上「參數」告訴yt-dlp要怎麼處理影片,最終他會下載至你輸入指令的所在目錄裡面。
yt-dlp指令格式如下:
yt-dlp [參數1...參數2...參數3] "影片網址1" "影片網址2" "影片網址3"
※Tip:yt-dlp至少得填入一個影片網址,其餘參數可以任隨組合,以方便你控制具體下載的內容。不過你也可以不填參數,只給網址,讓yt-dlp用預設值下載影片
下載範例
1.下載影片
yt-dlp <url>
2.下載影片如果原影片有字幕檔案會分拆一個同影片名的字幕檔案
yt-dlp --embed-subs <url>
3.下載影片並且擷取特定區間如前60秒
yt-dlp --downloader ffmpeg --downloader-args "-ss 00:00:00 -to 00:01:00" <url>
※Tip:如果你執行後發現無法擷取特定區間,他仍然是完整下載,並且出現以下錯誤,那應該是你少裝了ffmpeg套件,這時候不擔心還是用我們最常用的chocolatey指令安裝即可輕鬆安裝
ERROR: Postprocessing: ffmpeg not found. Please install or provide the path using --ffmpeg-location
3.1透過chocolatey安裝ffmpeg套件
choco install ffmpeg
#安裝畫面如下
PS D:\> choco install ffmpeg
Chocolatey v2.2.2
Installing the following packages:
ffmpeg
By installing, you accept licenses for the packages.
Progress: Downloading ffmpeg 7.0.0... 100%
ffmpeg v7.0.0 [Approved]
ffmpeg package files install completed. Performing other installation steps.
The package ffmpeg wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): yes
:
:
安裝細節省略
4.下載影片並指定畫質,如想要備份4k的影片
yt-dlp -f 'bestvideo[height=2160]+bestaudio/best[height=2160]' <url>
※Tip:如果你想要查詢該影片網址有提供哪些可用的格式,可使用–list-formats 找出後再利用以上指令即可下載對應的版本
yt-dlp --list-formats <url>
實際執行結果如下
5.下載影片並且指定檔名
yt-dlp -o "video.%(ext)s" <url>
6.僅下載字幕,不下載影片
yt-dlp --no-download --write-subs <url>
7.下載該影片 YouTube 自動產生的字幕
yt-dlp --no-download --write-auto-sub <url>
8.批次下載多個影片(可預先將相關應片url存入文字檔案)
官方說明:檔案中包含多個要下載的影片網址,每行為一個下載的URL,依序換行,假如我要下載三個不同網址的影片,則分三行輸入yt-dlp即可辨識,如果今天你臨時不要下載某些影片,可以使用 # 來當作註解,yt-dlp即會略過此影片路徑,urls.txt內容請參考下方範例
#<url>
<url>
#<url>
yt-dlp -a urls.txt
※Tip:如果下載時候遇到錯誤,則直接跳過繼續後續url下載 (在下載多部影片時滿好用的)
yt-dlp -i <url>
9.取得影片的詳細資訊
yt-dlp.exe -j <url> > meta.txt
10.僅下載特定語系字幕檔案,如中文字幕,不包含原始影片
yt-dlp --no-download --write-sub --write-auto-sub --sub-lang "zh-Hans.*" <url>
#下載英文字幕
yt-dlp --no-download --write-sub --write-auto-sub --sub-lang "en.*" <url>
11.下載影片並包含中文字幕
yt-dlp -v --embed-subs --write-auto-sub --sub-lang "zh-Hans.*" <url>
12.下載1080的影片
yt-dlp --output "%(title)s.%(ext)s" -f "bestvideo[height<=1080]+bestaudio[ext=m4a]" --embed-thumbnail --add-metadata --merge-output-format mp4 "<url>"
Reference
- yt-dlp指令完整說明文件請參閱 官方Github:連結
你好,我是RD爸,希望透過我的紀錄,可以帶給你一些新的想法~ 專注於各式3C產品的開箱評測、程式相關技術及理財筆記。
email ►[email protected]