NodeJS-Tool zum Batch-Download von Clips und VODs (und deren Metadaten) von einem Twitch-Kanal.
Dieses Tool kann WAHRSCHEINLICH ALLE Clips eines Kanals herunterladen (nicht nur die Top 1000). Zu diesem Zeitpunkt wurde dieses Tool auf mehreren großen Kanälen getestet und scheint in der Lage zu sein, alle Clips (433.000 Clips von hasanabi
) abzurufen.
Um die Clip-Abdeckung zu maximieren, erlaubt dieses Tool der Twitch-API nicht, mehr als 500 Clips in einem einzigen Zeitraum zu melden. Die Paginierung über diesen Punkt hinaus ist unzuverlässig (begrenzt etwa 1.000 Clips, variiert aber stark). Um dieses Problem zu beheben, werden Zeiträume mit mehr als 500 Clips in zwei Teile geteilt und der Vorgang wird neu gestartet, bis ein einzelner Zeitraum weniger als 500 Clips meldet.
Dieses Projekt wird nicht aufgegeben, aber gleichzeitig wird es aus Zeitgründen nicht aktiv weiterentwickelt.
Mir wurde klar, dass das Projekt den Rahmen seines Namens sprengte: ein Batch-Clip-Downloader, und ich kam zu dem Schluss, dass ich alles in überschaubarere Teile umstrukturieren musste. Ich überlege immer noch, wie der endgültige Angriffsplan aussehen wird. Im Moment plane ich Folgendes:
Dies ist mittlerweile größtenteils geschehen, war aber notwendig, um Benutzerinhalte von Entwicklerinhalten fernzuhalten. Dadurch kann ich mich auch darauf konzentrieren, die Kernfunktionen auf dem neuesten Stand zu halten und regelmäßig zu testen und außerdem den wichtigsten Code zwischen allen Tools auszutauschen
Derzeit lädt dieses Tool ALLES nur von einem Kanal herunter, und dies ist nicht der häufigste Anwendungsfall (selbst für mich). Ich habe vor, Dinge hinzuzufügen wie: einzelnes VOD/Clip herunterladen, von einer URL-Liste herunterladen, Filter, eine bessere CLI usw.
Da die meisten Benutzer Angst vor der CLI haben, möchte ich mithilfe von Electron eine GUI implementieren, um dieses Projekt zugänglicher und benutzerfreundlicher zu machen.
Dieses Tool ist auch in der Lage, den gesamten VOD-Chat von Twitch herunterzuladen, sodass ein Spieler den gesamten Chat wiederholen kann, genau wie Sie es für VODs tun können, die noch verfügbar sind.
Der ultimative Plan besteht darin, das Kernfunktionspaket in ein Schweizer Messer unter den Tools für Backups im Zusammenhang mit Twitch-Medien zu verwandeln, sodass jeder Entwickler problemlos sein eigenes Backup-/Download-Tool schreiben kann, ohne sich um Anfragen, mehrere Verbindungen, API-Authentifizierung und das Abrufen von VOD kümmern zu müssen .m3u8-Wiedergabelisten usw
youtube-dl
verwendet;.ts
nach .mp4
verwendet;Client-ID
und Client Secret
(unten erklärt) – um auf die API von Twitch zuzugreifen. Registrieren Sie eine Anwendung auf der Twitch-Konsole, klicken Sie auf „Verwalten“ , kopieren Sie die Client-ID und generieren Sie ein Client-Geheimnis .
Führen Sie diesen Befehl auf Ihrer Konsole aus:
npm install
Führen Sie das Skript über NPM mit aus (dies ist erforderlich, um dotenv
zu laden):
npm run start
Alle benötigten Informationen werden beim Start über das Terminal abgefragt.
Jedes Mal, wenn Sie dieses Skript ausführen, werden Sie nach einem Kanalnamen gefragt und anschließend bestätigt, ob Sie alles herunterladen möchten.
Hier sind die Beschreibungen für jede Variable:
DEBUG
: Gibt eine verdammt große Menge an Informationen aus, halte sie für den normalen Gebrauch einfach falsch;CLIENT_ID
: Twitch-API-Client-ID;CLIENT_SECRET
: Twitch-API-Client-Geheimnis;BASEPATH
: wo Dateien (Clips, VODs, Fragmente) gespeichert werden sollen;YOUTUBE_DL_PATH
: Wo sich die ausführbare Datei „youtube-dl“ befindet;VIDEOS_PARALLEL_DOWNLOADS
: Wie viele VOD-Fragmente sollen gleichzeitig heruntergeladen werden.CLIPS_PARALLEL_DOWNLOADS
: Wie viele Clips sollen gleichzeitig heruntergeladen werden;BIN_PATH
: Pfad, in dem Binärdateien gespeichert werden;DEFAULT_PERIOD_HOURS
: Standardzeitraumgröße in Stunden (12 ist eine gute Zahl für große Kanäle. Verringern Sie diesen Wert, um eine Zeitaufteilung zu vermeiden, erhöhen Sie ihn, um die API-Anzahl zu reduzieren und den URL-Abruf zu beschleunigen).