如果有想要更詳細的教學請至[這裡](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 ![image](https://hackmd.io/_uploads/S19BFdtH6.png) 之後看你是什麼系統,點進去 ![image](https://hackmd.io/_uploads/rktuFdYS6.png) 往下找到release builds,下載ffmpeg-release-full.7z ![image](https://hackmd.io/_uploads/H1xNstOYBT.png) 之後到在C槽Program Files裡建立新資料夾,取名為FFMPEG。將檔案解壓縮至剛才創立的FFMPEG資料夾 ![image](https://hackmd.io/_uploads/rymw5OYSp.png) 點選環境變數 → 系統變數 → 對Path點二下。 ![image](https://hackmd.io/_uploads/ryTnfG9B6.png) 點選新增環境變數,輸入路徑。 ``` 例如: 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 ![image](https://hackmd.io/_uploads/HynhneFHa.png) 二、找出indexm3u8 在瀏覽器按下f12,點擊NetWork標籤後輸入“.m3u8”進行過濾 ![image](https://hackmd.io/_uploads/SkaLtlFHa.png) 點擊一下index.m3u8查看url ![image](https://hackmd.io/_uploads/H1qctetB6.png) 然後複製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 ``` 然後就可以下載了 ![image](https://hackmd.io/_uploads/rk7MqlFST.png) # 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)安裝 ![image](https://hackmd.io/_uploads/rkhLsf9rT.png) 選一個下載 ![image](https://hackmd.io/_uploads/HytwoG9H6.png) 之後解壓縮到檔案夾,之後把ffmpeg也放到同個資料夾 ![image](https://hackmd.io/_uploads/SypnjM9H6.png) 之後打上指令就可以用了 ``` ytarchive [url] ``` ![image](https://hackmd.io/_uploads/SkJInfcBa.png)