There are 24 previous versions of this script.
// ==UserScript==
// @name Youtube Video Download Linker
// @namespace http://www.digivill.net/~joykillr
// @description A video download linker for youtube. Provides download links on youtube video pages. Does not need javascript enabled for youtube.com and does not use a third-party website.
// @include http://*.youtube.com/*
// @include http://youtube.com/*
// ==/UserScript==
//v 1.9.8.8
var a1,a2,a22,b3,na,nasp,xp,scrhead = document.getElementsByTagName("script"), titlevar = parseTV(document.getElementById("eow-title").innerHTML.toString());
function addBox(strR,last,tln) {
cnt1 = cnt1 + 1;
var flv = document.getElementById("gmdltd").getElementsByTagName("a");
if (cnt1>1) {
for (var fl = 0; fl < flv.length; fl++) {
flv[fl].id = "";
if (fl<2) {if (flv[fl].href.indexOf("&title")==-1) {flv[fl].href+="\&title\="+titlevar+".mp4";}}
else {if (flv[fl].href.indexOf("&title")==-1) {flv[fl].href+="\&title\="+titlevar}}
}}
var URLDLbox = document.createElement("a");
URLDLbox.title = titlevar;
URLDLbox.className = "gm-action-button";
URLDLbox.href = strR;
URLDLbox.setAttribute("style", "text-align:center; width:auto; color: rgb(0, 51, 204); display: inline; height: auto; margin-left: auto; margin-right: auto; padding-left:5px; padding-right:5px;");
//URLDLbox.id = "GMdownloadButton";
URLDLbox.id = "gmlinklast";
var dlb1 = document.createElement("span");
dlb1.className = "action-button-leftcap";
dlb1.setAttribute("style", "vertical-align:baseline!important; padding-left:5px; margin-left: auto;");
URLDLbox.appendChild(dlb1);
var dlb2 = document.createElement("span");
dlb2.className = "action-button-text";
if (cnt1==1) {dlb2.textContent = "Download MP4";}
else if (last==1) {dlb2.textContent = "Download FLV";}
else {dlb2.textContent = "Download";}
dlb2.setAttribute("style", "vertical-align:baseline!important;");
URLDLbox.appendChild(dlb2);
var dlb3 = document.createElement("span");
dlb3.className = "action-button-rightcap";
dlb3.setAttribute("style", "vertical-align:baseline!important; padding-right:5px; margin-right: auto;");
URLDLbox.appendChild(dlb3);
document.getElementById("gmdltable").setAttribute("style","display: block !important; visibility: visible !important; text-align: center!important; margin-left: auto!important; margin-right: auto!important; width:auto; height:auto; padding-left:25%; padding-right:20%;");
document.getElementById("gmdltd").appendChild(URLDLbox);
}
function parseTV(h) {
h = unescape(h);
h = h.replace(",","_").replace("!","").replace(" ","_").replace("&","_").replace("*","-").replace("@","_").replace("#","_").replace("$,","_").replace("%","_").replace("^","_").replace("~","_").replace("\/","_").replace("\\","_").replace("'","_").replace('"','_').replace(';','_').replace(':','_');
while (!h.charAt(0).match(/[a-zA-Z0-9]/i)&&h.length>1) {
h = h.substr(1);
}
return(h);
}
function cleanArg(bb){
if (bb.indexOf('"')>=10) {bb = bb.split('"')[0];}
else if (bb.indexOf('"')<10) {bb = bb.split('"')[1].split('"')[0];}
return bb;
}
function procURLS(na) {
na = cleanArg(na);
na = unescape(na);
na = na.replace(/\\\//mgi,"/");
nasp = na.split(/\|/);
nasp = cleanArray(nasp);
for (x=0;x<nasp.length;x++) {
if (nasp[x].indexOf("http")==-1||(nasp[x].indexOf("lscache")==-1&&nasp[x].indexOf(".lga")==-1&&nasp[x].indexOf(".cache")==-1)) {
nasp.splice(x,1);
}
}
for (x=0;x<nasp.length;x++) {
if (nasp[x].indexOf("http")!=-1&&(nasp[x].indexOf("lscache")!=-1||nasp[x].indexOf(".lga")!=-1||nasp[x].indexOf(".cache")!=-1||nasp[x].indexOf("nonxt")!=-1)&&nasp[x].indexOf("videoplayback")!=-1) {
nasp[x] = nasp[x].replace(/\\u0026/gmi,"&");
var fpt = nasp[x].split("&signature")[0]+"&signature";
if (nasp[x].split("&signature")[1].indexOf(",")!=-1) {nasp[x] = fpt+nasp[x].split("&signature")[1].split(/\,/)[0];}
if (nasp[x].indexOf("&csi_page_type")!=-1) {nasp[x] = nasp[x].split("&csi_page_type")[0];}
if (nasp[x].indexOf("&redirect_counter")!=-1) {nasp[x] = nasp[x].split("&redirect_counter")[0];}
if ((x+1)==nasp.length) {xp = 1;} else {xp = 0;}
if (document.getElementById("gmdltd").innerHTML.indexOf(decodeURIComponent(nasp[x]).replace(/\&/g,'&'))==-1) {
addBox(decodeURIComponent(nasp[x]),xp,nasp.length);
}
var fpt = "";
}
}
}
function cleanArray(act){
var newAr = new Array();
for(var x = 0; x<act.length; x++){
if (act[x]){
newAr.push(act[x].toString());
}
}
return newAr;
}
function runIt(a1) {
a2 = ""; a22 = "";
for (b3=0; b3<a1.length; b3++) {
if (a1[b3].innerHTML.indexOf("swfArgs")!=-1||a1[b3].innerHTML.indexOf("CFG_SWF_ARGS")!=-1||a1[b3].innerHTML.indexOf("SWF_ARGS")!=-1||a1[b3].innerHTML.indexOf("swfHTML")!=-1) {
if (a1[b3].innerHTML.indexOf("fmt_url_map")!=-1&&a1[b3].innerHTML.indexOf("GMdownloadButton")==-1) {
if (a1[b3].innerHTML.indexOf('"fmt_url_map"')!=-1) {
a2 = a1[b3].innerHTML.split('"fmt_url_map"')[1].split("}")[0];
} else if (a1[b3].innerHTML.indexOf('&fmt_url_map=')!=-1){
a2 = a1[b3].innerHTML.split('&fmt_url_map=')[1].split("}")[0];
}
if (a2.indexOf(",")!=-1) {a2 = a2.split(",")[0];}
break;
}
}
}
if (a2!=""&&a2!=null) {
procURLS(a2);
} else {
for (b3=0; b3<a1.length; b3++) {
if (a1[b3].innerHTML.indexOf("fmt_url_map")!=-1&&a1[b3].innerHTML.indexOf("GMdownloadButton")==-1) {
a22 = a1[b3].innerHTML.split('fmt_url_map')[1].split("}")[0];
var n12 = a22.indexOf("http");
if (n12>0) {
a22 = a22.substr(n12);
}
procURLS(a22);
break;
}
}
}
}
var wclh = window.content.location.href.toString();
if (typeof GM_addStyle === 'function') {GM_addStyle('#browser-upgrade-box, #browser-upgrade-outer-box {display: none !important; visibility: hidden !important;}');}
else if (document.getElementsByTagName("style")[0]) {document.getElementsByTagName("style")[0].innerHTML = document.getElementsByTagName("style")[0].innerHTML+"#browser-upgrade-box, #browser-upgrade-outer-box {display: none !important; visibility: hidden !important;}"}
if (scrhead!=null&&scrhead!=""&&(wclh.indexOf("/watch?")!=-1)) {
if (window.navigator.cookieEnabled) {
document.cookie = "GEO=;";
document.cookie = "use_hitbox=;";
document.cookie = "VISITOR_INFO1_LIVE=;";
document.cookie = "recently_watched_video_id_list=;"
}
var dldiv = document.createElement("div");
dldiv.setAttribute("style","text-align: center!important; margin-left: auto!important; margin-right: auto!important; width:auto; height:auto;");
var dltable = document.createElement("table");
dltable.innerHTML = '<tbody style="text-align: center!important; margin-left: auto!important; margin-right: auto!important;"><tr><td id="gmdltd" style="margin-left: auto!important; margin-right: auto!important; text-align: center!important;"></td></tr></tbody>';
dltable.id = "gmdltable";
dltable.setAttribute("style","text-align: center!important; display: none; visibility: hidden;");
dldiv.appendChild(dltable);
if (document.getElementById("pagetop")) {document.getElementById("pagetop").appendChild(dldiv); } else {document.body.insertBefore(dldiv, document.body.firstChild);}
cnt1 = 0;
runIt(scrhead);
}
if (document.getElementById("gmlinklast")) {
var g = document.getElementById("gmlinklast");
g.textContent = "Download FLV";
if (g.href.indexOf("&title")==-1) {
g.href+="\&title\="+titlevar+".flv";
}
}