Go Back   Winamp & Shoutcast Forums > Shoutcast > Shoutcast Discussions

Thread Tools Search this Thread Display Modes
Old 17th May 2011, 20:33   #1
Junior Member
Join Date: May 2011
Posts: 2
How can I make a way to embed the last 10 songs played into my website in html code

Is their a way to embed or create a way to have the last 10 songs that were played appear on our radio staiton page? Like a certain script or something? i could do with it in html code i have one in php but it dont work

PHP Code:

// last10.php -- get and display last n tracks... 
// URL syntax: 
// last10.php?host={http://s3.myradiostream.com}&port={58074}&n={lastN} 
// {bracketed} items need to be replaced or they will default as below. 
// I can return Javascript or HTML only. 

/* keep warnings from our output */ 

// -- Server Info here -- // 

$yourIP    'http://s3.myradiostream.com'
$yourPORT  '58074'

// -- Tweak Display Here -- // 

$bgcolor   '#ffffff'// Page background color 
$tablew    '400';     // Table width 
$toprow    '#c0c0c0'// Top background color 
$bottom    '#ffffff'// Bottom background color 
$border    '#000000'// Border color 
$thickness '2';       // Border thickness 
$padding   '4';       // Cell padding 
$font      'Verdana'// Font 
$fontsize  '2';       // Font size 

$refresh   '30';      // How often should it refresh? (seconds) 

// Return JavaScript or HTML 
$jsOutput=FALSE// TRUE=js | FALSE=HTML 

// try to get the target from the url... 
$host $_REQUEST***91;host***93;; 
if (!
$host$host $yourIP
$port $_REQUEST***91;port***93;; 
if (!
$port$port $yourPORT

$lf chr(10); // 0x0A ***91;\n***93; 

// The lastN is configurable at the DNAS with, ShowLastSongs= it defaults to 10 and has a maximum of 20 
$t_max $_REQUEST***91;n***93;; 
if (!
t_max || $t_max<|| $t_max>19$t_max=10
//19 is the max here because 20=current_track+19 

// Let's get /index.html first... to keep this short, there is no code to handle the dnas being down 
// or not running, so the script will display nothing in those cases. 


$fp1 fsockopen($host$port, &$errno, &$errstr$connect_timeout); //open connection 
if(!$fp1) { //if this fails, I'm done.... 
} else { 
$request="GET /index.html HTTP/1.1\r\nHost:" $host ":" $port "\r\nUser-Agent: SHOUTcast DNAS Status ***91;index***93; * (Mozilla/PHP)\r\nConnection: close\r\n\r\n"//get index.html 
feof($fp1)) { 
$page .= fread($fp116384); 


// now I have the entire /index.html in $page -- all I want from here is the current track... 
// (hint-hint) 

$song00 ereg_replace("</b></td>.*"""ereg_replace(".*Current Song: </font></td><td><font class=default><b>"""$page)); // easy, right <img src="images/smilies/smile.gif" border="0" alt=""> 

// now let's get /played.html... (this is kinda long) 
$fp fsockopen($host$port, &$errno, &$errstr$connect_timeout); 
$fp) { //if connection could not be made 

} else { 
$request="GET /played.html HTTP/1.1\r\nHost: " $host ":" $port "\r\nUser-Agent: SHOUTcast DNAS Status ***91;played***93; * (Mozilla/PHP)\r\n"."Connection: close\r\n\r\n"
while (!
feof($fp)) { 
$page .= fread($fp16384); 

fclose($fp); //close connection 

if (
$played_html) { 
$played_htmlereg_replace('<x>','|-|',ereg_replace('</tr>','',ereg_replace('</td><td>','<x>',ereg_replace('<tr><td>','',ereg_replace('</tr>','</tr>' $lf,ereg_replace('-->','--***93;',ereg_replace('<!--','***91;!--',ereg_replace('</table><br><br>.*','',ereg_replace('.*<b>Current Song</b></td></tr>','',$played_html))))))))); 
while (
$r<$xxn $t_count<=$t_max){ 
if (
if (
$reading==1$track***91;$t_count***93; .= $cur
if (
$cur=="|" substr($played_html,$r-1,1)=="-" substr($played_html,$r-2,1)=="|") { 


// I now have $track***91;0-N***93; containg the current plus last N tracks... 
// Output time... 

if ($success==0) { 

if (
$jsOutput) { // JavaScript - used as <script src=...></script> 
header('Content-type: text/javascript'); 
} else { 
// HTML... (iFrames anyone?) 
echo '<HTML> 
$track***91;0***93; . '</title> 
<meta http-equiv="refresh" content="' 
$refresh ';URL=' $_SERVER***91;'PHP_SELF'***93; . '?host=' $host '&port=' $port '"> 
<BODY bgcolor=' 
$bgcolor '>'


//tweak the output string (the table init) here.... 
$output_string .= '<table width="' $tablew '" style="border-collapse: collapse" border="' $thickness '" bordercolor="' $border '"><tr bgcolor="' $toprow '"><td> 
<table width="100%" border="0" cellpadding="' 
$padding '"><tr><td> 
<font face=' 
$font ' size=' $fontsize '>'//Now playing...  

while ($r<=$t_max){ 
if (
$r==0$output_string .= 'Now Playing:<br> <b>'.str_replace("'""'",str_replace('"''"',$track***91;$r***93;)).'</b></td></tr></table></td></tr><tr><td><table bgcolor=' $bottom ' width="100%" border="0" cellpadding="' $padding '"><tr><td><br><font face=' $font ' size=' $fontsize '><i>Before that you heard:</i><br><br>'
$output_string .= str_replace("'""'",str_replace('"''"',$track***91;$r***93;)) . '<br>'


// I also want to close the table code now.... 
$output_string .= '</td></tr></table></td></tr></font></td></tr></table>'

if (
$jsOutput) { 
"document.write('" $output_string "');"
} else { 
$output_string '</body></html>'

} else { 
// I couldn't connect to the DNAS 
if ($jsOutput) echo "document.write('Off Air');"
   else echo 
<BODY bgcolor=" 
$bgcolor "><font face=" $font " size=" $fontsize ">Server is <b>Off-Air</b>, try again later.</body></html>"

froggyrichy2 is offline   Reply With Quote
Old 18th May 2011, 06:58   #2
Forum King
hackerdork's Avatar
Join Date: Feb 2006
Location: Earth Circa sometime.
Posts: 3,297
scripts need to be in php, perl, python or other language to RUN.

you should point to http://url.of.stream:PORT/played.html (this is an example) as played.html is automatically generated by shoutcast

parsing the last played inst too difficult but your webhost MUST and I mean MUST have the ability for you to run scripts like php. if you are using a free hosting site or other that does not support PHP that you are out of luck

// by dstjohn a t spacialaudio.com
// there are many ways to do this, below are 4.

//change to shoutcast server url location
$host = "###.###.###.###"

$port = "8000";
$fp = @fsockopen("$host", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
$success=2; //set if no connection
if($success!=2){ //if connection
fputs($fp,"GET /7.html HTTP/1.0\r\nUser-Agent: SHOUTcast Playing (Mozilla Compat
ible)\r\n\r\n"); //get 7.html
while(!feof($fp)) {
$page .= fgets($fp, 1000);
@fclose($fp); //close connection
$page = ereg_replace(".*<body>", "", $page); //extract data
$page = ereg_replace("</body>.*", ",", $page); //extract data
$numbers = explode(",",$page); //extract data
$currentlisteners = $numbers[0]; //set variable
$whatsplaying = $numbers[6]; //set variable

echo 'Now Playing : ';
echo $whatsplaying;

more info http://forums.winamp.com/showthread.php?t=330611

does work . I have it running on my site, which of course can run php just fine

~ According to the ship's log we're down to our last 3000 vomit bags.It'll never be enough.
search the forums! don't PM me on how-to, or ask me to setup you system. you do it so you learn.
hackerdork is offline   Reply With Quote
Go Back   Winamp & Shoutcast Forums > Shoutcast > Shoutcast Discussions

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump