簡介
此程式可以檢查Youtube頻道、播放清單,並備份影片至Azure Blob Storage
這是一支.NET
Core Console Application,並包裝為Linux Container
整合入我的「Youtube錄影伺服器
(Docker Compose)」,可搭配使用
琳的備忘手札 [Docker] Youtube直播錄影伺服器建置
/2020/11/docker-youtube-dl-auto-recording-live-dl.html
下載
參數
環境變數
-
AZURE_STORAGE_CONNECTION_STRING_VTUBER
: Azure Blob Storage的連接字串 CHANNELS_IN_ARRAY
: 欲下載的頻道網址,以陣列傳入MAX_DOWNLOAD
: (可選)每次執行的最大下載數量,預設為10FORMAT
: (可選)自訂欲下載的格式,預設為bestvideo+bestaudio/best
,請參考yt-dlp說明文件
Volume Binding
cookies.txt:/app/cookies.txt
若bind入,則會在下載時用做登入憑證
功能特性
影片下載
- 底層使用yt-dlp做下載 (別人fork youtube-dl出來擴充的專案)
- 使用archive.txt做記錄,不重覆下載影片
- 可傳入多個Youtube頻道,或是Youtube播放清單
- 下載非DASH影片
(DASH的解釋,簡單來說就是專給網路串流使用的技術格式,而這通常不是最好的影片) - 可透過環境變數設定下載格式
- 可限制每次執行的最大下載數量
- 限制下載兩日前的影片,避免下載到直播中和未轉檔完的影片
影片後處理
- 使用ffmpeg做後處理
- 內嵌封面縮圖
- 將影片描述寫入metadata
- 影片統一打包為mkv
上傳
- 上傳至Azure Blob Storage
- 影片上傳為封存存取層 (存取層的官方說明文件)
其它
- 這是.NET Core Console Application,打包為Linux Container
- 採用非同步設計
- 每載完一部影片就會進入後處理&上傳程序
- 多執行緒併行,最大化使用你的效能資源
- 每片上傳完成後立刻更新archive.txt,不會因中斷container而遺失進度
- 程式重啟後重傳處理
(程式啟動時會檢查是否有前次已下載,但未上傳完成的mkv暫存檔案,若有就直接重新上傳)
使用方式
-
在本機環境變數中儲存connection
string,命名為「AZURE_STORAGE_CONNECTION_STRING_VTUBER」
連接字串的說明詳見官方說明文件 docker run --env CHANNELS_IN_ARRAY="[\"https://www.youtube.com/channel/UCBC7vYFNQoGPupe5NxPG4Bw\", \"https://www.youtube.com/channel/UC7XCjKxBEct0uAukpQXNFPw\"]" --env AZURE_STORAGE_CONNECTION_STRING_VTUBER --env MAX_DOWNLOAD="10" jim60105/backup-dl
LICENSE
- Distribute main code with MIT License.
- Use Xabe.FFmpeg with License Agreement under non-commercial use.
- Use YoutubeDLSharp under BSD 3-Clause License.
- Use yt-dlp under Unlicensed License
沒有留言:
張貼留言
本站遭到垃圾留言(病毒連結)攻擊,開啟審核模式。留言後並不會馬上公開顯示。