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' ) ;
// this will be an array of Item objects, that has a title and a url
// as well as a download() method that you can use to trigger the download of
// an individual file.
console . log ( items ) ;
// since you have an array of objects that each contains it's own download method,
// you are free to download them as you like.
// download the latest item in the rss feed:
await items [ 0 ] . download ( ) ;
// download each item in sequence, starting with the latest, prepending a number to the file name:
let counter = items . length ;
for ( const item of items ) {
console . log ( `downloading ${ counter } - ${ item . fileName } ` ) ;
await item . download ( ` ${ counter } - ` ) ;
counter -- ;
}
// download every item in the feed at once (do not recommend for larger feeds):
await Promise . all ( items . map ( i => await i . download ( ) ) )
// you could also chunk the array with lodash, and Promise.all each chunk:
import _ from 'lodash' ;
const chunks = _ . chunk ( items , 5 ) ;
for ( const chunk of chunks ) {
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 ?