如果有想要更詳細的教學請至[這裡](https://blog.maki0419.com/2022/01/youtube-download-ytdlp-ffmpeg.html)
# 安裝
作者[Github](https://github.com/yt-dlp/yt-dlp)
安裝yt-dlp和ffmpeg的套件
```
pip install yt-dlp ffmpeg
```
然後安裝ffmpeg(和上一步不一樣)
到[ffmpeg官網](https://ffmpeg.org/),點擊download

之後看你是什麼系統,點進去

往下找到release builds,下載ffmpeg-release-full.7z

之後到在C槽Program Files裡建立新資料夾,取名為FFMPEG。將檔案解壓縮至剛才創立的FFMPEG資料夾

點選環境變數 → 系統變數 → 對Path點二下。

點選新增環境變數,輸入路徑。
```
例如:
C:\Program Files\FFmpeg\bin
```
# 基本格式
yt-dlp格式
```
yt-dlp [參數1...參數2...參數3] "影片網址1" "影片網址2" "影片網址3"
```
常用參數 [全部參數請參考這裡](https://github.com/yt-dlp/yt-dlp#usage-and-options)
| 參數 | 用途 |
| -------- | -------- |
|-U|更新yt-dlp|
| -F | 列出所有影片格式 |
|-f|指定下載的影片格式|
|--cookies-from-browser 瀏覽器|帶入瀏覧器中的 cookie 下載|
|--embed-thumbnail |嵌入影片縮圖|
|--embed-metadata|嵌入影片描述|
|--write-thumbnail|另外下載影片縮圖|
|-o|調整輸出檔名和輸出位置|
|--merge-output-format mp4|合併下載並封裝為mp4格式|
|--live-from-start|直播由起始下載(不穩定可改用ytarchive)|
|--write-sub|加上CC彈幕|
|--sponsorblock-mark all|將所有的影片業配片段標記,並嵌入至下載影片的章節|
|--sponsorblock-remove all|所有的影片業配片段從下載的影片中刪除|
|--download-sections SECTIONS|指定下載的影片的特定部分|
|--download-sections "*hh:mm:ss-hh:mm:ss"|從某個時間到某個時間|
|--format|指定下載的影片格式|
## 範例
一般下載
```
yt-dlp -o %(title)s.%(ext)s [url]
//指定下載格式,有分音訊和影像檔案兩個都要下載,不然會沒有聲音或影像
yt-dlp -f 147+252 [url]
```
下載一個名為"A"的播放列表(list)的影片,並檔名以影片的名稱命名,下載位置在以列表名稱為名的資料夾下
```
yt-dlp -o "%(playlist)s/%(title)s.%(ext)s" "https://www.youtube.com/playlist?list=A"
```
## 特殊網站下載
詳細可以參考[issue](https://github.com/yt-dlp/yt-dlp/issues/7961)
示範網站:Zan-live
一、先取得Zan-Live的cookie([Get cookies.txt LOCALLY](https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc))
<h1 style="color:red">此 cookies file 包含了你的 Youtube 登入授權,務必要保管妥善</h1>
1.下載Get cookies.txt LOCALLY
2.開啟無痕檔案中要取得cookie的網站
3.匯出cookies.txt

二、找出indexm3u8
在瀏覽器按下f12,點擊NetWork標籤後輸入“.m3u8”進行過濾

點擊一下index.m3u8查看url

然後複製url,填入至cmd
```
yt-dlp -o %(title)s.%(ext)s --cookies cookie.txt --embed-thumbnail https://vodarc01-ca-02-4k.zan-live.com/5Op8ajgdxAk_ld4w9vD9zw_1628/index.m3u8
```
然後就可以下載了

# ffmpeg
## mp4 轉 mkv
mkv 可以封裝所有 mp4 能裝的格式,所以可以加上-c copy使之複製內容,不重新編碼。
反過來 mkv 轉 mp4 時可能不行,要看編碼格式。如果裝不進去就去掉 -c 參數讓它自動轉檔
```
ffmpeg -i in.mp4 -c copy out.mkv
```
## 加封面圖至 mkv
```
ffmpeg -i in.mkv -c copy -map 0 -dn -attach cover.png -metadata:s:t mimetype=image/png -metadata:s:t filename=cover.png out.mkv
```
## 加封面圖至 mp4
```
ffmpeg -i in.mp4 -i cover.png -map 1 -map 0 -c copy -disposition:0 attached_pic out.mp4
```
# Ytarchive
請先到[官網](https://github.com/Kethsar/ytarchive/releases)安裝

選一個下載

之後解壓縮到檔案夾,之後把ffmpeg也放到同個資料夾

之後打上指令就可以用了
```
ytarchive [url]
```
