Compare commits

..

2 Commits

Author SHA1 Message Date
96ac5a6f31 1.0.6 2020-07-06 13:11:35 +02:00
56ee05c297 fix: if download failed, continue with error log 2020-07-06 13:11:27 +02:00
3 changed files with 21 additions and 8 deletions

17
index.js Normal file → Executable file
View File

@ -10,6 +10,7 @@ const leven = require('leven');
const { URL, URLSearchParams } = require('url'); const { URL, URLSearchParams } = require('url');
const fetch = require('node-fetch'); const fetch = require('node-fetch');
const m3u = require('m3u'); const m3u = require('m3u');
const promisepipe = require('promisepipe');
require('dotenv').config(); require('dotenv').config();
@ -103,12 +104,18 @@ async function main(playlistUrl){
} }
bestMatch.path = `${bestMatch.artist} - ${bestMatch.title}.mp3`; bestMatch.path = `${bestMatch.artist} - ${bestMatch.title}.mp3`;
debug('bestMatch=%O', bestMatch); debug('bestMatch=%O', bestMatch);
await fs.access(bestMatch.path).catch(async () => { // TODO find a proper way to not re-download, lower/uppercase problems try {
await fetch(bestMatch.url).then(res => { await fs.access(bestMatch.path).catch(async () => { // TODO find a proper way to not re-download, lower/uppercase problems
res.body.pipe(createWriteStream(bestMatch.path)); await fetch(bestMatch.url).then(async res => {
await promisepipe(res.body, createWriteStream(bestMatch.path));
});
debug('Done downloading');
}); });
debug('Done downloading'); } catch (err) {
}); console.error('Download failed for ', bestMatch);
console.error(err);
return null;
}
return bestMatch; return bestMatch;
}, {concurrency: 1}); }, {concurrency: 1});

7
package-lock.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "vk-music-dl", "name": "vk-music-dl",
"version": "1.0.5", "version": "1.0.6",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
@ -164,6 +164,11 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"promisepipe": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/promisepipe/-/promisepipe-3.0.0.tgz",
"integrity": "sha512-V6TbZDJ/ZswevgkDNpGt/YqNCiZP9ASfgU+p83uJE6NrGtvSGoOcHLiDCqkMs2+yg7F5qHdLV8d0aS8O26G/KA=="
},
"readable-stream": { "readable-stream": {
"version": "3.6.0", "version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",

View File

@ -1,6 +1,6 @@
{ {
"name": "vk-music-dl", "name": "vk-music-dl",
"version": "1.0.5", "version": "1.0.6",
"description": "Download Spotify playlist as mp3 from VKontakte", "description": "Download Spotify playlist as mp3 from VKontakte",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
@ -33,7 +33,8 @@
"leven": "^3.1.0", "leven": "^3.1.0",
"lodash": "^4.17.15", "lodash": "^4.17.15",
"m3u": "0.0.2", "m3u": "0.0.2",
"node-fetch": "^2.6.0" "node-fetch": "^2.6.0",
"promisepipe": "^3.0.0"
}, },
"devDependencies": {} "devDependencies": {}
} }