Automatically download all songs played in jango.com while listening.
// ==UserScript== // @name Automatic Jango Downloader // @author Finomosec // @namespace http://meinebasis.de/ // @description Automatically download all songs played in jango.com while listening. // @version 1.3 // @grant GM.xmlHttpRequest // @match https://www.jango.com/* // @license MIT // ==/UserScript== const storagePrefix = "D:"; var originalAudio = window.Audio; unsafeWindow.Audio = exportFunction(function() { var audioElement = new originalAudio(); audioElement.addEventListener('loadeddata', function() { var url = audioElement.src; if (url.indexOf(".jango.com/") == -1) { return; } var fileName = url.substring(url.lastIndexOf("/") + 1); var fil###ffix = url.substring(url.lastIndexOf(".")); var niceFileName = unsafeWindow.document.title.replace(": ", " - ").replace(" - Jango", "").replace("&", "&") + fil###ffix; if (localStorage.getItem(storagePrefix + fileName)) { // console.info('Already downloaded:', niceFileName); return; } // console.info('Downloading:', niceFileName); GM.xmlHttpRequest({ method: "GET", url: url, responseType: 'arraybuffer', onload: function(response) { var blob = new Blob([response.response], {type: "audio/" + fil###ffix.substring(1)}); var url = URL.createObjectURL(blob); var link = document.createElement('a'); link.href = url; link.download = niceFileName; link.click(); localStorage.setItem(storagePrefix + fileName, "1"); } }); }); return audioElement; }, unsafeWindow);