Open Source im professionellen Einsatz
Linux-Magazin 09/2014
© konstantin32, 123RF

© konstantin32, 123RF

Spotify-Playlisten archivieren

Musik nonstop

Der Musikstreaming-Service Spotify pumpt gegen eine monatliche Gebühr Musik auf den Desktop und aufs Smartphone. Noch mehr Groove hat, dass Perl-Hacker Michael Schilli per Oauth-geschütztem Web-API seine Spotify-Playlisten für die Ewigkeit archiviert.

712

Der mediale Beat lässt klassische Informationsträger hinter sich – und geht lieber online. Schneller noch als die Papier- der Online-Zeitung weicht, verlieren Silberscheiben ihre ursprüngliche Bedeutung, denn Musik und Filme strömen mehr und mehr über die Datenleitung zum Konsumenten.

Zugleich bahnt sich ein Wandel der Lizenznutzung an: Eine gekaufte und einmal gesehene Blu-ray-Disk stellt sich doch nach einmaligem Genuss oft als Staubfänger heraus, der in extra zu diesem Zweck teuer erworbenen Designerregalen wertvollen Wohnraum besetzt. Drei Umzüge später verscherbelt der Besitzer die selten berührte Schachtel auf dem Flohmarkt. Wozu also sollte man Kopien von Musik- oder Filmerzeugnissen tatsächlich besitzen wollen?

Online PLUS

In einem Screencast demonstriert Michael Schilli das Beispiel: http://www.linux-magazin.de/2014/09/plus

Vermarkter in Schockstarre

Die etablierten Musikvermarkter haben den Trend erwartungsgemäß verschlafen. Die Grammophongesellschaften würden lieber an ihrem 100 Jahre alten Geschäftsmodell festhalten, auch manche Künstler mosern [2] – geschenkt, meine Weichen sind bereits auf Zukunft gestellt. Denn Drittanbieter wie der Videostreamer Netflix in den USA (demnächst auch in Deutschland, [3]) oder reine Musikangebote wie Pandora, Rhapsody oder Spotify [4] verdienen bereits ganz gut beim Online-Vermieten.

Bei ihnen erwirbt der Kunde keine digitalen Inhalte im Einzelkauf, sondern entrichtet eine monatliche Abogebühr. Im Gegenzug verpflichtet sich der Anbieter, den Kunden per Internet mit einem Repertoire aus Millionen Film- oder Musiktiteln zu bedienen. Die laufen entweder auf dem PC, über kleine Kästchen wie dem Roku, Apple TV, Chromecast oder Amazon Fire im Fernseher oder gleich direkt auf dem Smartphone.

Einige Anbieter dieser Mietmusik schalten ein kostenloses Radioprogramm, bei dem der Kunde nur ungefähr die Richtung vorgibt, aber keine Titel direkt auswählt. Auch trüben lästige Werbespots den Musikgenuss. Zahlungspflichtige Varianten dagegen bieten freie Titelwahl aus einem je nach Anbieter mehr oder weniger beeindruckenden Katalog an.

Der Abonnent darf sich so genannte Playlisten (Abbildungen 1 und 2) zusammenstellen, damit seine Lieblinge die digitale Bühne schneller erklimmen können. Das System ist ungemein praktisch – so lange man zahlender Kunde bleibt. Wer dagegen kündigt, verliert aber fatalerweise seine mühevoll zusammengesuchten Playlisten.

Abbildung 1: Im Webbrowser lässt Spotify die Mietmusik laufen, die der Benutzer zuvor in seiner höchst persönlichen Playliste zusammengetragen hat.
Abbildung 2: Eine Spotify-Playliste von Michael Schilli auf dem iPhone.

Über den Wolken

Da die Playlisten aber im Rechenzentrum des Anbieters liegen und nicht auf meinem heimischen Rechner, beschleicht mich ein leichtes Gefühl des Unwohlseins. Was würde mit meinen mühsam zusammengestellten Listen passieren, sollte Spotify einpacken? Dank des ebenfalls angebotenen Web-API [5] gelingt es mir aber, die Daten lokal zu sichern und Verlustängste zu überwinden.

Über sein Web-API erlaubt Spotify auch ohne Registrierung generelle Katalogabfragen zu Musikerzeugnissen. Wer zum Beispiel herausfinden möchte, welche Titel die kalifornische Band Weezer auf welchen Alben veröffentlicht hat, kann dies mit einer einfachen HTTP-Anfrage wie in Listing 1 tun. Den Parameter »q« (für Query) setzt das Skript auf den Namen der gesuchten Band, und »type« steht auf »track« , um dem Server zu signalisieren, dass der Client an Titeln der Band interessiert ist.

Der Server schickt das Ergebnis im Json-Format zurück, das die Methode »from_json()« aus dem CPAN-Modul JSON in eine verschachtelte Hash-Datenstruktur umwandelt. Die For-Schleife ab Zeile 15 iteriert über die Array-Einträge unter dem Schlüssel »tracks->items« und gibt den gefundenen Musiktitel sowie das zugehörige Album aus, das sich ebenfalls in der Datenstruktur unter dem Titeleintrag findet. Abbildung 3 zeigt die auf 20 Einträge begrenzte Ausgabe.

Das Skript filtert das Gros der im Json-Format zurückkommenden Information aus. Wer will, sucht sich Extra-Happen, etwa Beliebtheit oder Spieldauer, und über Links zusätzliche Details wie das Erscheinungsdatum eines Albums heraus.

Abbildung 3: Ohne Registrierung erlaubt Spotify allgemeine Suchabfragen, wie hier nach den veröffentlichten Titeln der Band "Weezer".

Listing 1

search

01 #!/usr/local/bin/perl -w
02 use strict;
03 use LWP::UserAgent;
04 use JSON qw( from_json );
05
06 my $ua = LWP::UserAgent->new();
07
08 my $resp = $ua->get(
09     "https://api.spotify.com/v1/search?" .
10     "q=weezer&type=track"
11 );
12
13 my $data = from_json( $resp->content() );
14
15 for my $item (
16       @{ $data->{ tracks }->{ items } } ) {
17     print "$item->{ name } ",
18           "($item->{ album }->{ name })\n";
19 }

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Der Lauscher an der Wand

    Ein Lausch-Bot in einem IRC-Kanal springt bei bestimmten Schlüsselwörtern an und benachrichtigt einen definierten User via Instant Messaging über das Gehörte.

  • Perl-Snapshot

    Mit einer chinesischen Guillotine und einem Einzugsscanner bewaffnet geht Perlmeister Michael Schilli diesmal seinen Büchern an den Leim. Die Grundlage seiner bibliophoben Tat liefert Google Drive, das mit 5 GByte genug Speicherplatz für ein Online-PDF-Lager mit eingescannten Büchern bietet.

  • Perl-Snapshot

    Ist Perlmeister Schilli unterwegs, weiß er gern, was daheim abgeht. Mit zwei Skripten bekommt er es hin, dass die angeschaffte Billigkamera über das Tumblr-API zyklisch Schnappschüsse auf der Micro-Blogplattform ablegt. Tierisch schick, diese Überwachung.

  • Google lädt zum Test von OAuth 2.0

    Im OAuth 2.0 Playground können Programmierer das Verfahren zur Authentifizierung im Web testen.

  • Openauth und Archivierung fürs IM in Sugar CRM

    Der Artikel im Linux-Magazin beschreibt, wie die neue Cloud-API in Sugar CRM Dropbox und Pidgin nutzen kann, um die Instant-Messaging-Kommunikation innerhalb des Customer Relationship Managements abzulegen und sie einem Kontakt oder Kunden zuordnet. Dieser Online-Plus-Artikel beschreibt, wie dabei Open Auth und die Archivierung der Dropbox-Inhalte von statten geht.

comments powered by Disqus

Ausgabe 09/2016

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.