NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Amazon Cloud Player unchain download button
// @namespace http://sebastian.gellweiler.net
// @version 2.0.1
// @grant none
//
// @downloadURL https://userscripts.org/scripts/source/426973.user.js
// @updateURL https://userscripts.org/scripts/source/426973.meta.js
//
// @include https://www.amazon.*/gp/dmusic/cloudplayer*
// @include http://www.amazon.*/gp/dmusic/cloudplayer*
//
// ==/UserScript==
(function () {
// Hide annoying cloud player advertisments on windows
// and hide download button.
jQuery(document).ready(function () {
jQuery('<style type="text/css">' +
'#messageBanner, #cloudPlayerOverlay, .download' + "\n" +
'{display: none !important; }' + "\n" +
'</style>').appendTo("head");
});
function bypassDownloader() {
// Remove annoying popups and overlay.
setTimeout(function() {
jQuery('.ap_popover').hide();
jQuery('#ap_overlay').hide();
}, 200);
// Submit download form.
jQuery('#downloader').submit();
}
/**
* Replace old download links with new ones.
*/
function downloadLinks() {
// Try to replace download button in toolbar.
// Ignore buttons that have been already replaced.
var db = jQuery('.download:not(".replacedByNew")');
db
.addClass('replacedByNew')
.after(
jQuery('<span>', {
text: db.text(),
class: 'decoration buttonCenter',
click: function () {
// Click on the old download button
// to submit the download form.
db.click();
// Only workaround amazon downloader if multiple songs are selected.
if (jQuery('input[itemtype=song]:checked').length > 1) {
bypassDownloader();
}
}
})
);
// Skip stupid installing cloud player advertisment on windows
// when downloading single tracks.
jQuery('.skipInstall').click();
// Hide download album links because they do not work.
jQuery('[href^="#download\/album"]').hide();
}
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
jQuery.noConflict();
// Constantly check if downloads links are replaced on the pages.
setInterval(function () {
downloadLinks();
}, 1000);
}());