Twitch 채널에서 클립과 VOD(및 메타데이터)를 일괄 다운로드하는 NodeJS 도구입니다.
이 도구는 아마도 한 채널의 모든 클립(상위 1000개뿐만 아니라)을 다운로드할 수 있습니다. 현재 이 도구는 여러 대형 채널에서 테스트되었으며 모든 클립( hasanabi
의 433k 클립)을 가져올 수 있는 것으로 보입니다.
클립 적용 범위를 최대화하기 위해 이 도구에서는 Twitch API가 단일 기간에 500개 이상의 클립을 보고하는 것을 허용하지 않습니다. 이 지점을 넘어서는 페이지 매김은 신뢰할 수 없습니다(클립 수는 약 1,000개로 제한되지만 많이 다릅니다). 이 문제를 해결하기 위해 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
: 엄청난 양의 정보를 인쇄합니다. 일반적인 사용을 위해서는 거짓으로 유지하세요.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 가져오기 속도를 높이려면 이 값을 늘리세요).