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);
}