YouTube Download

On youtube click the download link to download youtube video.

目前为 2015-10-22 提交的版本。查看 最新版本

// ==UserScript==
// @name         YouTube Download
// @namespace    http://your.homepage/
// @version      4.4.7
// @description  On youtube click the download link to download youtube video.
// @author       Henry Harris
// @match        https://www.youtube.com/*
// @match        http://9xbuddy.com/*
// @grant        none
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
// @run-at document-end
// ==/UserScript==





$(document).ready ( function(){
// -----------------------Runs on YOUTUBE--------------------------------------------------------------	   
	var beforestop = false;
    
    setInterval(function(){
    if(window.location.href.indexOf("you") > -1) {
        if ($('#watch7-headline').length > 0) {
    		if ($('#downloadlnk').length > 0) {
    		
            } else {
                
                
                
                 if ($('.html5-player-chrome').length > 0) {
                     
                     if ($('#vidctrls').length > 0) {
                     
                     } else{
                         
                         document.querySelector('div.html5-player-chrome').id = 'vidctrls';

                         var c = document.createElement('img');
                         c.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Egypt_governorates_blank.png/597px-Egypt_governorates_blank.png";
                         c.height = "30";
                         c.width = "10";
                         
                         
                         var b = document.createElement('img');
                         b.src = "http://images.clipartpanda.com/square-clip-art-black-and-white-0999d59a768fa638a6f16f4a44299e29.png";
                         b.height = "30";
                         b.width = "30";
                         b.title = "Download this video";
                         b.onclick = function () {
                             window.open("http://9xbuddy.com/download?url=" + document.URL)
                         };

                         document.getElementById("vidctrls").appendChild(c);
                         document.getElementById("vidctrls").appendChild(b);
                     }
                     
                 } else {
                
                var downdiv = document.createElement("div");
                downdiv.id = "downdiv";
                
                
                var a = document.createElement('a');
            var linkText = document.createTextNode("Download");
            a.appendChild(linkText);
            a.id = "downloadlnk";
            a.title = "Download this video";
            a.onclick = function () {
                window.open("http://9xbuddy.com/download?url=" + document.URL)
            };
                
                     
                     
                     var br3 = document.createElement('br');
            document.getElementById("watch7-headline").appendChild(br3);
                     
                     var br4 = document.createElement('br');
            document.getElementById("watch7-headline").appendChild(br4);
                     
                     var setimg = document.createElement('img');
                     setimg.width = 27;
                     setimg.length = 27;
                     setimg.src = "https://qph.is.quoracdn.net/main-qimg-8237596d1a16264adb1900d01ea71f0a";
                     
                     var dwnimg = document.createElement('img');
                     dwnimg.width = 27;
                     dwnimg.length = 27;
                     dwnimg.src = "http://www.clipartbest.com/cliparts/bTy/EX8/bTyEX8prc.png";
            
                 
                     var d = document.createElement('a');
            var linkText = document.createTextNode("Options");
            d.appendChild(linkText);
            d.id = "optionlnk";
            d.title = "Options";
            d.onclick = function () {
                var e = document.body;
                e.parentNode.removeChild(e);
                
                var body = document.createElement('body');
                document.getElementsByTagName('html')[0].appendChild(body);
                
                var chk1 = document.createElement('input');
                chk1.type = "checkbox";
                chk1.id = "chk1"
                document.getElementsByTagName('body')[0].appendChild(chk1);
                
                var label1 = document.createElement('label');
                //labe1l.htmlFor = "chk1";
                label1.appendChild(document.createTextNode('Auto HD + remove video ads'));
                document.getElementsByTagName('body')[0].appendChild(label1);
                
                var br = document.createElement('br');
            document.getElementsByTagName('body')[0].appendChild(br);
                
                var chk2 = document.createElement('input');
                chk2.type = "checkbox";
                chk2.id = "chk2"
                document.getElementsByTagName('body')[0].appendChild(chk2);
                
                var label2 = document.createElement('label');
                //labe12.htmlFor = "chk2";
                label2.appendChild(document.createTextNode('Loop videos'));
                document.getElementsByTagName('body')[0].appendChild(label2);
                
                var br4 = document.createElement('br');
            document.getElementsByTagName('body')[0].appendChild(br4);
                
                var chk3 = document.createElement('input');
                chk3.type = "checkbox";
                chk3.id = "chk2"
                document.getElementsByTagName('body')[0].appendChild(chk3);
                
                var label3 = document.createElement('label');
                //labe13.htmlFor = "chk2";
                label3.appendChild(document.createTextNode('Old Player'));
                document.getElementsByTagName('body')[0].appendChild(label3);
                
                var br5 = document.createElement('br');
            document.getElementsByTagName('body')[0].appendChild(br5);
                
                var chk4 = document.createElement('input');
                chk4.type = "checkbox";
                chk4.id = "chk4"
                document.getElementsByTagName('body')[0].appendChild(chk4);
                
                var label4 = document.createElement('label');
                //labe1l.htmlFor = "chk1";
                label4.appendChild(document.createTextNode('Auto-Buffer'));
                document.getElementsByTagName('body')[0].appendChild(label4);
                
                var br3 = document.createElement('br');
            document.getElementsByTagName('body')[0].appendChild(br3);
                
                 var br2 = document.createElement('br');
            document.getElementsByTagName('body')[0].appendChild(br2);
                
                var appbtn = document.createElement('input');
                appbtn.type = "button";
                appbtn.value = "Apply"
                appbtn.onclick = function () {
                    if (chk1.checked == true) {
                      document.cookie =
                          'autohd=test; expires=Fri, 3 Aug 2050 20:47:11 UTC; path=/'
                    } else {
                      document.cookie = 'autohd=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'
                    }
                    
                    if (chk2.checked == true) {
                        document.cookie =
                          'loop=test; expires=Fri, 3 Aug 2050 20:47:11 UTC; path=/'
                    } else {
                        document.cookie = 'loop=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'
                    }
                    
                    if (chk3.checked == true) {
                        document.cookie =
                          'oldplyr=test; expires=Fri, 3 Aug 2050 20:47:11 UTC; path=/'
                    } else {
                        document.cookie = 'oldplyr=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'
                    }
                    
                    if (chk3.checked == true && chk1.checked == true) {
                        alert("Auto-HD and Old Player are incompatible, please disable one of them.");
                    } else {
                        location.reload();
                    }
                    
                    if (chk4.checked == true) {
                        document.cookie =
                          'abuff=test; expires=Fri, 3 Aug 2050 20:47:11 UTC; path=/'
                    } else {
                        document.cookie = 'abuff=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/'
                    }
                    
                }
                document.getElementsByTagName('body')[0].appendChild(appbtn);
                
                if (document.cookie.indexOf('autohd=')== -1) {
                    chk1.checked = false;
                } else {
                    chk1.checked = true; 
                }
                
                if (document.cookie.indexOf('loop=')== -1) {
                    chk2.checked = false;
                } else {
                    chk2.checked = true; 
                }
                
                if (document.cookie.indexOf('oldplyr=')== -1) {
                    chk3.checked = false;
                } else {
                    chk3.checked = true; 
                }
                
                if (document.cookie.indexOf('abuff=')== -1) {
                    chk4.checked = false;
                } else {
                    chk4.checked = true; 
                }
                
            };
            
            //document.body.appendChild(a);
            document.getElementById("watch7-headline").appendChild(downdiv);
            document.getElementById("downdiv").appendChild(dwnimg);
            document.getElementById("downdiv").appendChild(a);
            document.getElementById("downdiv").appendChild(br3);
            document.getElementById("downdiv").appendChild(br4);
            document.getElementById("downdiv").appendChild(setimg);
            document.getElementById("downdiv").appendChild(d);
            document.getElementById("downloadlnk").style.fontSize = "x-large";
            document.getElementById("optionlnk").style.fontSize = "x-large";
            var br1 = document.createElement('br');
            document.getElementById("watch7-headline").appendChild(br1);
            var br2 = document.createElement('br');
            document.getElementById("watch7-headline").appendChild(br2);
            
                
            }
    	}
	}
        
    }

        if (document.cookie.indexOf('autohd=')== -1) {
            //no cookie
         } else {
            
             if (beforestop == false) {
             var myNode = document.getElementById("movie_player");
             while (myNode.firstChild) {
                 myNode.removeChild(myNode.firstChild);
                 beforestop = true;
             }

             var url = document.URL;
             url = url.substring(0, url.length - 8);
             var vidid = url.substring(url.indexOf('=')+1);
             
             
             var player = document.createElement('iframe');
             player.id = "player1";
             player.width = "1920";
             player.height = "1080";
             player.src = "https://www.youtube.com/embed/" + vidid + "?rel=0&autoplay=1&VQ=HD720";
             player.frameborder = "0";
             document.getElementById("movie_player").appendChild(player);
             document.getElementById("player1").setAttribute("allowfullscreen", "true");
                 
             setTimeout(function(){
    
             document.getElementById("player1").width = "855";
             document.getElementById("player1").height = "480";
    
            
             }, 15000);
             }
             var url = document.URL;
             var idtest = url.substring(url.indexOf('=')+1);
             
             if (idtest === vidid){
                 
             } else {
                 
                
                
             }
         }
        
        
        
        if (document.cookie.indexOf('oldplyr=')== -1) {
            //no cookie
         } else {
            
             if (beforestop == false) {
             var myNode = document.getElementById("movie_player");
             while (myNode.firstChild) {
                 myNode.removeChild(myNode.firstChild);
                 beforestop = true;
             }

             var url = document.URL;
             url = url.substring(0, url.length - 8);
             var vidid = url.substring(url.indexOf('=')+1);
             
             
             var player = document.createElement('iframe');
             player.id = "player1";
             player.width = "855";
             player.height = "480";
             player.src = "https://youtube.googleapis.com/v/" + vidid + "?version=3&autoplay=1";
             player.frameborder = "0";
             document.getElementById("movie_player").appendChild(player);
             document.getElementById("player1").setAttribute("allowfullscreen", "true");
             }
             var url = document.URL;
             var idtest = url.substring(url.indexOf('=')+1);
             
             if (idtest === vidid){
                 
             } else {
                 
                
                
             }
         }
        
    }, 2000);
    
    setInterval(function(){
        if (document.cookie.indexOf('oldplyr=')== -1) {
            
        } else {
        if(window.location.href.indexOf("you") > -1) {
        if(window.location.href.indexOf("embed") > -1) {
        
        } else {
        if(window.location.href.indexOf("reldone") > -1) {
            
        } else {
          
            window.location.assign(document.URL + "#reldone");
            location.reload();
        }
        }
        }
        }
        }, 4000);
    
    
    setInterval(function(){
        if (document.cookie.indexOf('autohd=')== -1) {
            
        } else {
        if(window.location.href.indexOf("you") > -1) {
        if(window.location.href.indexOf("embed") > -1) {
        
        } else {
        if(window.location.href.indexOf("reldone") > -1) {
            
        } else {
          
            window.location.assign(document.URL + "#reldone");
            location.reload();
        }
        }
        }
        }
        }, 4000);
    
    setInterval(function(){
        if (window.location.href.indexOf("watch") > -1){
        if (document.cookie.indexOf('loop=')== -1){
            
        } else {
        var curtime = document.getElementsByClassName('ytp-time-current')[0].innerHTML;
        var endtime = document.getElementsByClassName('ytp-time-duration')[0].innerHTML;
        if (curtime === endtime){
         document.getElementsByClassName("ytp-play-button ytp-button")[0].click();
        }
        }
        }
        }, 1000);
    
    setInterval(function(){
        if (window.location.href.indexOf("embed") > -1){
        if (document.cookie.indexOf('loop=')== -1){
            
        } else {
        var curtime = document.getElementsByClassName('ytp-time-current')[0].innerHTML;
        var endtime = document.getElementsByClassName('ytp-time-duration')[0].innerHTML;
        if (curtime === endtime){
         document.getElementsByClassName("ytp-play-button ytp-button")[0].click();   
        }
        }
        }
        }, 1000);
    
    function resetVid() {
       
}
    var done = false;
    var cururl = document.URL;
    setInterval(function(){
        if (window.location.href.indexOf("you") > -1){
        if (document.cookie.indexOf('abuff=')== -1){
            
        } else {
            if (document.getElementsByClassName('ytp-load-progress')[0].style.transform === "scaleX(1)") {
                //setInterval(function(){
                    if (done == false) {
                        var vid = document.getElementsByClassName('video-stream html5-main-video')[0];
                        if (vid.currentTime < 20) {
                            document.getElementsByClassName('video-stream html5-main-video')[0].currentTime = 0;
                            done = true;
                        } else {
                            var tt = document.getElementsByClassName('video-stream html5-main-video')[0].currentTime;
                            var ttt = tt - 15;
                            //alert(tt);
                            //alert(ttt);
                            document.getElementsByClassName('video-stream html5-main-video')[0].currentTime = ttt;
                        }
                }
                //}, 1000);
                
                
            }
            if (document.getElementsByClassName('ytp-load-progress')[0].style.transform === "scaleX(1)") {
                
            } else {
                done = false;
            }
            if (document.getElementById("movie_player").style.visibility === "visible") {
                
            } else {
                document.getElementById("movie_player").style.visibility = "hidden";
                
                
            }
                
               if (cururl === document.URL) {
            
               } else {
                   location.reload();
               }
               
            }
        }
        }, 2000);
        
    
    setInterval(function(){
        if (window.location.href.indexOf("you") > -1){
        if (document.cookie.indexOf('abuff=')== -1){
            
        } else {
            if (document.getElementById("movie_player").style.visibility === "hidden") {
                document.getElementsByClassName('video-stream html5-main-video')[0].muted  = true;
                if (document.getElementsByClassName('ytp-load-progress')[0].style.transform === "scaleX(1)" && done == true) {
                    document.getElementById("movie_player").style.visibility = "visible";
                    document.getElementsByClassName('video-stream html5-main-video')[0].muted  = false;
                }
                
            }
                
               
            }
        }
        
        
        }, 2000);
    
    
    
// --------------------------RUNS ON 9xbuddy TO DOWNLOAD VIDEO--------------------------------------------    
    if(window.location.href.indexOf("buddy") > -1) {
    /*var iDiv = document.createElement('div');

        iDiv.id = 'block';
        iDiv.className = 'block';
        document.getElementsByTagName('body')[0].appendChild(iDiv);
        iDiv.height = window.height();
        iDiv.width = window.width();
        $(iDiv).css({
            position: 'fixed',
            top: 0,
            right: 0,
            bottom: 0,
            left: 0,
            zIndex: 999
        });*/



        
        //if(!$('#javaUserWarning').is(':visible')) {
            
            
    setInterval(function(){
    if ($(".download-link-list")[0]){
        var els = document.getElementsByClassName('download-link-download lbcolor');
        var element = $('.download-about-section li');
        var zali = element[1]
        var zalitext = zali.innerHTML
        
        if (zalitext.match("VEVO")) {
        var li = els[1]
        li.id = 'dwnload';
        var t =  $('#dwnload a').attr('href');
        
        } else {
            var li = els[2]
            li.id = 'dwnload';
            var t =  $('#dwnload a').attr('href');
        }
        
        window.location = t
        
        
        
        setTimeout(function(){
    
            window.close();
    
            
       }, 2000);
    } else {
    //alert("test");
    }
    
    }, 3000);
        
     //document.getElementById("checkboxDisableJava1").checked = true;
        
    

        
           // } else {
               // alert("Please check disable java applet and retry.");
        //}
}
});

// -----------------------Runs on YOUTUBE--------------------------------------------------------------
//$(document).keydown(function (e) {
  //  if (e.keyCode == 113) {
        //window.open("http://keepvid.com/?url=" + document.URL)
        
    //    var a = document.createElement("a");
    //a.href = "http://catchvideo.net/?url=" + document.URL;
    //var evt = document.createEvent("MouseEvents");    
    //evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
    //a.dispatchEvent(evt);
    //}
//});