Skip to content

Instantly share code, notes, and snippets.

@rounakdatta
Created September 7, 2019 10:30
Show Gist options
  • Save rounakdatta/3d08726e2633bac1b3191412cc013392 to your computer and use it in GitHub Desktop.
Save rounakdatta/3d08726e2633bac1b3191412cc013392 to your computer and use it in GitHub Desktop.
Javascript to display your last.fm scrobbles on a front-end
var lastFmApiKey = "xxyy";
var settings = {
"async": true,
"crossDomain": true,
"url": "https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=rounakdatta&api_key=" + lastFmApiKey + "&format=json",
"method": "POST",
"headers": {
"Accept": "*/*",
"Cache-Control": "no-cache",
"Host": "ws.audioscrobbler.com",
"Content-Type": "multipart/form-data; boundary=--------------------------122602628217122905448069",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "",
"Connection": "keep-alive",
"cache-control": "no-cache"
}
}
var lastfmData = "";
$.ajax(settings).done(function (response) {
document.getElementById("allTracks").innerHTML = "<br>";
console.log(response);
lastfmData = response;
let allTracks = lastfmData["recenttracks"]["track"];
for (var i = 0; i < allTracks.length; i++) {
let singleTrack = allTracks[i];
let trackName = singleTrack["name"];
let trackImage = singleTrack["image"][0]["#text"];
let playbackUrl = singleTrack["url"];
let epochTime = "";
let timePlaying = "";
try {
epochTime = singleTrack["date"]["uts"];
timePlaying = moment(moment.unix(epochTime).format('MMDDhhmmssA'), "MMDDhhmmssA").fromNow();
} catch (err) {
epochTime = "Now";
timePlaying = epochTime;
}
let dataFormat = "<div class=\"row\"><div class=\"col-md-6\"><b>" + trackName + "</b><br>" + timePlaying + "</div><div class=\"col-md-4\">" + "<img src=\"" + trackImage + "\">" + "</div><div class=\"col-md-2\">" + "<a target='_blank' href=\"" + playbackUrl + "\"><img height='40px' width='40px' src=\"https://i.imgur.com/aslNp6D.png\"></a>" + "</div></div><hr style=\"border-top: dotted 1px;\">";
document.getElementById("allTracks").innerHTML += dataFormat;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment