There are 3 previous versions of this script.
// ==UserScript==
// @name Tumtaster
// @namespace bjornstar
// @description This script creates links to download mp3's from audio posts on Tumblr.
// @include http://*.tumblr.com/*
// @include http://bjornstar.com/*
// @include http://toys.tumblrist.com/audio/*
// @exclude http://www.tumblr.com/show/text/*
// @exclude http://www.tumblr.com/show/photos/*
// @exclude http://www.tumblr.com/show/quotes/*
// @exclude http://www.tumblr.com/show/videos/*
// @exclude http://www.tumblr.com/show/links/*
// @exclude http://www.tumblr.com/show/chats/*
// @exclude http://www.tumblr.com/dashboard/iframe*
// ==/UserScript==
function addGlobalStyle(css) {
var elmHead, elmStyle;
elmHead = document.getElementsByTagName('head')[0];
elmStyle = document.createElement('style');
elmStyle.type = 'text/css';
elmHead.appendChild(elmStyle);
elmStyle.innerHTML = css;
}
var tumblr_ico = 'data:image/gif;base64,R0lGODlhEAAQAPcAAE5SVv///xkbHx8iJx0gJA0OEB0gJSsvNS0xOC4zOg4QEicrMQkKDENERERERAsMDRUXGgcICgcJCkxPUxseIRsdIhESFURISzA1Ow4QEw8QEgwOECUpLhsdISotM0hMTxETFQsMDh8iJhMUFycrMDA0Ow8REwYGBzM4PxocISQnK8bHyCktM1lcXx0fIQ0ODxEUFgwNDy0wOE1RVV5hZVxfY3V2dnR1dhESFEZJTgkJC1xeYiAjKWZnZyYmJxMVFgYGCBcZHTA1PGFkaTE2PSktNKanqCQoLTY7QyYpLiMmLAwMDx0fJR0fJAQEBCYoLiEkKRcYHBIUFwwNEHJzdgoKC2Vna4WFhg0OESElKTY6QTQ5QCUpLyElKqOkpDQ5QSIkKQoLCywxOExQVImKiyMnLAMEBC4zOTc4ORseIjE2PjU6QisvNhcZHAcICRYYG9DQ0BocHQsLDiIkKgoLDVpcYAUFBhASFUNDRCEjJhUWGcnKywQFBnp7gEpOUtTU1EVGR4GBgUZKTfDw8BASFDI2Pi8zOSMnK4GBggICAzI4PyEkKkdKThwfIyQnLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAj/AJFo+YKiUIkzCA6wIPHEUZcBBtYAmEixYkUKWwCowZAAARsPCzgcWiSiCQABigBgMDSkT40ddVpYoZImBYAoRAB03BOgp89Bed4A0CMEgJgcAYzE6QnIRoAeFiaMSADgAI0VLkz0bBDCy40NHyzIAFCESyMIAno60ABiCpYPGg4AWHCEBwEDahX8AJFhTAEPADiUASOCwNYCMO4oABBiAQAlcyB26IlnCaEMGwBUSQIgC8QKf3rCQVPgxQMAblQAGECggwAyVxAF8kHnQRgAJ6AAYEJBQJARMXREkMCAQQQAfAZYnMDowgVBfmZMNEOggoA2EKTgUFBADgMJQOw4A0kUEAA7';
var tumtaster_style = 'background-image:url('+tumblr_ico+'); background-repeat:no-repeat; background-position: 6px 5px; line-height:27px; height:27px; width:207px; vertical-align:middle; font-size:10px; display:block; text-align:right; margin-top:1px; font-family:helvetica,arial,sans-serif; text-decoration:none; color:#000000;';
try {
document.styleSheets[0].insertRule('a.tumtaster {'+tumtaster_style+'}', 0);
} catch (e) {
addGlobalStyle('a.tumtaster {'+tumtaster_style+'}');
}
for (var track_id in unsafeWindow.tracks) {
listitem = document.getElementById('track_'+track_id);
if (listitem) {
listitem.innerHTML = listitem.innerHTML.substring(0,64) + '<a href="'+unsafeWindow.tracks[track_id].url+'" class="tumtaster" style="float:right;padding-right:4px;">Click to download</a><br />' + listitem.innerHTML.substring(64);
}
}
var song_embed = document.getElementsByTagName('embed');
for (var i=0;i<song_embed.length;i++) {
if (song_embed[i].getAttribute('src').indexOf('/swf/audio_player') >= 0) {
var song_url = song_embed[i].getAttribute('src').substring(song_embed[i].getAttribute('src').indexOf('audio_file=')+11);
var song_bgcolor = song_url.substring(song_url.length-6);
var song_color = '4c4c4c';
song_url = song_url.replace('&color='+song_bgcolor,'?plead=please-dont-download-this-or-our-lawyers-wont-let-us-host-audio');
if (song_embed[i].getAttribute('src').indexOf('audio_player_black') >= 0) {
song_bgcolor = '000000';
song_color = 'FFFFFF';
}
var dl_a = document.createElement('a');
dl_a.setAttribute('href', song_url);
dl_a.setAttribute('style', 'background-color: #'+song_bgcolor+'; color: #'+song_color+';');
dl_a.setAttribute('class', 'tumtaster');
dl_a.innerHTML = 'Click to download ';
song_embed[i].parentNode.appendChild(dl_a);
}
}
