Hit24 - Aktueller Songtitel als Ticker für Tuxnews

Games, Plugins, Utils, Tools, 3rdParty, etc...
treckerfahrer
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Mittwoch 11. August 2004, 10:35

Hit24 - Aktueller Songtitel als Ticker für Tuxnews

Beitrag von treckerfahrer »

Da ich mich manchmal gefragt habe "wer ist das noch gleich, wie heisst der Song?", und ich die Titeleinblendung dann auch noch verpasst habe, dachte ich mir, man könnte auf der Hit24 Homepage nachsehen. Und dort wird tatsächlich auch der aktuelle Songtitel genannt (leider ohne das Jahr).

Weil ich aber nicht immer das Notebook an habe, habe ich ein kleines PHP-Script geschrieben, welches Interpret und Titel als Laufschrift in Tuxnews anzeigt:

hit24_rdf.php

Code: Alles auswählen

<?PHP
//=============================================================>
//               Hit-24 Songreader   V 0.11
//=============================================================>
//
// Liest den aktuell gespielten Song von der hit24.tv Website
// und erstellt ein XML-RDF

// Originalformat
// document.write("<b>Bruce Hornsby & The Range</b><br />Every Little Kiss (Live)");


// Socketverbindung zu hit24.tv
//==================================>
   $fp_a = @fsockopen("www.hit24.tv", 80);
   if ($fp_a) {
      @fputs ($fp_a, "GET /hit24-cms/playlist.jsp HTTP/1.0\r\n\r\n");
      while (!feof($fp_a)) {
         $fp_a_zeile = @fgets($fp_a,128);
         if (strstr($fp_a_zeile,"document.write")) $SongInfo = $fp_a_zeile;
      }
   }
   @fclose($fp_a);

// Interpret und Titel
//==================================>
   $split = explode ('<br />', $SongInfo, 2);
   $interpret = htmlspecialchars(substr($split[0], 19, -4));
   $titel = htmlspecialchars(substr($split[1], 0, -5));

// RDF erstelen und ausgeben
//==================================>

// XML header
header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header ('Content-Type: text/xml');

// XML body
$rdf  = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
$rdf .= "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://my.netscape.com/rdf/simple/0.9/\">\n";
$rdf .= "<channel>\n";
$rdf .= "    <title>Hit24 Aktueller Song</title>\n";
$rdf .= "    <link>http://www.hit24.tv/</link>\n";
$rdf .= "    <description>Zeigt den auf Hit24 zur Zeit gespielten Songtitel an</description>\n";
$rdf .= "</channel>\n";
$rdf .= "<item>\n";

if (!empty($SongInfo)) {
  $rdf .= "    <title>$interpret - $titel</title>\n";
  $rdf .= "    <link>http://www.hit24.tv</link>\n";
  $rdf .= "    <description>Aktueller Song: \"$titel\" von $interpret</description>\n";
} else {
  $rdf .= "    <title>Fehler beim Lesen</title>\n";
  $rdf .= "    <link>http://www.hit24.tv</link>\n";
  $rdf .= "    <description>Aktueller Song kann nicht ausgelesen werden!</description>\n";
}

$rdf .= "</item>\n";
$rdf .= "</rdf:RDF>";

// XML output
echo $rdf;
?>
Das Script muss nur noch auf einen Webserver hochgeladen werden (der natürlich PHP unterstützen sollte), und der neue Ticker muss der tuxnews.list hinzugefügt werden:
tuxnews.list

Code: Alles auswählen

Hit24 Aktueller Song = http://www.server.home/hit24/hit24_rdf.php
Ich weiss, der Code ist vielleicht nicht optimal, aber er funktioniert. Vorraussetzung ist natürlich, dass Hit24 nichts gravierendes an der Seite ändert (liebe Hit24 Redaktion, wir machen nichts böses ;) ).
Zuletzt geändert von treckerfahrer am Dienstag 19. April 2005, 12:01, insgesamt 4-mal geändert.
treckerfahrer
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Mittwoch 11. August 2004, 10:35

Beitrag von treckerfahrer »

Code geändert
+ flexibleres Auslesen
+ Anzeigen eines Auslesefehlers ;)
+ Umwandeln von Sonderzeichen
Zuletzt geändert von treckerfahrer am Dienstag 19. April 2005, 11:47, insgesamt 1-mal geändert.
heldgop
Einsteiger
Einsteiger
Beiträge: 153
Registriert: Dienstag 1. März 2005, 16:40

Beitrag von heldgop »

hi,

also wenn das richtig funktioniert mit den inet daten, also nicht so wie der werbezapper :roll: , is das ein echt geiles plugin.

ist es vieleicht möglich das irgendwie für nen laien installierbar zu machen? wie man ein plugin instaliert weis ich, aber mit dem text kann ich nix anfangen :cry:

vieleicht erbarmt sich ja einer und hilft dem noooob :lol:
treckerfahrer
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Mittwoch 11. August 2004, 10:35

Beitrag von treckerfahrer »

Genau genommen ist es kein eigenes plugin.
Genutzt wird das (eigentlich schon "vorinstallierte") plugin TuxNews-Newsticker. Das Script erstellt einen lesbaren Newsfeed aus den Daten der hit24-Webseite.
An Stelle von Nachrichten von heise oder N24 wird durch das Script hit24_rdf.php eben der aktuelle Titel und Interpret als Laufschrift über den TV ausgegeben.

Um das Ganze zum Laufen zu bringen muss man also für zwei Dinge sorgen:
1) Zum einen benötigt man Webspace mit PHP Unterstützung. Das Auslese-Script muss ja irgendwie laufen ;) Alternativ könnte man es auch über einen lokalen PHP Server laufen lassen. Mit einem Editor (bitte nicht W0rd!) eine Datei "hit24_rdf.php" erstellen und dort den Quellcode von oben reinkopieren. Diese Datei nun auf den Server kopieren.

2) Zum anderen muss der neue Nachrichtenticker in die Liste der Newsfeeds hinzugefügt werden. Einfach "/var/tuxbox/config/tuxnews/tuxnews.list" editieren wie oben angedeutet. Wichtig ist natürlich dabei, die Server-Adresse "www.server.home" auf seine eigenen Gegebenheiten anzupassen.

That's it.
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

habs mal testweise hier abgelegt..

http://tuxbox.trale.de/rdf/hit24_rdf.php

ob es da bleiben kann muß ich erstmal mit dem serverbetreiber absprechen.. ;)
ChakaZulu
Developer
Beiträge: 457
Registriert: Sonntag 23. März 2003, 00:39

Beitrag von ChakaZulu »

hi,

geht auch per skript, für alle ohne php-webserver, allerdings ohne
+ flexibleres Auslesen
+ Anzeigen eines Auslesefehlers
+ Umwandeln von Sonderzeichen
;)

Code: Alles auswählen

#!/bin/sh

URL="http://www.hit24.tv/hit24-cms/playlist.jsp"
GET="wget -O - -q"
HEAD="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>
<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://my.netscape.com/rdf/simple/0.9/\">
<channel>
  <title>Hit 24 Aktueller Song</title>
  <link>http://www.hit24.tv</link>
  <description>Zeigt den auf Hit24 zur Zeit gespielten Songtitel an</description>
</channel>"
TAIL="</rdf:RDF>"

CONTENT=`$GET $URL | sed -e 's§.*"<b>\(.*\)</b><br />\(.*\)".*§<title>\1 - \2</title>§'`

echo $HEAD
echo "<item>"
echo $CONTENT
echo "<link>http://www.hit24.tv</link>"
echo "<description>Aktueller Song</description>"
echo "</item>"

echo $TAIL

Ohne sed, aber mit cut:

Code: Alles auswählen

#!/bin/sh

URL="http://www.hit24.tv/hit24-cms/playlist.jsp"
GET="wget -O - -q"
HEAD="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>
<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://my.netscape.com/rdf/simple/0.9/\">
<channel>
  <title>Hit 24 Aktueller Song</title>
  <link>http://www.hit24.tv</link>
  <description>Zeigt den auf Hit24 zur Zeit gespielten Songtitel an</description>
</channel>"
TAIL="</rdf:RDF>"

CONTENT=`$GET $URL`
TITLE=`echo $CONTENT | cut -d ">" -f4|cut -d "\"" -f1`
INTERPRET=`echo $CONTENT | cut -d ">" -f2|cut -d "<" -f1`

echo $HEAD
echo "<item>"
echo "<title>$INTERPRET - $TITLE</title>"
echo "<link>http://www.hit24.tv</link>"
echo "<description>Aktueller Song: \"$TITLE\" von $INTERPRET</description>"
echo "</item>"
echo $TAIL


ciao,

ChakaZulu

p.s.: mir war gerade langweilig ;)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

toll, das ihr beide da mitmacht.
@dietmarw
was kann daran gefährlich sein für den server ? ist doch nichts verbotenes ? mit dem neuen urheberrecht ist das zwar so ne sache, aber vielleicht könnte man ja mal Hit24 fragen, was die dazu sagen
@ChakaZulu
auf, das es dir immer mal langweilig werde
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

mb405 hat geschrieben:@dietmarw
was kann daran gefährlich sein für den server ? ist doch nichts verbotenes ?...
ich weiß nur nicht was das für einen traffic verursacht,
wenn 2.783.462 dbox user ;) da ihren ticker abrufen..
aber bisher hat er nix dagegen :)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

alles klar
treckerfahrer
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Mittwoch 11. August 2004, 10:35

Beitrag von treckerfahrer »

Da Hit24 neben der Website selbst auch die Darstellung des aktuellen Songs verändert hat, funktionierte der bisherige Ticker nicht mehr...

Aber: Hit24 hat jetzt sogar eine Playlist der nächsten 3 Songs inkl. Uhrzeit online, die jetzt auch ausgelesen wird :)
(Die letzten 3 Titel sind auch dabei, fand ich aber für den Ticker nicht interessant...)

Das Ergebnis sieht dann ungefähr so aus:
JETZT 14:24 Liquido - "Narcotic"
14:28 Meredith Brooks - "Bitch"
14:32 Joe Cocker - "Summer In The City"
14:35 Fantastischen Vier - "MFG (Mit Freundlichen Grüssen)"
Dann mal quick&dirty für die Silvester-Party hier der neue Ticker ;)

hit24_rdf.php

Code: Alles auswählen

<?PHP
//=============================================================>
//					Hit-24 Songreader	V 0.3
// 31.12.2005												treckerfahrer
//=============================================================>

// Liest die Playlist von der hit24.tv Website und erstellt ein
// XML-RDF

	// Daten auslesen
	$NewStringRaw = file_get_contents("http://www.gameworker.de/goldstar_tv/playlist.php?show=true");

	// Filtern
	$cutPointEnd = strpos($NewStringRaw,"<br><br><a");
	$NewStringStart = substr($NewStringRaw,0,$cutPointEnd);
	$NewString = strstr($NewStringStart,'<b>');
	$NewString = str_replace(" ","",$NewString);
	$NewString = str_replace("\r\n"," ",$NewString);

	// Songs
	$Songs = explode("<br>",trim($NewString));
	foreach ($Songs as $key => $value) {
		$Songs[$key] = htmlspecialchars(trim(strip_tags($value)));
	}

	// XML header 
	header ('Cache-Control: private, pre-check=0, post-check=0, max-age=0');
	header ('Expires: ' . gmdate('D, d M Y H:i:s', time()) . ' GMT');
	header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
	header ('Content-Type: text/xml');

	// XML body
	$rdf = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
	$rdf .= "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://my.netscape.com/rdf/simple/0.9/\">";
	$rdf .= "<channel>";
	$rdf .= "    <title>Hit24 Songs</title>";
	$rdf .= "    <link>http://www.hit24.tv/</link>";
	$rdf .= "    <description>Zeigt den auf Hit24 zur Zeit gespielten Songtitel an</description>";
	$rdf .= "</channel>";
	
		foreach ($Songs as $Nr => $Titel) {
			if ($Nr==0) $Song = "JETZT ".$Titel;
			else $Song = $Titel;
			$rdf .= "<item>";
			$rdf .= "    <title>".$Song."</title>";
			$rdf .= "    <link>http://www.hit24.tv</link>";
			$rdf .= "    <description>".$Song."</description>";
			$rdf .= "</item>";
		}
	
	$rdf .= "</rdf:RDF>";
	
	// XML output
	echo $rdf;
?>
Verbesserungen werden bei Langeweile einfliessen ;)

Dann mal nen guten Rutsch! :D
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

treckerfahrer
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Mittwoch 11. August 2004, 10:35

Beitrag von treckerfahrer »

Super, danke Dir 8)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

goile sache
dank euch beiden
CmdKeen
Interessierter
Interessierter
Beiträge: 25
Registriert: Montag 10. Mai 2004, 11:36

Beitrag von CmdKeen »

Na, da muss ich ja mal FETT danke sagen....
Die Musikenthusiasten unter den d-boxlern werden ja doch eher stiefmütterlich behandelt (ich kenne immer noch kein Tool, welches mich bei einem yadi Image Radio am PC hören lässt, bekomme nie Ton).

Gruß
Keen
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

der ticker auf dem alten server
wird bald abgeschaltet..

bitte nur noch den neuen benutzen..
http://tuxbox2.trale.de/rdf/hit24_rdf.php
http://tuxbox2.trale.de/rdf
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

alter server abgeschaltet