@nasheedstation/soundcloud-downloader
Version:
Download Soundcloud audio with Node.js, this is a forked version, the original script was written by @zackradisic
43 lines (42 loc) • 1.65 kB
JavaScript
exports.__esModule = true;
exports.kindMismatchError = exports.extractIDFromPersonalizedTrackURL = exports.appendURL = exports.handleRequestErrs = exports.resolveURL = void 0;
/** @internal @packageDocumentation */
var url_1 = require("url");
exports.resolveURL = 'https://api-v2.soundcloud.com/resolve';
var handleRequestErrs = function (err) {
if (!err.response)
return err;
if (!err.response.status)
return err;
if (err.response.status === 401)
err.message += ', is your Client ID correct?';
if (err.response.status === 404)
err.message += ', could not find the song... it may be private - check the URL';
return err;
};
exports.handleRequestErrs = handleRequestErrs;
var appendURL = function (url) {
var params = [];
for (var _i = 1; _i < arguments.length; _i++) {
params[_i - 1] = arguments[_i];
}
var u = new url_1.URL(url);
params.forEach(function (val, idx) {
if (idx % 2 === 0)
u.searchParams.append(val, params[idx + 1]);
});
return u.href;
};
exports.appendURL = appendURL;
var extractIDFromPersonalizedTrackURL = function (url) {
if (!url.includes('https://soundcloud.com/discover/sets/personalized-tracks::'))
return '';
var split = url.split(':');
if (split.length < 5)
return '';
return split[4];
};
exports.extractIDFromPersonalizedTrackURL = extractIDFromPersonalizedTrackURL;
var kindMismatchError = function (expected, received) { return new Error("Expected resouce of kind: (" + expected + "), received: (" + received + ")"); };
exports.kindMismatchError = kindMismatchError;
;