NodeJS 工具,用於從 Twitch 頻道批量下載剪輯和 VOD(及其元資料)。
該工具可能可以下載某個頻道的所有剪輯(不僅是前 1000 個)。目前,該工具已在多個大頻道上進行了測試,似乎能夠獲得所有剪輯(來自hasanabi
的 433k 剪輯)。
為了最大限度地提高剪輯覆蓋範圍,該工具不允許 Twitch API 在單一時間段內報告超過 500 個剪輯。超出此點的分頁是不可靠的(上限約為 1k 剪輯,但變化很大)。為了解決此問題,超過 500 個剪輯的時段將分為 2 個,並且該過程將重新啟動,直到單個時段報告的剪輯少於 500 個。
這個項目並沒有被放棄,但同時由於我的時間限製而沒有被積極開發。
我意識到該專案的發展超出了其名稱的範圍:批量剪輯下載器,並認為我需要將所有內容重新組織成更易於管理的部分。我仍在弄清楚最終的攻擊計劃是什麼,目前我正在計劃:
目前這大部分已完成,但需要將使用者的內容與開發人員的內容分開。這也使我能夠專注於保持核心功能最新和經常測試,並在所有工具之間共享最重要的程式碼
目前,該工具只能從頻道下載所有內容,這不是最常見的用例(即使對我來說也是如此)。我計劃添加以下內容:下載單個 VOD/剪輯、從 URL 列表下載、過濾器、更好的 CLI 等。
由於大多數用戶害怕 CLI,我想使用 Electron 實作一個 GUI,使這個專案更易於存取和用戶友好。
該工具還能夠從 Twitch 下載整個 VOD 聊天內容,讓玩家可以重播整個聊天內容,就像播放仍可用的 VOD 一樣。
最終計劃是將核心功能包轉變為 Twitch 媒體相關備份的瑞士刀工具,允許任何開發人員輕鬆編寫自己的備份/下載工具,而不必擔心請求、多個連接、API 身份驗證、獲取 VOD .m3u8 播放列表等
youtube-dl
;.ts
轉碼為.mp4
;Client-ID
和Client Secret
(如下所述)- 存取 Twitch 的 API。 在 Twitch 控制台上註冊應用程序,按一下管理並複製客戶端 ID並產生客戶端金鑰。
在控制台上執行此命令:
npm install
透過 NPM 運行腳本(這是載入dotenv
所必需的):
npm run start
啟動時將透過終端機提示所需的所有資訊。
每次執行此腳本時,它都會詢問您通道名稱,然後確認是否要下載所有內容。
以下是每個變數的描述:
DEBUG
:列印一大堆訊息,正常使用時保持 false 即可;CLIENT_ID
:Twitch API 客戶端 ID;CLIENT_SECRET
:Twitch API 客戶端金鑰;BASEPATH
:檔案(剪輯、VOD、片段)應儲存的位置;YOUTUBE_DL_PATH
:youtube-dl 執行檔所在的位置;VIDEOS_PARALLEL_DOWNLOADS
:應同時下載多少個 VOD 片段。CLIPS_PARALLEL_DOWNLOADS
:應同時下載多少個剪輯;BIN_PATH
:儲存二進位檔案的路徑;DEFAULT_PERIOD_HOURS
:預設週期大小(以小時為單位)(對於大通道來說,12 是一個不錯的數字。降低此值以避免週期分割,增加此值以減少 API 計數並加速 URL 取得)。