29 June, 2014

UserJS: YouTube Video Download Button


 This script  makes a download button for videos on YouTube. It also shows available qualities.

Best to use together with this script.
There are two versions: one for old Opera 12 and another for Firefox . I still use the old Opera, so the script for Opera is better tested
YouTube Video Download Button:
Download  for Opera 12
Download  for Firefox version


Save the script in unicode.

▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌

// ==UserScript==
// @name YouTube Video Download Button; Opera 12
// @author Drozdman
// @include *.youtube.com/*
// ==/UserScript==






window.addEventListener('DOMContentLoaded',function(){
if(window.location.href.match('youtube.com/watch')){
YT_Download_Button.init();
}
} ,false)


var GetYouTubeVideo = {
Get_vid_links: function(){
//var ytplayer= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
var encoded_vid_links = ytplayer.config.args.url_encoded_fmt_stream_map;
var vid_links=encoded_vid_links.split(",");
vid_links=vid_links.map(function (url) {
var vid_size;
var itag=url.match(/itag=\d+/);
var fallback = url.match(/fallback_host=([^&]+)/);
//var sig = url.match(/signature([^&]+)/);
var link = url.match(/url=([^&]+)/)[1];
var obj_item = {};
obj_item.url = link + "%26signature%3D" //+ sig[1].replace('%3D','');
  if(fallback && fallback[1])obj_item.url = obj_item.url.replace(/(http%3A%2F%2F)[^%]+/, "$1" + fallback[1]);
obj_item.url = unescape(obj_item.url);
obj_item.itag = itag[0];
return obj_item
});
return vid_links
},

availableFormats: function(itag){
var vid_links = GetYouTubeVideo.Get_vid_links();
var streams=GetYouTubeVideo.defaultStreams;
var formats ={};
for(var i in vid_links){
formats[i]=vid_links[i].itag;
formats[formats[i]]=formats[i];delete formats[i];
};
for(var key in formats){
for(var j=0;j<streams.length;j++){
if(formats[key]===streams[j].itag)
{formats[key]=streams[j]; delete formats[key].itag }
}
}
var tip=formats[itag];
return {
all:JSON.stringify(formats),
tooltip: JSON.stringify(tip)
}
},
Get_title: function(){
var title = document.querySelector("#eow-title,#watch-headline-title").textContent.trim();
var user_name = document.getElementsByClassName('yt-user-info')[0].getElementsByTagName('a')[0].innerHTML.toString();
var vid_id = window.location.search.match(/v=([^&]+)/)[1];
var date= document.getElementById('watch-uploader-info').textContent.replace(/\Published on /g,'').trim();
title = title.replace('? ','').replace(/(\r\n|\n|\r)/gm,'').replace(/\?/g,'¿').replace(/:/g,' - ').replace(/\x22/g,'”').replace(/\|/g,'•').replace(/\\/g,'-').replace(/\*/g,'•').replace(/\//g,'-').replace(/\'/g,'”').replace('!','') + ' •' +user_name+ ' • ' + date + ' • ' + vid_id +' ';
title = title.replace(/wwwMOXNEWScom|MOXNEWSd0tC0M/,'MOXNEWS');
title = title.replace(/MichaelSavage4Prez/,'Savage4Prez');
title = title.replace(/TheAlexJonesChannel/,'Alex Jones');
title.replace(/\s+/g, " ");
title = encodeURIComponent(title);
return title
},
Get_url_LowQ: function(){
var links=GetYouTubeVideo.Get_vid_links();
var vid_link=links[links.length-1].url+'&title=' + GetYouTubeVideo.Get_title();
return vid_link
},
Get_url_144p:function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=17" ){vid_link=links[j].url+'&title=' + this.Get_title();}
}
return vid_link
},
Get_url_144p_MP4:function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=160" ){vid_link=links[j].url+'&title=' + this.Get_title();}
}
return vid_link
},

Get_url_360p:function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=18" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();}
};//|| links[j].itag=="itag=34"
var Formats=GetYouTubeVideo.availableFormats("itag=18").tooltip;
return vid_link
},
Get_url_480p:function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=35" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();} //83
};//|| links[j].itag=="itag=34"
var Formats=GetYouTubeVideo.availableFormats("itag=18").tooltip;
return vid_link
},
Get_url_240p: function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=5" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();}
}
return vid_link
},
Get_url_240p_MP4: function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=133" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();}
}
return vid_link
},

Get_url_720p: function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=22" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();}
}
return vid_link
},

defaultStreams: [
{itag: "itag=5", width: 320, height: 240, container: "FLV" , acodec:"MP3",vcodec: "H.263" },
{itag: "itag=17", width: 176, height: 144, container: "3GPP", acodec:"AAC",vcodec: "MPEG-4",vprofile: "Simple" },
{itag: "itag=18", width: 640, height: 360, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "Baseline", level:3.0 },
{itag: "itag=22", width: 1280, height: 720, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High" , level:3.1 },
{itag: "itag=34", width: 640, height: 360, container: "FLV" , acodec:"AAC",vcodec: "H.264" ,vprofile: "Main" , level:3.0 },
{itag: "itag=35", width: 854, height: 480, container: "FLV" , acodec:"AAC",vcodec: "H.264" ,vprofile: "Main" , level:3.0 },
{itag: "itag=36", width: 320, height: 240, container: "3GPP", acodec:"AAC",vcodec: "MPEG-4",vprofile: "Simple" },
{itag: "itag=37", width: 1920, height: 1080, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High" , level:3.1 },
{itag: "itag=38", width: 2048, height: 1536, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High" , level:3.1 },
{itag: "itag=43", width: 640, height: 360, container: "WebM", acodec:"Vorbis",vcodec: "VP8" },
{itag: "itag=44", width: 854, height: 480, container: "WebM", acodec:"Vorbis",vcodec: "VP8" },
{itag: "itag=45", width: 1280, height: 720, container: "WebM", acodec:"Vorbis",vcodec: "VP8" },
{itag: "itag=46", width: 1920, height: 1080, container: "WebM", acodec:"Vorbis",vcodec: "VP8" },
{itag: "itag=82", width: 640, height: 360, container: "MP4" , acodec:"AAC",vcodec: "H.264",vprofile: "Baseline", level:3.0,stereo3d:true},
{itag: "itag=83", width: 854, height: 480, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "Baseline", level:3.1,stereo3d:true},
{itag: "itag=84", width: 1280, height: 720, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High", level:3.1,stereo3d:true},
{itag: "itag=85", width: 1920, height: 1080, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High", level:3.1,stereo3d:true},
{itag: "itag=100", width: 640, height: 360, container: "WebM", acodec:"Vorbis",vcodec: "VP8" ,stereo3d:true},
{itag: "itag=101", width: 854, height: 480, container: "WebM", acodec:"Vorbis",vcodec: "VP8" ,stereo3d:true},
{itag: "itag=102", width: 1280, height: 720, container: "WebM", acodec:"Vorbis",vcodec: "VP8" ,stereo3d:true},
{itag: "itag=133", width: 320, height: 240, container: "MP4",},
{itag: "itag=134", width: 480, height: 360, container: "MP4",},
{itag: "itag=135", width: 640, height: 480, container: "MP4",},
{itag: "itag=160", width: 256, height: 144, container: "MP4",},
],

}




//================================================================================



var YT_Download_Button = {
init: function(){
YT_Download_Button.Download_Button();
YT_Download_Button.Show_Button();
YT_Download_Button.Show_Menu_Button();

var show_button=document.getElementById('show_button');
var show_menu_button=document.getElementById('show_menu_button');

show_button.onmouseover =function(){
show_menu_button.style.visibility="visible";

this.childNodes[0].textContent=YT_Download_Button.Get_Video_quality();//+"•";
YT_Download_Button.change_list_avail();
}


show_button_f=function(){
YT_Download_Button.Play_Video()
show_button.removeEventListener('click',show_button_f ,false) ;
show_button.title="";//"Stop";
show_button.addEventListener('click',YT_Download_Button.Stop_Video ,false)
};

show_button.addEventListener('click',show_button_f ,false)



del_menu=function(){
var button_menu=document.getElementById('my_button_menu');
show_menu_button.style.visibility="hidden";
if(button_menu){button_menu.parentNode.removeChild(button_menu)};
}

document.addEventListener('click',del_menu ,false) ;


},

Download_Button: function(){
var button =document.createElement('span');
var button_open =document.createElement('span');
button_open.style.margin="2px";button_open.style.padding="4px";//button_open.style.fontSize="14px";
button_open.style.cursor="help";
button_open.innerHTML="&nbsp▼ "; //▼ ▲ ↓
button.appendChild(button_open);
//var text = document.createTextNode("Download Video "); button.appendChild(text);//Download Button
var text =document.createElement('span');
text.innerHTML="Download Video";
//text.style.padding="2px";
button.appendChild(text);
button_open.style.fontWeight="700"; button.style.fontWeight="700";
button.style.position="relative";

button.style.background= "#8E0404"; button.style.color= "#E7E7E7";
button.style.padding="6px 8px 6px 0px";
button.style.fontSize="12px"; button.style.textShadow=" -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";
button.style.borderRadius="4px";button.style.border="2px solid #111";


//document.styleSheets[0].insertRule('#my_download_button{background:#8E0404!important;color:#E7E7E7;padding:4px 7px 4px 0px;margin-left:4px;font-family:"arial,sans-serif"; font-size:12px;border-radius: 4px;cursor:pointer;border:2px solid #111;text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;}', 0);
this.add_CSS('#my_download_button{background-color:#8E0404 !important}.my_d_button{position:relative;display:inline-block; color:#E7E7E7;padding:6px 8px 6px 0px;margin-left:4px;font-family:"arial,sans-serif"; font-size:12px;border-radius: 4px;cursor:pointer;border:2px solid #111;text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;z-index:111300000; }#download_button_pressed{background-color:#746F6F !important;margin-left:4px;padding:6px 7px 6px 1px;}');

button.setAttribute("type", "button");
button.setAttribute("id", "my_download_button");
button.setAttribute("class", "my_d_button");
button_open.setAttribute("id", "my_button_open");


button_open.onclick=function(event){
event.stopPropagation();YT_Download_Button.YT_Button_Menu(); }

text.onclick=function(){
window.location=GetYouTubeVideo.Get_url_360p();
button.id="download_button_pressed"; }


insertAfter = function(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
var box= document.querySelector(".yt-uix-button-subscription-container")
if(box){insertAfter(box,button)}
//var views =document.getElementById('watch7-views-info');
//if(views){views.parentNode.insertBefore(button,views)}
else
{if(window.parent == window) var pl =document.getElementById('player'); pl.parentNode.insertBefore(button,pl);};
this.add_CSS("#watch7-user-header{overflow: visible !important;}")


//this.Show_Button(button);
//this.Show_Menu_Button(button);

},

YT_Button_Menu: function(){

var button_menu =document.createElement('div');

button_menu.setAttribute("id", "my_button_menu");


document.getElementById('my_download_button').appendChild(button_menu);
button_menu.style.background= "#8E0404"; button_menu.style.color= "#E7E7E7";
button_menu.style.position="absolute"; button_menu.style.top="26px"; button_menu.style.left="-1px";
button_menu.style.height="78px"; button_menu.style.width="118px";
button_menu.style.color="E7E7E7";button_menu.style.padding="14px 7px 14px 7px";
button_menu.style.zIndex="111300000";button_menu.style.borderRadius="6px";
//-----------
//document.styleSheets[0].insertRule('#my_button_menu{background:#8D0E0E !important;height:80px;width:120px;color:#E7E7E7;padding:14px 7px 14px 7px;font-family:"arial,sans-serif"; font-size:12px;border-radius: 6px; position: absolute; cursor:default;text-align:left;opacity:1 !important; z-index:111300000;}', 0);
//document.styleSheets[0].insertRule('#my_button_menu{ top: -110px; left: -1px;}', 0); //top
//document.styleSheets[0].insertRule('#my_button_menu{ top: 24px; left: -1px;}', 0); //down

this.add_CSS('#my_button_menu{background:#8D0E0E !important;height:80px;width:120px;color:#E7E7E7;padding:14px 7px 14px 7px;font-family:"arial,sans-serif"; font-size:12px;border-radius: 6px; position: absolute; cursor:default;text-align:left;; z-index:111300000;}');
this.add_CSS('#my_button_menu{ top: 26px; left: -1px;}');

//this.add_CSS('#my_button_menu{opacity:0;animation:fadeIn 0.4s ;animation-timing-function:ease-in;} @keyframes fadeIn { from{opacity:0} to {opacity:1}}') ;

//-----------
button_menu.onclick=function(event){event.stopPropagation();}

var list_144 =document.createElement('a');button_menu.appendChild(list_144);
list_144.setAttribute("class", "my__menu_list");
list_144.style.color="E7E7E7";
list_144.style.display="inline-block"; list_144.style.margin="4px 4px 4px 6px";

//document.styleSheets[0].insertRule('.my__menu_list,a.my__menu_list:visited{display:inline-block;text-decoration: none;color:#E7E7E7 ;font-family:"Verdana"; font-size:11px; margin:4px 4px 4px 6px}', 0);
this.add_CSS('.my__menu_list{display:inline-block;text-decoration: none;color:#E7E7E7 !important;font-family:"Verdana"; font-size:11px !important; margin:4px 4px 4px 6px}');

//this.add_CSS('.my__menu_list{opacity:0;animation:fadeIn 0.4s ;animation-timing-function:ease-in;} @keyframes fadeIn { from{opacity:0} to {opacity:1}}');

var list_240=list_144.cloneNode(true);button_menu.appendChild(list_240);
var list_360 =list_144.cloneNode(true);button_menu.appendChild(list_360);
var list_720 =list_144.cloneNode(true);button_menu.appendChild(list_720);



list_144.innerHTML="Mobile - &nbsp&nbsp 144p";
list_240.innerHTML="Low - &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 240p";
list_360.innerHTML="Medium - &nbsp360p ";
list_720.innerHTML="HD - &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 720p";

list_144.href=GetYouTubeVideo.Get_url_144p();
list_240.href=GetYouTubeVideo.Get_url_240p();
list_360.href=GetYouTubeVideo.Get_url_360p();
list_720.href=GetYouTubeVideo.Get_url_720p();

list_360.style.fontWeight="700";list_360.style.color="#FFF";
list_240.style.color="#E7E7E7"; list_720.style.color="E7E7E7"; list_144.style.color="E7E7E7";
if(!this.available("hd720")){list_720.innerHTML="HD - &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp "+String.fromCharCode(216); };
//if(!this.available("large")){list_480.innerHTML="Large - &nbsp&nbsp&nbsp Ø"; };
if(!this.available("medium")){list_360.innerHTML="Medium - &nbsp&nbsp&nbsp Ø"; };
if(!this.available("small")){list_240.innerHTML="Small - &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Ø"; };
//if(!this.available("tiny")){list_144.innerHTML="Mobile - &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Ø"; } ;

this.Stop_Button(button_menu);


},

available: function available(quality){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
var qualities=player.getAvailableQualityLevels();
//var qualities=["hd720","large","medium","small","tiny"]
for(key in qualities){ if (qualities[key]==quality){return true} }

return false
},

change_list_avail: function(){

class_now_play= function(id){
var el=document.getElementById(id)
if(!/now_play/g.test(el.className) )
el.className+=" now_play" ;
}
class_not_avail= function(id){
var el=document.getElementById(id)
if(!/not_avail/g.test(el.className) )
el.className+=" not_avail" ;
};

if(!this.available("tiny")){class_not_avail("v_list_144");};
if(!this.available("small")){class_not_avail('v_list_240') };
if(!this.available("medium")){class_not_avail('v_list_360') };
if(!this.available("large")){class_not_avail('v_list_480') };
if(!this.available("hd720")){class_not_avail('v_list_720') };

if(YT_Download_Button.now_playing()=="tiny"){this.clear_red_list(); class_now_play('v_list_144')};
if(YT_Download_Button.now_playing()=="small"){this.clear_red_list(); class_now_play('v_list_240')};
if(YT_Download_Button.now_playing()=="medium"){this.clear_red_list(); class_now_play('v_list_360')};
if(YT_Download_Button.now_playing()=="large"){this.clear_red_list(); class_now_play('v_list_480')};
if(YT_Download_Button.now_playing()=="hd720"){this.clear_red_list(); class_now_play('v_list_720')};

},

clear_red_list: function(){
var v_list= document.querySelectorAll(".v_list");
for(var i=0;i<v_list.length;i++){
//v_list[i].className=v_list[i].className.replace("now_play","") ;
v_list[i].classList.remove("now_play")
}
},

now_playing: function available(){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
var now_play=player.getPlaybackQuality();
//var qualities=["hd720","large","medium","small","tiny"]
return now_play
},

Stop_Button: function(button){ // this.Stop_Button(button_menu);

var stop_ =document.createElement('span');
stop_.id="stop_button";
stop_.style.position="absolute";stop_.style.top="-4px";stop_.style.right="0px";
stop_.style.zIndex="112300000";
//stop_.style.background= "#9C9C9C";

stop_.style.width="10px";stop_.style.height="10px";
stop_.style.margin="2px";stop_.style.padding="4px";stop_.style.fontSize="17px";
stop_.style.cursor="pointer";
stop_.innerHTML="■";// ▇ ■
stop_.title="Stop Video";
button.appendChild(stop_);
this.add_CSS('#stop_button{position:absolute;top:-4px;right:0px;font-family:"Segoe UI";font-weight=700;padding:2px 4px 2px 4px;}');
stop_button.onclick =function(){YT_Download_Button.Stop_Video()};

},

Show_Button: function(button){
var button;
var show_ =document.createElement('span');
show_.id="show_button";
show_.style.position="absolute";show_.style.top="1px";show_.style.right="-38px";
show_.style.zIndex="112300000";
show_.style.background= "#888888";show_.style.padding= "2px 4px 2px 2px";
show_.style.borderRadius="4px";
show_.style.width="24px";show_.style.height="12px";
show_.style.margin="2px";show_.style.padding="4px";show_.style.fontSize="10px";
show_.style.cursor="pointer";
show_.title="Play";
show_.innerHTML="&nbsp&nbsp▇";//="▇240p"; //▇ ■ ▉ █
document.getElementById('my_download_button').appendChild(show_);

this.add_CSS('#show_button{position:absolute;top:1px;right:-38px;width:24px;height:12px;border-radius: 4px;font-family:"Segoe UI";font-weight=400;padding:2px 4px 2px 4px;}')
},

Show_Menu_Button: function(){
var show_menu =document.createElement('span');
show_menu.id="show_menu_button";
show_menu.style.visibility="hidden";
show_menu.style.position="absolute";
show_menu.style.top="-43px";show_menu.style.right="-49px";
show_menu.style.zIndex="112300000";
show_menu.style.background= "#888888";show_menu.style.padding= "2px 2px 2px 2px";


show_menu.style.width="40px";show_menu.style.height="90px";
show_menu.style.margin="2px";show_menu.style.padding="4px";show_menu.style.fontSize="10px";
show_menu.style.cursor="pointer";
//show_menu.innerHTML="Menu";
document.getElementById('show_button').appendChild(show_menu);
this.add_CSS('#show_menu_button{position:absolute;border-radius: 4px;font-family:"Segoe UI";font-weight=400;padding:2px 4px 2px 4px;}');

this.add_CSS('#show_button > #show_menu_button{ visibility:hidden; opacity:0; transition:visibility 0s 0.5s,opacity 0.5s ;transition-timing-function: cubic-bezier(.2,.7,.5,.9);} #show_button:hover > #show_menu_button { visibility:visible; opacity:1; transition-delay:0.2s}');
//ease-in


var v_144 =document.createElement('span');
v_144.setAttribute("class", "v_list");
//v_144.style.color="#E7E7E7";
v_144.style.display="inline-block"; v_144.style.margin="4px 4px 4px 6px";

show_menu.appendChild(v_144);
var v_240=v_144.cloneNode(true); show_menu.appendChild(v_240);
var v_360=v_144.cloneNode(true); show_menu.appendChild(v_360);
var v_480=v_144.cloneNode(true); show_menu.appendChild(v_480);
var v_720=v_144.cloneNode(true); show_menu.appendChild(v_720);

v_144.id="v_list_144"; v_144.innerHTML="144p";
v_240.id="v_list_240"; v_240.innerHTML="240p";
v_360.id="v_list_360"; v_360.innerHTML="360p";
v_480.id="v_list_480"; v_480.innerHTML="480p";
v_720.id="v_list_720"; v_720.innerHTML="720p";

//v_144.addEventListener('click',function(){ } ,false)
first_check_avail =function(){
if(!this.available("tiny")){v_144.className+=" not_avail" };
if(!this.available("small")){v_240.classList.add("not_avail") };
if(!this.available("medium")){v_360.classList.add("not_avail") };
if(!this.available("large")){v_480.classList.add("not_avail")};
if(!this.available("hd720")){v_720.classList.add("not_avail")};
}
setTimeout(first_check_avail, 800);

v_144.onclick=function(){setTimeout(function(){ YT_Download_Button.Set_Video_quality("tiny")}, 50);};
v_240.onclick=function(){setTimeout(function(){ YT_Download_Button.Set_Video_quality("small")}, 50);};
v_360.onclick=function(){setTimeout(function(){ YT_Download_Button.Set_Video_quality("medium")}, 50);};
v_480.onclick=function(){setTimeout(function(){ YT_Download_Button.Set_Video_quality("large")}, 50);};
v_720.onclick=function(){setTimeout(function(){ YT_Download_Button.Set_Video_quality("hd720")}, 50);};



this.add_CSS('.v_list{display:inline-block;text-decoration: none;font-family:"Verdana"; font-size:10px !important; margin:3px 4px 3px 6px !important}.not_avail{color:#B4B4B4 !important;transition:color 0.8s;transition-delay: 0.4s;transition-timing-function: ease-in ;}.not_avail:hover {content:"- %C3%98 -";}.now_play{color:#C62929 !important;transition:color 0.8s;transition-delay: 0.4s;transition-timing-function: cubic-bezier(.2,.7,.5,.9);}');
//not_avail:hover {content:"- Ø -";}



},

Play_Video: function(){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
player.playVideo();
},

Stop_Video: function(){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
player.stopVideo();
},

Get_Video_quality: function(){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
var quality =player.getPlaybackQuality();
quality=this.dec_quality(quality);
return quality
},

Set_Video_quality: function(quality){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
player.stopVideo()
player.playVideo() ;
player.setPlaybackQuality(quality);
},

dec_quality: function(quality){ //var qualities=["hd720","large","medium","small","tiny"]
quality=quality.replace("hd720","720p").replace("hd720","720p").replace("large","480p").replace("medium","360p").replace("small","240p").replace("tiny","144p");
return quality
},


add_CSS: function(styles){
var styles;
if(document.createStyleSheet){document.createStyleSheet('javascript:'+styles);}
else{newSS=document.createElement('link');newSS.rel='stylesheet';
newSS.href='data:text/css,'+ styles //escape(styles) ;
window.document.getElementsByTagName('head')[0].appendChild(newSS)}
},

}

//GetYouTubeVideo.availableFormats("itag=18").tooltip;
//GetYouTubeVideo.Get_vid_links()[0];alert(JSON.stringify(x));

// ****************************************************************************************
// alert(GetYouTubeVideo.defaultStreams[0].itag);
// alert(GetYouTubeVideo.Get_url_144p());alert(GetYouTubeVideo.Get_vid_links());




 

▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌


 Firefox version:


▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌

// ==UserScript==
// @name YouTube Vid Download Button ; Firefox
// @namespace
// @version 1
// @author Drozdman
// @include *.youtube.com/*
// ==/UserScript==






window.addEventListener('DOMContentLoaded',function(){
if(window.location.href.match('youtube.com/watch')){
YT_Download_Button.init();
}
} ,false)

//********************* Video download*************************************
window.addEventListener('dblclick',function() {
if (event.altKey){
window.location=GetYouTubeVideo.Get_url_360p();
}

} ,false)


var GetYouTubeVideo = {
Get_vid_links: function(){
var encoded_vid_links = ytplayer.config.args.url_encoded_fmt_stream_map;
var vid_links=encoded_vid_links.split(",");
vid_links=vid_links.map(function (url) {
var vid_size;
var itag=url.match(/itag=\d+/);
var fallback = url.match(/fallback_host=([^&]+)/);
//var sig = url.match(/signature([^&]+)/);
var link = url.match(/url=([^&]+)/)[1];
var obj_item = {};
obj_item.url = link + "%26signature%3D" //+ sig[1].replace('%3D','');
  if(fallback && fallback[1])obj_item.url = obj_item.url.replace(/(http%3A%2F%2F)[^%]+/, "$1" + fallback[1]);
obj_item.url = unescape(obj_item.url);
obj_item.itag = itag[0];
return obj_item
});
return vid_links
},

availableFormats: function(itag){
var vid_links = GetYouTubeVideo.Get_vid_links();
var streams=GetYouTubeVideo.defaultStreams;
var formats ={};
for(var i in vid_links){
formats[i]=vid_links[i].itag;
formats[formats[i]]=formats[i];delete formats[i];
};
for(var key in formats){
for(var j=0;j<streams.length;j++){
if(formats[key]===streams[j].itag)
{formats[key]=streams[j]; delete formats[key].itag }
}
}
var tip=formats[itag];
return {
all:JSON.stringify(formats),
tooltip: JSON.stringify(tip)
}
},
Get_title: function(){
var title = document.querySelector("#eow-title,#watch-headline-title").textContent.trim();
var user_name = document.getElementsByClassName('yt-user-info')[0].getElementsByTagName('a')[0].innerHTML.toString();
var vid_id = window.location.search.match(/v=([^&]+)/)[1];
var date= document.getElementById('watch-uploader-info').textContent.replace(/\Published on /g,'');
title = title.replace('? ','').replace(/(\r\n|\n|\r)/gm,'').replace(/\?/g,'¿').replace(/:/g,' - ').replace(/\x22/g,'”').replace(/\|/g,'•').replace(/\\/g,'-').replace(/\*/g,'•').replace(/\//g,'-').replace(/\'/g,'”').replace('!','') + ' •' +user_name+ ' • ' + date + ' • ' + vid_id +' ';
title = title.replace(/wwwMOXNEWScom|MOXNEWSd0tC0M/,'MOXNEWS');
title = title.replace(/MichaelSavage4Prez/,'Savage4Prez');
title.replace(/\s+/g, " ");
title = encodeURIComponent(title);
return title
},
Get_url_LowQ: function(){
var links=GetYouTubeVideo.Get_vid_links();
var vid_link=links[links.length-1].url+'&title=' + GetYouTubeVideo.Get_title();
return vid_link
},
Get_url_144p:function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=17" ){vid_link=links[j].url+'&title=' + this.Get_title();}
}
return vid_link
},
Get_url_144p_MP4:function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=160" ){vid_link=links[j].url+'&title=' + this.Get_title();}
}
return vid_link
},

Get_url_360p:function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=18" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();}
};//|| links[j].itag=="itag=34"
var Formats=GetYouTubeVideo.availableFormats("itag=18").tooltip;
return vid_link
},
Get_url_480p:function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=35" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();} //83
};//|| links[j].itag=="itag=34"
var Formats=GetYouTubeVideo.availableFormats("itag=18").tooltip;
return vid_link
},
Get_url_240p: function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=5" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();}
}
return vid_link
},
Get_url_240p_MP4: function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=133" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();}
}
return vid_link
},

Get_url_720p: function(){
var links=GetYouTubeVideo.Get_vid_links();
for(j=0;j<links.length;j++){
if(links[j].itag=="itag=22" ){vid_link=links[j].url+'&title=' + GetYouTubeVideo.Get_title();}
}
return vid_link
},

defaultStreams: [
{itag: "itag=5", width: 320, height: 240, container: "FLV" , acodec:"MP3",vcodec: "H.263" },
{itag: "itag=17", width: 176, height: 144, container: "3GPP", acodec:"AAC",vcodec: "MPEG-4",vprofile: "Simple" },
{itag: "itag=18", width: 640, height: 360, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "Baseline", level:3.0 },
{itag: "itag=22", width: 1280, height: 720, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High" , level:3.1 },
{itag: "itag=34", width: 640, height: 360, container: "FLV" , acodec:"AAC",vcodec: "H.264" ,vprofile: "Main" , level:3.0 },
{itag: "itag=35", width: 854, height: 480, container: "FLV" , acodec:"AAC",vcodec: "H.264" ,vprofile: "Main" , level:3.0 },
{itag: "itag=36", width: 320, height: 240, container: "3GPP", acodec:"AAC",vcodec: "MPEG-4",vprofile: "Simple" },
{itag: "itag=37", width: 1920, height: 1080, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High" , level:3.1 },
{itag: "itag=38", width: 2048, height: 1536, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High" , level:3.1 },
{itag: "itag=43", width: 640, height: 360, container: "WebM", acodec:"Vorbis",vcodec: "VP8" },
{itag: "itag=44", width: 854, height: 480, container: "WebM", acodec:"Vorbis",vcodec: "VP8" },
{itag: "itag=45", width: 1280, height: 720, container: "WebM", acodec:"Vorbis",vcodec: "VP8" },
{itag: "itag=46", width: 1920, height: 1080, container: "WebM", acodec:"Vorbis",vcodec: "VP8" },
{itag: "itag=82", width: 640, height: 360, container: "MP4" , acodec:"AAC",vcodec: "H.264",vprofile: "Baseline", level:3.0,stereo3d:true},
{itag: "itag=83", width: 854, height: 480, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "Baseline", level:3.1,stereo3d:true},
{itag: "itag=84", width: 1280, height: 720, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High", level:3.1,stereo3d:true},
{itag: "itag=85", width: 1920, height: 1080, container: "MP4" , acodec:"AAC",vcodec: "H.264" ,vprofile: "High", level:3.1,stereo3d:true},
{itag: "itag=100", width: 640, height: 360, container: "WebM", acodec:"Vorbis",vcodec: "VP8" ,stereo3d:true},
{itag: "itag=101", width: 854, height: 480, container: "WebM", acodec:"Vorbis",vcodec: "VP8" ,stereo3d:true},
{itag: "itag=102", width: 1280, height: 720, container: "WebM", acodec:"Vorbis",vcodec: "VP8" ,stereo3d:true},
{itag: "itag=133", width: 320, height: 240, container: "MP4",},
{itag: "itag=134", width: 480, height: 360, container: "MP4",},
{itag: "itag=135", width: 640, height: 480, container: "MP4",},
{itag: "itag=160", width: 256, height: 144, container: "MP4",},
],

}




//================================================================================



var YT_Download_Button = {
init: function(){
YT_Download_Button.Download_Button();

//-----------------------
var show_button=document.getElementById('show_button');
var show_menu_button=document.getElementById('show_menu_button');

show_button.onmouseover =function(){ //alert(YT_Download_Button.now_playing());
show_menu_button.style.visibility="visible";
//this.innerHTML=YT_Download_Button.Get_Video_quality() //+"•";
this.childNodes[0].textContent=YT_Download_Button.Get_Video_quality();//+"•";
YT_Download_Button.change_list_avail();
}

show_button.onmouseout =function(){ show_menu_button.style.visibility="hidden";}
show_menu_button.onmouseout =function(){show_menu_button.style.visibility="hidden";}

show_menu_button.onmouseover =function(){show_menu_button.style.visibility="visible";}

//show_button.onclick =function(){YT_Download_Button.Stop_Video()};

show_button_f=function(){
YT_Download_Button.Play_Video()
show_button.removeEventListener('click',show_button_f ,false) ;
show_button.title="Stop";
//var chil=show_button.childNodes;for(var i=0; i<chil.length; i++){chil[i].title="Play";}
show_button.addEventListener('click',YT_Download_Button.Stop_Video ,false)
};

show_button.addEventListener('click',show_button_f ,false)
//-----------------------

del_menu=function(){
var button_menu=document.getElementById('my_button_menu');
show_menu_button.style.visibility="hidden";
button_menu.parentNode.removeChild(button_menu);
}

document.addEventListener('click',del_menu ,false)


},

Download_Button: function(){
var button =document.createElement('span');
var button_open =document.createElement('span');
button_open.style.margin="2px";button_open.style.padding="4px";//button_open.style.fontSize="14px";
button_open.style.cursor="help";
button_open.style.padding="2px";
button_open.innerHTML="&nbsp▼ "; //▼ ▲ ↓
button.appendChild(button_open);
//var text = document.createTextNode("Download Video "); button.appendChild(text);//Download Button
var text =document.createElement('span');
text.innerHTML="Download Video";
//text.style.padding="2px";
button.appendChild(text);
button_open.style.fontWeight="700"; button.style.fontWeight="700";
button.style.position="relative";
//button.style.width="129px";button.style.height="129px";

button.style.background= "#8E0404"; button.style.color= "#E7E7E7";
button.style.padding="4px 6px 4px 0px"; button.style.margin="6px";
button.style.fontSize="12px"; button.style.fontFamily="arial,sans-serif";
button.style.textShadow=" -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";
button.style.borderRadius="4px";button.style.border="2px solid #111";


//document.styleSheets[0].insertRule('#my_download_button{background:#8E0404!important;color:#E7E7E7;padding:4px 7px 4px 0px;margin-left:4px;font-family:"arial,sans-serif"; font-size:12px;border-radius: 4px;cursor:pointer;border:2px solid #111;text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;}', 0);
this.add_CSS('#my_download_button{background-color:#8E0404 !important}.my_d_button{position:relative; color:#E7E7E7;padding:4px 6px 4px 0px;margin-left:6px;font-family:"arial,sans-serif"; font-size:12px;border-radius: 4px;cursor:pointer;border:2px solid #111;text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;z-index:111300000; }#download_button_pressed{background-color:#746F6F !important;margin-left:4px;padding:6px 7px 6px 1px;}');

button.setAttribute("type", "button");
button.setAttribute("id", "my_download_button");
button.setAttribute("class", "my_d_button");
button_open.setAttribute("id", "my_button_open");


button_open.onclick=function(event){
event.stopPropagation();YT_Download_Button.YT_Button_Menu(); }

text.onclick=function(){
  window.location=GetYouTubeVideo.Get_url_360p();
button.id="download_button_pressed"; }


insertAfter = function(referenceNode, newNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
var box= document.querySelector(".yt-uix-button-subscription-container")
if(box){insertAfter(box,button)}
else
{if(window.parent == window) var pl =document.getElementById('player'); pl.parentNode.insertBefore(button,pl);};
this.add_CSS("#watch7-user-header{overflow: visible !important;}")


this.Show_Button(button);
this.Show_Menu_Button(button);

},

YT_Button_Menu: function(){ //alert( "YT_Button_Menu");

var button_menu =document.createElement('div');
//button_menu.setAttribute("id", "my_download_button");
button_menu.setAttribute("id", "my_button_menu");
//button_menu.onmouseout= function(){button_menu.parentNode.removeChild(button_menu)}
document.getElementById('my_download_button').appendChild(button_menu);
button_menu.style.background= "#8E0404"; button_menu.style.color= "#E7E7E7";
button_menu.style.position="absolute"; button_menu.style.top="24px"; button_menu.style.left="-1px";
button_menu.style.height="75px"; button_menu.style.width="112px";
button_menu.style.color="E7E7E7";button_menu.style.padding="12px 7px 12px 7px";
button_menu.style.zIndex="111300000";button_menu.style.borderRadius="6px";
//-----------
//document.styleSheets[0].insertRule('#my_button_menu{background:#8D0E0E !important;height:80px;width:120px;color:#E7E7E7;padding:14px 7px 14px 7px;font-family:"arial,sans-serif"; font-size:12px;border-radius: 6px; position: absolute; cursor:default;text-align:left;opacity:1 !important; z-index:111300000;}', 0);
//document.styleSheets[0].insertRule('#my_button_menu{ top: -110px; left: -1px;}', 0); //top
//document.styleSheets[0].insertRule('#my_button_menu{ top: 24px; left: -1px;}', 0); //down

this.add_CSS('#my_button_menu{background:#8D0E0E !important;height:75px;width:112px;color:#E7E7E7;padding:14px 7px 14px 7px;font-family:"arial,sans-serif"; font-size:10px;border-radius: 6px; cursor:default;text-align:left; z-index:111300000;}') ;
this.add_CSS('#my_button_menu{ top: 26px; left: -1px;}');
//-----------
button_menu.onclick=function(event){event.stopPropagation();}

var list_144 =document.createElement('a');button_menu.appendChild(list_144);
list_144.setAttribute("class", "my__menu_list");
list_144.style.color="E7E7E7";
list_144.style.display="inline-block"; list_144.style.margin="4px 4px 4px 6px";
list_144.style.fontSize="11px" ;list_144.style.color= "#E7E7E7";
//document.styleSheets[0].insertRule('.my__menu_list,a.my__menu_list:visited{display:inline-block;text-decoration: none;color:#E7E7E7 ;font-family:"Verdana"; font-size:11px; margin:4px 4px 4px 6px}', 0);
this.add_CSS('.my__menu_list,a.my__menu_list:visited{display:inline-block;text-decoration: none;color:#E7E7E7 !important;font-family:"Verdana"; font-size:10px !important; margin:4px 4px 4px 6px}');
var list_240=list_144.cloneNode(true);button_menu.appendChild(list_240);
var list_360 =list_144.cloneNode(true);button_menu.appendChild(list_360);
var list_720 =list_144.cloneNode(true);button_menu.appendChild(list_720);

list_144.innerHTML="Mobile &nbsp&nbsp- &nbsp&nbsp&nbsp&nbsp 144p";
list_240.innerHTML="Low &nbsp&nbsp- &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 240p";
list_360.innerHTML="Medium &nbsp&nbsp- &nbsp360p ";
list_720.innerHTML="HD &nbsp&nbsp- &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 720p";

list_144.href=GetYouTubeVideo.Get_url_144p();
list_240.href=GetYouTubeVideo.Get_url_240p();
list_360.href=GetYouTubeVideo.Get_url_360p();
list_720.href=GetYouTubeVideo.Get_url_720p();

list_360.style.fontWeight="700";list_360.style.color="#FFF";
list_240.style.color="#E7E7E7"; list_720.style.color="E7E7E7"; list_144.style.color="E7E7E7";
if(!this.available("hd720")){list_720.innerHTML="HD &nbsp&nbsp- &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Ø"; };
//if(!this.available("large")){list_480.innerHTML="Large - &nbsp&nbsp&nbsp Ø"; };
if(!this.available("medium")){list_360.innerHTML="Medium &nbsp&nbsp- &nbsp&nbsp&nbsp&nbsp Ø"; };
if(!this.available("small")){list_240.innerHTML="Small &nbsp&nbsp- &nbsp&nbsp&nbsp&nbsp Ø"; };
//if(!this.available("tiny")){list_144.innerHTML="Mobile - &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Ø"; } ;

this.Stop_Button(button_menu);


},

available: function available(quality){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
var qualities=player.getAvailableQualityLevels();
//var qualities=["hd720","large","medium","small","tiny"]
for(key in qualities){ if (qualities[key]==quality){return true} }

return false
},

show_available: function (){
mouseover= function(){
oryg= this.childNodes[0].textContent;
this.childNodes[0].textContent="- Ø -"}

mouseout= function(){
this.childNodes[0].textContent=oryg};

var elem= document.getElementsByClassName("not_avail");
var oryg;
for(var i=0; i<elem.length; i++){
elem[i].addEventListener('mouseover', mouseover ,false);
elem[i].addEventListener('mouseout',function(){
this.childNodes[0].textContent=oryg} ,false);
}
},

change_list_avail: function(){

class_now_play= function(id){
var el=document.getElementById(id)
if(!/now_play/g.test(el.className) )
el.className+=" now_play" ;
}
class_not_avail= function(id){
var el=document.getElementById(id)
if(!/not_avail/g.test(el.className) )
el.className+=" not_avail" ;
};

if(!this.available("tiny")){class_not_avail("v_list_144");};
if(!this.available("small")){class_not_avail('v_list_240') };
if(!this.available("medium")){class_not_avail('v_list_360') };
if(!this.available("large")){class_not_avail('v_list_480') };
if(!this.available("hd720")){class_not_avail('v_list_720') };

if(YT_Download_Button.now_playing()=="tiny"){this.clear_red_list(); class_now_play('v_list_144')};
if(YT_Download_Button.now_playing()=="small"){this.clear_red_list(); class_now_play('v_list_240')};
if(YT_Download_Button.now_playing()=="medium"){this.clear_red_list(); class_now_play('v_list_360')};
if(YT_Download_Button.now_playing()=="large"){this.clear_red_list(); class_now_play('v_list_480')};
if(YT_Download_Button.now_playing()=="hd720"){this.clear_red_list(); class_now_play('v_list_720')};
YT_Download_Button.show_available();
},

clear_red_list: function(){
var v_list= document.querySelectorAll(".v_list");
for(var i=0;i<v_list.length;i++){
//v_list[i].className=v_list[i].className.replace("now_play","") ;
v_list[i].classList.remove("now_play")}
},

now_playing: function available(){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
var now_play=player.getPlaybackQuality();
//var qualities=["hd720","large","medium","small","tiny"]
return now_play
},

Stop_Button: function(button){ // this.Stop_Button(button_menu);

var stop_ =document.createElement('span');
stop_.id="stop_button";
stop_.style.position="absolute";stop_.style.top="-6px";stop_.style.right="0px";
stop_.style.zIndex="112300000";
//stop_.style.background= "#9C9C9C";

stop_.style.width="10px";stop_.style.height="10px";
stop_.style.margin="2px";stop_.style.padding="4px";stop_.style.fontSize="17px";
stop_.style.cursor="pointer";
stop_.innerHTML="■";// ▇ ■
stop_.title="Stop Video";
button.appendChild(stop_);
this.add_CSS('#stop_button{position:absolute;top:-6px;right:0px;font-family:"Segoe UI";font-weight=700;padding:2px 4px 2px 4px;}');
stop_button.onclick =function(){YT_Download_Button.Stop_Video()};

},

Show_Button: function(button){
var button;
var show_ =document.createElement('span');
show_.id="show_button";
show_.style.position="absolute";show_.style.top="0px";show_.style.right="-38px";
show_.style.zIndex="112300000";
show_.style.background= "#888888";show_.style.padding= "2px 4px 2px 2px";
show_.style.borderRadius="4px";
show_.style.width="24px";show_.style.height="12px";
show_.style.margin="2px";show_.style.padding="4px";show_.style.fontSize="10px";
show_.style.cursor="pointer";
show_.title="Play";
show_.innerHTML="&nbsp&nbsp▶";//="▇240p"; //▇ ■ ▉ █
button.appendChild(show_);

this.add_CSS('#show_button{position:absolute;top:0px;right:-38px;width:24px;height:12px;border-radius: 4px;font-family:"Segoe UI";font-weight=400;padding:2px 4px 2px 2px;}')
},

Show_Menu_Button: function(button){
var show_menu =document.createElement('span');
show_menu.id="show_menu_button";
show_menu.style.visibility="hidden";
show_menu.style.position="absolute";
show_menu.style.top="-43px";show_menu.style.right="-86px";
show_menu.style.zIndex="112300000";
show_menu.style.background= "#888888";show_menu.style.padding= "2px 2px 2px 2px";
show_menu.style.borderRadius="4px";
show_menu.style.width="40px";show_menu.style.height="90px";
show_menu.style.margin="2px";show_menu.style.padding="4px";show_menu.style.fontSize="10px";
show_menu.style.cursor="pointer";
//show_menu.title="Play";
//show_menu.innerHTML="Menu";
button.appendChild(show_menu);
this.add_CSS('#show_menu_button{position:absolute;border-radius: 4px;font-family:"Segoe UI";font-weight=400;padding:2px 4px 2px 4px;}');

var v_144 =document.createElement('span');
v_144.setAttribute("class", "v_list");
//v_144.style.color="E7E7E7";
v_144.style.display="inline-block"; v_144.style.margin="4px 4px 4px 6px";

show_menu.appendChild(v_144);
var v_240=v_144.cloneNode(true); show_menu.appendChild(v_240);
var v_360=v_144.cloneNode(true); show_menu.appendChild(v_360);
var v_480=v_144.cloneNode(true); show_menu.appendChild(v_480);
var v_720=v_144.cloneNode(true); show_menu.appendChild(v_720);

v_144.id="v_list_144"; v_144.innerHTML="144p";
v_240.id="v_list_240"; v_240.innerHTML="240p";
v_360.id="v_list_360"; v_360.innerHTML="360p";
v_480.id="v_list_480"; v_480.innerHTML="480p";
v_720.id="v_list_720"; v_720.innerHTML="720p";



var oryg;
mouseover_avail= function(){//alert( );
if(/not_avail/g.test(this.className)){
oryg= this.childNodes[0].textContent;
this.childNodes[0].textContent="";
this.classList.add("not_avail_Firefox")
}
}

mouseout_avail= function(){
if(/not_avail/g.test(this.className)){
this.childNodes[0].textContent=oryg;
this.classList.remove("not_avail_Firefox")
}
}

first_check_avail =function(){
if(!this.available("tiny")){v_144.className+=" not_avail";};
if(!this.available("small")){v_240.classList.add("not_avail"); };
if(!this.available("medium")){v_360.classList.add("not_avail"); };
if(!this.available("large")){v_480.classList.add("not_avail")};
if(!this.available("hd720")){v_720.classList.add("not_avail")};

}

setTimeout(first_check_avail, 800);

v_144.onclick=function(){YT_Download_Button.Set_Video_quality("tiny")};
v_240.onclick=function(){YT_Download_Button.Set_Video_quality("small")};
v_360.onclick=function(){YT_Download_Button.Set_Video_quality("medium")};
v_480.onclick=function(){YT_Download_Button.Set_Video_quality("large")};
v_720.onclick=function(){YT_Download_Button.Set_Video_quality("hd720")};



this.add_CSS('.v_list{display:inline-block;text-decoration: none;font-family:"Verdana"; font-size:10px !important; margin:2px 4px 2px 6px !important;}.not_avail{color:#B4B4B4 !important;transition:color 0.8s;transition-delay: 0.4s;transition-timing-function: ease-in ;}.not_avail:hover {content:"- %C3%98 -";}.now_play{color:#C62929 !important;transition:color 0.8s;transition-delay: 0.4s;transition-timing-function: cubic-bezier(.2,.7,.5,.9);}.not_avail_Firefox:before {content:"- Ø -";}');
//.not_avail:hover {content:"- Ø -";}


},

Play_Video: function(){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
player.playVideo();
},

Stop_Video: function(){ // alert("Stop_Video");
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
player.stopVideo();
},

Get_Video_quality: function(){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
var quality =player.getPlaybackQuality();
quality=this.dec_quality(quality);
return quality
},

Set_Video_quality: function(quality){
var player= (player) ? player : document.getElementById('movie_player') || document.embeds[0];
player.stopVideo()
player.playVideo() ;
player.setPlaybackQuality(quality);
},

dec_quality: function(quality){ //var qualities=["hd720","large","medium","small","tiny"]
quality=quality.replace("hd720","720p").replace("large","480p").replace("medium","360p").replace("small","240p").replace("tiny","144p");
return quality
},

add_CSS: function(styles){
var styles;
if(document.createStyleSheet){document.createStyleSheet('javascript:'+styles);}
else{newSS=document.createElement('link');newSS.rel='stylesheet';
newSS.href='data:text/css,'+escape(styles);
window.document.getElementsByTagName('head')[0].appendChild(newSS)};
},

}

//GetYouTubeVideo.availableFormats("itag=18").tooltip;
//GetYouTubeVideo.Get_vid_links()[0];alert(JSON.stringify(x));

// ****************************************************************************************
// alert(GetYouTubeVideo.defaultStreams[0].itag);
// alert(GetYouTubeVideo.Get_url_144p());alert(GetYouTubeVideo.Get_vid_links());

▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌


No comments:

Post a Comment