-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
36 lines (28 loc) · 844 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const wget = require('node-wget-promise');
function sleep(ms) {
return function(x) {
return new Promise(resolve => setTimeout(() => resolve(x), ms));
};
}
const re = /filename=%22(.*).mp3/i;
async function getFile(url) {
const filename =
decodeURIComponent(decodeURIComponent(url.match(re)[1])).replace(/ /g, '-') + '.mp3';
console.log(`---------- getting ${url} ----------`);
await wget(url, {
onProgress: () => process.stdout.write('.'),
output: `./downloads/${filename}`
});
console.log('\n\n');
}
(async function () {
if (process.argv.length !== 3) {
console.error('\nusage: node index.js xxxx-downloads-xxxx.json\n');
process.exit(1);
}
const episodeUrls = require(process.argv[2]);
for (let episodeUrl of episodeUrls) {
await getFile(episodeUrl);
await sleep(2000);
}
})();