使用 Go 編寫的基於命令列/終端的應用程序,使用 YouTube URL/ID 下載短片和影片。
注意:如果您正在尋找即用型工具,請檢查此儲存庫的固定問題。
YouTube 短片和影片下載。
能夠從不同的內容品質中進行選擇。
目前該項目有2個依賴項,
tview - 具有豐富的互動式小部件的終端 UI 庫 - 用 Golang 編寫。
FFmpeg - 領先的跨平台多媒體框架。它應該安裝在系統中或至少在專案的根目錄中有最新的靜態二進位。它更多的是外部運行時依賴。
貼上 YouTube Shorts/影片 ID 或 URL 時,應用程式會從 YouTube 的內部 API 取得元資料。
然後,根據視訊和音訊的品質選擇,應用程式透過向獲取的內容 URL 發出小型資料請求來下載 Shorts/視訊內容。
最後,如果 FFmpeg 存在,則單獨的視訊和音訊串流檔案將合併為單一輸出檔案。
安裝 Go 後,從專案根目錄輸入以下指令,
在 Linux/UNIX 上,
go build -o go_youtube_downloader ./cmd/go_youtube_downloader.go
在 Windows 上,
go build -o go_youtube_downloader.exe ./cmd/go_youtube_downloader.go
安裝 Go 後,複製/下載專案並從專案的根目錄輸入以下命令,
go run ./cmd/go_youtube_downloader.go
系統必須安裝 FFmpeg 或在專案根目錄中具有最新的靜態二進位文件,才能將下載的單獨視訊和音訊串流合併到單一檔案中。
由於 YouTube 的簽名加密,無法下載有年齡限制的影片。
YouTube 對每個傳入請求有頻寬限制,每個請求大約 10 MB。如果任何請求獲取的資料超過此大小限制,則進一步的請求將限制下載或連線可能會終止。因此,為了在下載資料並將其寫入輸出檔案時獲得更好的效能,它被分成更小的區塊以保持一致性。根據所選的品質和大小,下載時間會或多或少。
逆向工程 YouTube:重訪 - 解釋 YouTube 內部 API 的部落格。
YouTube-Internal-Clients - 一個發現隱藏的 YouTube API 用戶端的 python 腳本。只是一個研究計畫。
YT-DLP - 具有附加功能和修復的 youtube-dl 分支
Youtubei - 取得 Youtube 數據,例如影片、播放清單、頻道、影片資訊和評論、相關影片、下一個影片等等!
Golang 中的高效文件下載:綜合指南
Golang 下載檔案範例
新管道團隊
使用 os/exec 在 Go 中執行進階命令