このモジュールは、Patreon RSS フィードからすべての MP3 ファイルをダウンロードするためのものです。
現在はアルファ版であり、私の特定のユースケースでは非常にうまく機能しますが、他のユースケースでは少し強力です。次のアップデートでは、さまざまな側面を好みに合わせて制御できる、より優れたオプション オブジェクトが提供される予定です。現時点では、RSS フィード内のすべてのオーディオ/mpeg タイプのファイルが現在のディレクトリにダウンロードされるだけです。
patreon キャンペーンの Web サイトから個別の RSS リンクを取得する必要があります (patreon.com -> 「メンバーシップ」の下のサイドバー -> 個別のキャンペーン -> メンバーシップ タブ -> クイック リンク -> 「他のポッドキャスト アプリで聴く」)
import getRssItems from 'patreon-mp3-downloader';const items = await getRssItems('https://www.patreon.com/rss/PATREONCAMPAIGN?auth=PATREON_PROVIDED_AUTH_TOKEN_STRING');// これは、Item オブジェクトの配列になります。タイトルと URL// に加えて、ダウンロードをトリガーするために使用できる download() メソッドがあります。 of// 個別の file.console.log(items);// それぞれに独自のダウンロード メソッドが含まれるオブジェクトの配列があるため、// 好きなように自由にダウンロードできます。// 最新のアイテムをダウンロードします。 RSS フィード:await items[0].download();// 各アイテムを最新のものから順にダウンロードし、ファイル名の前に数字を付けます:let counter = items.length;for (const item of items) { console.log(`ダウンロード中${counter} - ${item.fileName}`);await item.download(`${counter} - `);counter--;}// フィード内のすべてのアイテムを一度にダウンロードします (フィードが大きい場合はお勧めしません) ):await Promise.all(items.map(i => await i.download()))// lodash で配列をチャンク化し、各 chunk:import _ from で Promise.all を実行することもできます。 'lodash';const chunks = _.chunk(items, 5);for (チャンクの const チャンク) {await Promise.all(chunk.map(i => await i.download()));}
繰り返しになりますが、上記のメソッドが組み込まれた、よりユーザーフレンドリーなインターフェイスが次のアップデートで提供される予定です。
で作られた?そして ?