Bandcamp vs. Greasemonkey

Ich habe vor einiger Zeit mal einen Artikel über die Plattform Bandcamp verfasst - genauer gesagt darüber, wie man dank des Firefox Caches die Lieder einer Bandcamp-Seite speichern kann. Aufgrund des Artikels wurde ich sogar vom Deutschlandradio Kultur gefragt, ob ich nicht für ein Interview bereitstehen würde.

Für das Interview hatte ich extra ein kleines Greasemonkey-Script geschrieben, um zu zeigen, wie sich die Nachlässigkeit der Bandcamp-Programmierer auf die Umsätze eines Künstlers auswirken könnte. Leider wurde das Interview nun abgesagt, da das Bandcamp-Thema wohl nicht mehr eine so hohe Priorität hat. Trotzdem wollte ich den Nutzern von Bandcamp gerne mal vor Augen führen, worauf sie sich einlassen, wenn sie Bandcamp als Vertriebspartner nutzen wollen.

Bandcamp vorher

Das gleich präsentierte Greasemonkey-Userscript macht einfach folgendes: Es holt sich die TralbumData-Variable aus der Bandcamp-Seite, die man gerade besucht. In der stehen alle wichtigen Informationen zu den einzelnen Liedern, die auf der Seite präsentiert werden - inklusive dem Download-Link für die 128kbps-Version der Lieder. Die Links werden dafür einfach aufbereitet in einem neuen Tab angezeigt.

Bandcamp nachher

Wer jetzt denkt, dass das ganze Aufbereiten eine große Herausforderung ist, der irrt - liegt nämlich alles fertig im Quelltext. Zur Not könnte man diese Arbeit auch manuell machen: Im Quelltext nach der Variable suchen und die einzelnen URLs darin abgrasen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// ==UserScript==
// @name           Grab Bandcamp Songs
// @namespace      https://weizenspr.eu/
// @include        http://*.bandcamp.com/*
// @include        https://*.bandcamp.com/*
// @grant          none
// ==/UserScript==

// grab Bandcamp data
var albumData = TralbumData;
var embedData = EmbedData;

// grab album name - optional
var albumName = "";
if ((embedData != undefined) &&
    (embedData.album_title != undefined) &&
    (embedData.artist != undefined)) {
  albumName = embedData.artist + ": " + embedData.album_title;
}

// generate download output
if ((albumData != undefined) &&
    (albumData.trackinfo != undefined) &&
    (albumData.trackinfo.length > 0)) {
  var newText = "";

  newText += "<html>";
  newText += "<head>";
  newText += "<title>" + albumName + "</title>";
  newText += "</head>";
  newText += "<body>";
  newText += "<h1>" + albumName + "</h1>";

  var item = null;
  for (var index = 0; index < albumData.trackinfo.length; index++) {
    item = albumData.trackinfo[index];

    newText += "<a href='https://" + item["file"]["mp3-128"] + "'>" + item["title"] + "</a> (" + item["duration"] + " seconds)<br/>";
  }

  newText += "</body>";
  newText += "</html>";

  var newWindow = window.open("data:text/html;charset=UTF-8," + newText);
}

Würdet ihr eure Musik über einen Dienst verkaufen wollen, bei dem es für die Kunden problemlos möglich ist, auch ohne Bezahlung an die einzelnen Lieder zu kommen?!

Zum Schluss noch etwas Rechtliches:
Der Autor dieses Programms haftet nicht für Schäden an Soft- oder Hardware oder Vermögensschäden, die durch das Benutzen des Programms entstehen, es sei denn, diese beruhen auf einem grob fahrlässigen oder vorsätzlichen Handeln des Autors, seiner Erfüllungsgehilfen oder seiner gesetzlichen Vertreter.
Affige Grüße, Kenny

7 Kommentare » Schreibe einen Kommentar

  1. Interessant, aber ist das nicht irrelevant? Bandcamp spricht ja auch genau davon in der FAQ und als Musiker gebe ich ihnen definitiv recht.

    Egal, wie gut der Schutz ist, wenn man die Musik vorhören kann, dann findet sich immer ein Weg um sie auch zu speichern. Z.B. der Kopierschutz bei DVDs ist ziemlich kontraproduktiv. Wenn der Film populär genug ist, findet er sich auch mit Kopierschutz schnell genug in Tauschbörsen, aber zahlreiche ehrliche Käufer können die DVD dafür dann nicht abspielen.

    Dann wieder ist es ja auch nur mp3, 128 kbps. Aber selbst wenn es es wav 24 bit 96 kHz wäre... Ich brauche mich gar nicht zu sehr über das Thema auslassen, es gibt da auf youtube ein nettes Interview mit Dieter Bohlen über Filesharing. Meiner Meinung nach überwiegt der Werbeeffekt durch die halblegalen Downloads bei weitem die Umsatzeinbußen. Wohlwollende Menschen unterstützen Musiker, wenn sie ihre Musik mögen und als Musiker vom CD-Verkauf zu leben ist heutzutage sowieso illusionär. Deswegen plädiere ich auch aus Prinzip für creative commons...

    • Ich verstehe trotzdem nicht, warum es derart auf dem Silbertablett präsentieren muss. Das Problem, das ich - als Informatiker und weniger als Musiker - mit einer solchen Lösung habe, ist, dass es wahrscheinlich genug Musiker gibt, die sich mit der Technik hinter dem Anbieten von Musik kaum auskennen. Die suchen sich einen Anbieter (in dem Fall Bandcamp) und gehen davon aus, dass der sich um alles weitere kümmert.

      Klar, Musikliebhaber werden sich niemals mit 128kbps zufrieden geben - die wollen schon ihre mit FLAC komprimierte Musik haben. Aber vielen ist das wahrscheinlich eher egal - die geben sich dann auch mit 128kbps zufrieden. Anders ausgedrückt: Für große Projekte ist Bandcamp wahrscheinlich nichts.

  2. Was mich immer voll interessiert, wenn ich so Beiträge von dir lese .. wie kommst du auf sowas? Also.. schaust du dir die Seite an und überlegst gezielt, ob da irgendwo eine Sicherheitslücke sein könnte oder kommt dir das einfach so in den Sinn?

    • Das kommt immer ganz drauf an. Bei den Beispielen Trigami und Hallimash wollte ich wissen, ob die Plattformen (relativ) sicher sind, da ich selber Kunde bei Ihnen bin. (Habe übrigens gerade Teliad angeschrieben, weil sie bei den Kontodaten das gleiche Problem aufweisen.)

      Bei dem Session-Hijacking bin ich per Zufall auf den Fakt mit der Perl-Shell gestoßen und habe danach eins und eins zusammengezählt (gleiche PHP-Instanz für alle Nutzer, etc.).

      Der Angriff auf Flattr war besonders lustig. Ich hatte einen Artikel über das Potential von Flattr geschrieben und unten einen Absatz zu möglichen technischen Gefahren geschrieben. Das Thema hat mich dann so sehr interessiert, dass ich die Nacht durchgemacht habe und den Angriff entwickelt habe - ziemlich erfolgreich, wie ich meinen möchte.

      Und jetzt das bei Bandcamp... das folgte eigentlich aus dem ersten Artikel zu Bandcamp, wo ich im Update das Problem mit der Variable "TralbumData" bereits angeprangert hatte - gesehen hatte ich diese Variable beim sporadischen Durchscrollen durch den Quelltext. Dieses Greasemonkey-Script hier ist nur eine aufgehübschte Darreichungsform dieses Problems.

      • Klingt voll interessant, wenn man in der Materie einigermaßen drin ist bzw Ahnung hat, dann sieht man ja viel mehr als wenn nicht 🙂
        Ist genauso, wie wenn ich ein Plakat sehe und sofort genau weiß, was man mit Photoshop gemacht hat. Ist zumindest ein wenig vergleichbar. Ist jedenfalls sehr interessant. Schon alleine, weil ich jedesmal interessante Webseiten dadurch finde, werde ich so Blogeinträge jedes Mal lesen 😀

    • Den Einwurf verstehe ich ehrlich gesagt nicht. Es ging in dem Artikel nicht direkt darum, Greasemonkey als Nonplus-Ultra-Addon darzustellen, sondern zu zeigen, mit wie wenig Aufwand die Schwachstelle von Bandcamp ausnutzbar ist. 😉

Schreibe einen Kommentar

Um Ihnen beim weiteren Kommentieren auf dieser Webseite die erneute Eingabe Ihrer Daten zu ersparen, wird beim Absenden Ihres Kommentars ein Cookie an Ihren Browser gesendet und von diesem gespeichert. Mit dem Absenden eines Kommentars auf dieser Webseite stimmen Sie der Speicherung und Übertragung dieses Cookies explizit zu.

Pflichtfelder sind mit * markiert.