Twitch チャンネルからクリップと VOD (およびそのメタデータ) をバッチダウンロードするための NodeJS ツール。
このツールはおそらくチャンネルから (上位 1000 だけでなく) すべてのクリップをダウンロードできます。現時点では、このツールは複数の大きなチャンネルでテストされており、すべてのクリップ ( hasanabi
からの 433k クリップ) を取得できるようです。
クリップ カバレッジを最大化するために、このツールでは Twitch API が 1 つの期間に 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 Console でアプリケーションを登録し、 「管理」をクリックしてクライアント 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 フェッチを高速化するにはこれを増やします)。