Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Mixcloud Download Button
- // @namespace http://www.mixcloud.com
- // @description Mixcloud download button. Only tested in chrome.
- // @include http://www.mixcloud.com/*
- // @include https://www.mixcloud.com/*
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
- // @version 1.2
- // @author The Archiver
- // ==/UserScript==
- $(document).ready(function(){
- var elementHeader = $('div.cloudcast-header').html();
- var trackServerName = elementHeader.match(/waveforms-[a-zA-Z.-]{1,}([0-9a-fA-F/-]){41}.json/);
- var streamServerName = elementHeader.match(/m-preview=\"https?:\/\/stream([0-9]){0,2}.mixcloud.com\//);
- var trackNameReplaced = trackServerName[0].replace(new RegExp(/waveforms-[a-zA-Z.-]{1,}/),'').replace('.json',''); /* /a/b/c/d/0000-0000-0000-0000000000 */
- var streamserverReplaced = streamServerName[0].replace('m-preview="',''); /* https://stream00.mixcloud.com/ || http://stream00.mixcloud.com/ */
- var finalUrl = streamserverReplaced + "c/originals"+ trackNameReplaced+ ".mp3";
- var lossyFinalUrl = streamserverReplaced+ "c/m4a/64"+ trackNameReplaced+ ".m4a";
- var trackName = $('.cloudcast-title').text().trim();
- var artistName = $('.cloudcaster-name a span').text().trim();
- var downloadName = artistName + ' - ' + trackName;
- $('span.button-favorite').after('<a href="'+finalUrl+'" class="button button-share" style="margin-top:10px;" download="'+downloadName+'.mp3">Download MP3</a>');
- $('span.button-favorite').after('<a href="'+lossyFinalUrl+'" class="button button-share" style="margin-top:10px;" download="'+downloadName+'.m4a">Download M4A</a>');
- $('div.leaderboard-banner').hide();
- $('div.card-advert').hide();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement