Este módulo é para baixar todos os arquivos mp3 de um feed RSS do Patreon.
Atualmente, ele está em um estado alfa e funciona muito bem para meu caso de uso específico e para outros casos de uso com um pouco de força. A próxima atualização oferecerá um objeto de opções melhores para controlar vários aspectos ao seu gosto. No momento, ele apenas baixará todos os arquivos do tipo áudio/mpeg no feed rss para o diretório atual.
Você precisará obter seu link RSS individual no site da campanha patreon (patreon.com -> barra lateral em 'Assinaturas' -> campanha individual -> guia Membros -> links rápidos -> 'Ouvir em outros aplicativos de podcast')
import getRssItems from 'patreon-mp3-downloader';const items = await getRssItems('https://www.patreon.com/rss/PATREONCAMPAIGN?auth=PATREON_PROVIDED_AUTH_TOKEN_STRING');// este será um array de objetos Item, que tem um título e uma url//, bem como um método download() que você pode usar para acionar o download de // um arquivo individual.console.log(items); // já que você tem uma matriz de objetos em que cada um contém seu próprio método de download, // você pode baixá-los como quiser. // baixe o item mais recente em o feed rss:await items[0].download();// baixa cada item em sequência, começando pelo mais recente, acrescentando um número ao nome do arquivo:let counter = items.length;for (const item of items) { console.log(`baixando ${counter} - ${item.fileName}`);await item.download(`${counter} - `);counter--;}// baixa todos os itens do feed de uma só vez (não recomendado para feeds maiores ):await Promise.all(items.map(i => await i.download()))// você também pode fragmentar o array com lodash e Promise.all each chunk:import _ from 'lodash';const chunks = _.chunk(items, 5);for (const pedaço de pedaços) {await Promise.all(chunk.map(i => await i.download()));}
Novamente, uma interface mais amigável com os métodos acima integrados chegará na próxima atualização.
feito com? e ?