Source for "live365.com direct streamcast link"

By jk-
Has 35 other scripts.


// ==UserScript==
// @name           live365.com direct streamcast link
// @namespace      http://www.digivill.net/~joykillr
// @description    Get a direct streamcast link and playlist link for the live365 station and enable use without javascript.  Allows listening with winamp or player of choice.
// @include        http://*.live365.com/stations/*
// @include        http://live365.com/stations/*
// ==/UserScript==

//v 2.6
//updated element id for LIVE365 changes.
//v 2.5
// New "Easy Stream Link" now you don't ned to be logged in anymore.  A usable link will be created anyway.  Always wrap the url in quotes if pasting to a command line.
//v 2.0
// LIVE365 has rendered the "Direct Streamcast Link" pretty-much useless.  
// Now, the "Usable Stream Link" may be used for opening the stream with an external program of your choice.
// However, you must have an account and be logged in for this link to be created.

function getCookie(c_name) {
if (document.cookie.length>0) {
  var c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1) { 
    c_start=c_start + c_name.length+1;
    var c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}

function getURL(t) {
GM_xmlhttpRequest({
	method:"GET",
	url:t,
	headers:{
		"User-Agent":"Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.12) Gecko/20080908 Firefox/2.0.0.16",
		"Accept":"text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
	},
	onload:function(details) {
		var ust=new String(details.responseText);
		if (ust){splitData(ust);};
	}
});
}

function specCook(w){
  var r=getCookie(w);
  if (r!=null && r!="")
  return r;
}
	
function sp(j,tte){
  var m=tte.split(j)[1];
  m=m.split('\"'||"\'")[1].split('\"'||"\'")[0];
  return m;
}

function splitData(tex){
if ((tex.indexOf("var\ play_params")!=-1)&&(tex.indexOf("var\ stationID")!=-1)&&(tex.indexOf("var\ token")!=-1)&&(tex.indexOf("var\ streamUrl")!=-1)){
	var tex1=sp("var\ play_params",tex);
	var newLnk="http\:\/\/www.live365.com\/play\/";
	var tex2=sp("var\ stationID",tex);newLnk+=tex2;
	var suprtex1 = sp("var\ nanocaster_params",tex);
	suprtex1 = suprtex1.split("\&tag\=")[1];
	insSuprLnk(newLnk+"\?auth\="+tex1.split("auth\=")[1]+"\&tag\="+suprtex1+"\&ss\=\&sid\=\&lid\=\&from\=pls");
	tex1=tex1.split("\&membername")[0];newLnk+="\?"+tex1;
	var tex3=sp("var\ token",tex);newLnk+="\&token\="+tex3;
	var ss,sid,lid;
	var sec=sp("var\ streamUrl",tex);
	ss=specCook("sessionid");
	sid=specCook("SaneID");
	lid=specCook("LID");
	if ((ss)&&(sid)&&(lid)){
		newLnk+="\&ss\="+ss+"\&sid\="+sid+"\&lid\="+lid+"\&from\=pls";
		insElem(newLnk,sec);
	} else if (((!ss)||(ss==""))||((!sid)||(sid==""))||((!lid)||(lid==""))){
		var lnkAlt=document.createElement("a");
		lnkAlt.href="http\:\/\/www\.live365\.com\/members\/login\.live\?action\=none";
		lnkAlt.textContent="Login";
		lnkAlt.innerHTML=lnkAlt.innerHTML+"\<br\ \/\>";
		naddElem(lnkAlt);
		if ((sec)&&(sec!="")){insElem2(sec);};
	}
}
}

function insElem(nl,nn){
	var lnk2=document.createElement("a");
	lnk2.href=nl;
	lnk2.textContent="Direct\ Playlist\ Link";
	lnk2.innerHTML=lnk2.innerHTML+"\<br\ \/\>";
	naddElem(lnk2);
	insElem3(nl);
	if((nn)&&(nn!="")){insElem2(nn);};
}

function insElem2(su){
	var lnk3=document.createElement("a");
	lnk3.href="http\:\/\/"+su;
	lnk3.textContent="Direct\ StreamCast\ Link \(old\)";
	lnk3.setAttribute("style", "font-size\:88\% \!important\; color\: \#777777 \!important\;");
	naddElem(lnk3);
}

function insElem3(nl){
	var lnk3=document.createElement("a");
	nl = "http://www.live365.com:80/play"+nl.split("/play")[1];
	nl = nl.split("&token")[0] + '&token=&ss=&sid=&lid=&from=pls';
	lnk3.href=nl;
	lnk3.textContent="Usable\ Stream\ Link";
	lnk3.innerHTML=lnk3.innerHTML+"\<br\ \/\>";
	naddElem(lnk3);
}

function insSuprLnk(vv){
	var suprlnk=document.createElement("a");
	//suprlnk.href="http\:\/\/"+vv;
	suprlnk.href=vv;
	suprlnk.textContent="Easy\ Stream\ Link";
	suprlnk.innerHTML=suprlnk.innerHTML+"\<br\ \/\>";
	naddElem(suprlnk);
}

function insLlnnkk(vv){
var llnnkk = document.createElement("a");
	llnnkk.href=vv;
	llnnkk.innerHTML='<img src="http://www.live365.com/scp/live365/images/listen-la-rad-reg.gif" />';
	llnnkk.textContent="Play Stream";
	llnnkk.innerHTML=llnnkk.innerHTML+"\<br\ \/\>";
	if (document.getElementById("station_logo")) {document.getElementById("station_logo").insertBefore(llnnkk,document.getElementById("station_logo").lastChild);}
	else if (document.getElementById("station_info")) {document.getElementById("station_info").insertBefore(llnnkk,document.getElementById("station_info").lastChild);}
	else {document.appendChild(llnnkk);}
}

function naddElem(ag1) {
if (document.getElementById("station_logo")) {document.getElementById("station_logo").appendChild(ag1);}
	else if (document.getElementById("station_info")) {document.getElementById("station_info").appendChild(ag1);}
	else {document.appendChild(ag1);}
}

var l = window.content.location.href.toString();
if (!l.match(/\/schedule$/i)){
	var ty="0";
	var lsp=l.split("\/");
	var go="http\:\/\/www\.live365\.com\/cgi-bin\/mini\.cgi\?membername\=";
	var ln=lsp.length;
	go+=lsp[ln-1];
	go+="\&site\=live365";
	go+="\&source\=\&clientType\="+ty;
	go+="\&playlist\=\&odatrack\=\&odapos\=\&station_status\=OK";
	go+="\&streamid\="+"\&station_name\="+lsp[ln-1];
	var escURL = encodeURIComponent(go);
	go+="\&url\="+escURL;
	var tm=new Date();
	go+="\&tm\="+tm.getTime();
	insLlnnkk(go);
//	insSuprLnk();
	getURL(go);
}