.
URLHandlers.find(file).getStreamURL()
.then(function (url) {
resolve(url);
})
.catch(function (err) {
reject(err);
});var request = require("request");
request.get('https://soundcloud.com/j-cole/high-for-hours', {
headers: { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0" }
}, function (err, res, txt) {
if (err) {
return console.log(err);
}
console.log(txt);
var id = /soundcloud:\/\/sounds:(\d+)/.exec(txt)[1];
var appPath = txt.match(/assets\/app-[0-9a-f\-]+\.js/)[0];
var appVersion = /window\.__sc_version = "(\d+)"/.exec(txt)[1];
console.log(id, appPath, appVersion)
request.get('https://a-v2.sndcdn.com/' + appPath, {
headers: { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0" }
}, function (err, res, txt) {
if (err) {
return console.log(err);
}
var token = /,client_id:"([a-zA-Z0-9]+)",/.exec(txt)[1]
console.log(token)
// https://api.soundcloud.com/i1/tracks/302914288/streams?client_id=fDoItMDbsbZz8dY16ZzARCZmzgHBPotA&app_version=1484833232
request.get(' https://api.soundcloud.com/i1/tracks/' + id + '/streams?client_id=' + token + '&app_version=' + appVersion, {
headers: { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0" }
}, function (err, res, txt) {
if (err) {
return console.log(err);
}
console.log(txt);
})
})
})460: function(e, t, n) {
"use strict";
var i = n(59).trackV0ClickWithPromotedParams;
e.exports = n(54).extend(n(87), n(300), {
tagName: "a",
className: "sc-button-download",
attributes: {
rel: "nofollow"
},
ModelClass: n(65),
requiredAttributes: ["title", "download_url"],
buttonLabels: {
"default": function() {
return {
text: n(52).t("Download"),
title: n(52).t("Download this track")
}
}
},
renderDecorate: function() {
this.$el.attr("download", this.model.get("title"))
},
onClick: function() {
var e = this.getContextData()
, t = {
client_id: n(55).get("client_id"),
oauth_token: n(64).getAuthToken() || null
};
this.model.isPrivate() && (t.secret_token = this.model.get("secret_token"));
var r = n(63).modify(this.model.get("download_url"), {
query: t
});
n(64).login({
implicitAction: "download"
}).then(function() {
window.location.href = r,
i(null, {
click_name: "download",
click_object: e.urn,
context: e
})
})
}
})
}