Este módulo sirve para descargar todos los archivos mp3 desde un feed rss de patreon.
Actualmente se encuentra en estado alfa y funciona muy bien para mi caso de uso específico y para otros casos de uso con un poco de fuerza. La próxima actualización ofrecerá un objeto con mejores opciones para controlar varios aspectos a tu gusto. En este momento, simplemente descargará todos los archivos de tipo audio/mpeg en el feed rss al directorio actual.
Necesitará obtener su enlace rss individual del sitio web de la campaña de Patreon (patreon.com -> barra lateral en 'Membresías' -> campaña individual -> pestaña Membresía -> enlaces rápidos -> 'Escuchar en otras aplicaciones de podcast')
import getRssItems from 'patreon-mp3-downloader';const items = await getRssItems('https://www.patreon.com/rss/PATREONCAMPAIGN?auth=PATREON_PROVIDED_AUTH_TOKEN_STRING');// esta será una matriz de objetos Item, que tiene un título y una URL// así como un método de descarga() que puedes usar para activar la descarga de// un archivo individual.console.log(items);// ya que tiene una serie de objetos y cada uno contiene su propio método de descarga,// puede descargarlos como desee.// descargue el último elemento en the rss feed:await items[0].download();// descarga cada elemento en secuencia, comenzando con el último, anteponiendo un número al nombre del archivo:let counter = items.length;for (const item of items) { console.log(`descargando ${counter} - ${item.fileName}`);await item.download(`${counter} - `);counter--;}// descarga todos los elementos del feed a la vez (no recomendado para feeds más grandes ):await Promise.all(items.map(i => await i.download()))// también puedes fragmentar la matriz con lodash y Promise.all cada fragmento:import _ from 'lodash';const chunks = _.chunk(items, 5);for (const fragmento de fragmentos) {await Promise.all(chunk.map(i => await i.download()));}
Nuevamente, en la próxima actualización llegará una interfaz más fácil de usar con los métodos anteriores integrados.
hecho con ? y ?