laut.fm Now Playing Script

Mir ging der Flashplayer auf den Sack, also hab ich mich heute mal dran gesetzt ein kleines Script zu schreiben das den XML Feed einer laut.fm Station ausliest und als reinen Text ausgibt. Der Vorteil liegt zum einen darin dass das Ding wesentlich schneller läd als der Flashplayer, und man zum anderen mit den Infos (Artist, Titel, Bild, etc.) machen kann was man will.

So hab ich z.B. (Partner-)Links zu Amazon und HHV eingebunden, die angezeigt werden sofern zum jeweiligen Track auch das entsprechende Album hinterlegt wurde.

Jeder PHP-Entwickler kriegt bei dem Ding wahrscheinlich Kopfschmerzen weil ich’s mir einfach zusammenkopiert hab und so ziemlich 0 Ahnung von der Materie habe. Aber es funktioniert, und das ist in meinen Augen das wichtigste. Ein paar Probleme gibt’s noch, z.B. funktioniert die Abfrage nach dem Künstlerbild nicht richtig. Sofern keins hinterlegt ist soll eigentlich das Stationsbild angezeigt werden. Aber irgendwie klappt das nicht.

Mit &-Zeichen im Artist-Feld gab’s auch Probleme, laut.fm ersetzt die nicht durch &amp, was wiederum dazu führt dass der Feed (und damit auch das Script) geschrottet wird. Ich hab einfach ein str_replace davor gesetzt, nun scheint’s zu funktionieren.

Wer mag kann sich das Ding gerne klauen und für seine eigene Station benutzen. Einfach als .php Datei abspeichern, die URL zum Feed und die Partnerlinks natürlich entsprechend anpassen, und dann die Datei an der entsprechenden Stelle im Blog-Template includen.

Falls unter meinen Lesern jemand sein sollte der weiss wie man das schöner coden kann oder wie man das Problem mit dem Bild in den Griff kriegt wär’s natürlich super wenn ihr einfach nen Kommentar drunter packt.

Vielleicht kann man daraus ja sogar ein WordPress Plugin basteln. Hab ich zwar noch nie gemacht, aber die Eingaben die man machen muss wenn man’s benutzen will beschränken sich ja auf die Stations-ID und vielleicht ein Feld in dem man das Template bearbeiten kann. Sollte ja im Grunde nicht der Aufwand sein.

Das Ergebnis könnt ihr übrigens rechts in der Sidebar begutachten – einfach oben rechts das “About” anklicken damit die Box ausklappt (das “About” wird dann beizeiten auch noch in “Radio” geändert).

<?php
$tracks = simplexml_load_file('http://www.laut.fm/user/hawaii_fm/jetzt.xml');
 
$song = str_replace("&", "&amp;", $tracks->tracks[0]->track[0]->title);
$artist = str_replace("&", "&amp;", $tracks->tracks[0]->track[0]->artist[0]->name);
$image = $tracks->tracks[0]->track[0]->artist[0]->image;
$url = $tracks->tracks[0]->track[0]->artist[0]->url;
$album = $tracks->tracks[0]->track[0]->record;
$jahr = $tracks->tracks[0]->track[0]->year;
?>
<img src="/wp-content/images/hawaiifm.png" width="280" height="79" alt="hawaii.fm logo" />
<p><strong>NOW PLAYING:</strong></p>
<?php
if (empty($image))
{
echo '<img src="http://aloha.cassiopeia.uberspace.de/wp-content/images/user.jpg" alt="hawaiifm logo" class="artistimg" />';
}
else
{
echo '<img src="', $image, '" alt="', $artist, '" class="artistimg" />';
}
 
?>
 
<p class="songinfo">
 
<?php
 
if (empty($url))
{
echo '<strong>Artist:</strong> ', $artist, '<br />>';
}
else
{
echo '<strong>Artist:</strong> <a href="', $url, '">',$artist, '</a><br />';
}
echo '<strong>Titel:</strong> ', $song, '<br />';
 
if (empty($album))
{
echo '<strong>Album:</strong> Unbekannt';
}
else
{
echo '<strong>Album:</strong> ',$album, '<p>Album suchen &amp; Kaufen bei: <a href="http://www.amazon.de/gp/search?ie=UTF8&keywords=', $album, '&amp;tag=alohastone-21&amp;index=music&amp;linkCode=ur2&amp;camp=1638&amp;creative=6742">Amazon</a><img src="http://www.assoc-amazon.de/e/ir?t=alohastone-21&amp;l=ur2&amp;o=3" width="1" height="1" border="0" alt="amazon" style="border:none !important; margin:0px !important;" /> oder <a href="http://www.hhv.de/index.php?action=topSearch&match=', $album, '&cid=1214929417">HHV</a> (und damit alohaWEBLOG supporten!)</p>';
}
?>
Also on 

Comments

6 responses
  1. Marc says:

    Schönes Ding. Wird geklaut bei Gelegenheit. ;)

  2. Roman says:

    Na das wird doch so langsam was mit dem neuen Design.
    Finde auch deine neue Laut.fm einbindung sehr gelungen.

    Go for it !

  3. pEtEr says:

    Gute Idee und gute Umsetzung;)
    Werde auch gleich mal deine Frage bei mir beantworten, dann kannst du auch nach iTunes mit rein nehmen.

  4. bnr says:

    protip: benutz urlencode($blah) statt str_replace(“&”, “&”, $blah)!

  5. dom says:

    Call to undefined function: simplexml_load_file()

    muss man da ein spezielles php modul nachinstallieren?

    danke / gruß
    dom

  6. alohastone says:

    Simple XML muss dafür installiert sein. Ist aber bei PHP5 dabei und standardmäßig aktiviert. Sofern dein Hoster noch mit PHP4 arbeitet hilft dir vielleicht das hier weiter:

    http://bueltge.de/simplexml-mit-php-4/629/

Leave A Comment

*