Tumtaster

By Bjorn Stromberg Last update Oct 7, 2009 — Installed 4,224 times. Daily Installs: 37, 20, 8, 14, 9, 13, 18, 7, 9, 3, 9, 14, 12, 63, 20, 13, 8, 16, 19, 14, 25, 7, 5, 8, 12, 8, 8, 14, 13, 15, 16, 19

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&nbsp;&nbsp;';
    song_embed[i].parentNode.appendChild(dl_a);
  }
}