Инструмент NodeJS для пакетной загрузки клипов и VOD (и их метаданных) с канала Twitch.
Этот инструмент ВЕРОЯТНО может скачать ВСЕ клипы с канала (не только 1000 лучших). На данный момент этот инструмент был протестирован на нескольких крупных каналах и, похоже, способен получить все клипы (433 тыс. клипов от hasanabi
).
Чтобы максимально увеличить охват клипов, этот инструмент не позволит Twitch API сообщать более чем о 500 клипах за один период. Пагинация после этого момента ненадежна (ограничено примерно 1 тыс. клипов, но сильно варьируется). Чтобы это исправить, периоды с более чем 500 клипами будут разделены на 2, и процесс будет возобновляться до тех пор, пока в одном периоде не будет зарегистрировано менее 500 клипов.
Этот проект не заброшен, но в то же время активно не развивается из-за моей нехватки времени.
Я понял, что проект вышел за рамки своего названия: пакетный загрузчик клипов, и решил, что мне нужно реорганизовать все в более управляемые части. Я все еще придумываю, каким будет окончательный план атаки, а сейчас планирую вот что:
На данный момент это в основном сделано, но это было необходимо для того, чтобы отделить информацию пользователей от информации разработчиков. Это также позволяет мне сосредоточиться на обновлении и частом тестировании основных функций, а также на совместном использовании наиболее важного кода между всеми инструментами.
В настоящее время этот инструмент загружает только ВСЕ с канала, и это не самый распространенный вариант использования (даже для меня). Я планирую добавить такие вещи, как загрузка отдельного VOD/клипа, загрузка из списка URL-адресов, фильтры, улучшенный интерфейс командной строки и т. д.
Поскольку большинство пользователей боятся CLI, я хочу реализовать графический интерфейс с использованием Electron, чтобы сделать этот проект более доступным и удобным для пользователя.
Этот инструмент также способен загружать весь чат VOD с Twitch, позволяя игроку воспроизвести весь чат так же, как вы можете это сделать для VOD, которые все еще доступны.
Конечный план состоит в том, чтобы превратить пакет основных функций в швейцарский нож инструментов для резервного копирования, связанных с мультимедиа Twitch, что позволит любому разработчику легко написать свой собственный инструмент резервного копирования / загрузки, не беспокоясь о запросах, множественных соединениях, аутентификации API, получении VOD. плейлисты .m3u8 и т. д.
youtube-dl
;.ts
в .mp4
;Client-ID
приложения Twitch и Client Secret
(описаны ниже) — для доступа к API Twitch. Зарегистрируйте приложение на консоли Twitch, нажмите «Управление» , скопируйте идентификатор клиента и сгенерируйте секрет клиента .
Запустите эту команду на своей консоли:
npm install
Запустите скрипт через NPM с помощью (это необходимо для загрузки dotenv
):
npm run start
Вся необходимая информация будет запрошена при запуске через терминал.
Каждый раз, когда вы запускаете этот скрипт, он запрашивает имя канала, а затем подтверждает, хотите ли вы загрузить все.
Вот описания каждой переменной:
DEBUG
: вывести чертову тонну информации, оставив ее ложной для нормального использования;CLIENT_ID
: идентификатор клиента API Twitch;CLIENT_SECRET
: секрет клиента API Twitch;BASEPATH
: где должны храниться файлы (клипы, VOD, фрагменты);YOUTUBE_DL_PATH
: где находится исполняемый файл youtube-dl;VIDEOS_PARALLEL_DOWNLOADS
: сколько фрагментов VOD должно быть загружено одновременно.CLIPS_PARALLEL_DOWNLOADS
: сколько клипов следует загрузить одновременно;BIN_PATH
: путь, по которому будут храниться двоичные файлы;DEFAULT_PERIOD_HOURS
: размер периода по умолчанию в часах (12 — хорошее число для больших каналов. Уменьшите это значение, чтобы избежать разделения периода, увеличьте, чтобы уменьшить количество API и ускорить получение URL-адресов).