Advertisement
Guest User

Untitled

a guest
Jun 21st, 2013
1,782
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var yt_userscript_youtubetools = function (j, e, h) {
  2.     var m;
  3.     var g = false;
  4.     var c;
  5.  
  6.     function n(p) {
  7.         return document.getElementById(p)
  8.     }
  9.  
  10.     function o(p, r) {
  11.         var q = new XMLHttpRequest();
  12.         q.open("GET", p, true);
  13.         q.send();
  14.         q.onreadystatechange = function () {
  15.             if (q.readyState == 4) {
  16.                 var s = q.responseText;
  17.                 r(s)
  18.             }
  19.         }
  20.     }
  21.  
  22.     function l(q) {
  23.         try {
  24.             if (window.proc_cleanbadfilename) {
  25.                 return proc_cleanbadfilename(q)
  26.             }
  27.         } catch (p) {}
  28.         q = q.replace(/\\/gi, "");
  29.         q = q.replace(/\//gi, "");
  30.         q = q.replace(/\:/gi, "");
  31.         q = q.replace(/\?/gi, "");
  32.         q = q.replace(/\"/gi, "");
  33.         q = q.replace(/\</gi, "");
  34.         q = q.replace(/\>/gi, "");
  35.         q = q.replace(/\|/gi, "");
  36.         q = q.replace(/\*/gi, "");
  37.         return q
  38.     }
  39.  
  40.     function i() {
  41.         var q = location.href.split("v=")[1];
  42.         if (!q) {
  43.             return
  44.         }
  45.         var p = q.split("&")[0];
  46.         return p
  47.     }
  48.  
  49.     function d() {
  50.         var t = n("watch7-player");
  51.         if (!t) {
  52.             return
  53.         }
  54.         var y = t.getElementsByTagName("embed")[0].src;
  55.         var u = i();
  56.         if (!u) {
  57.             return
  58.         }
  59.         var r = location.href.split(":")[0] + "://www.youtube.com/v/" + u + "&version=3&autoplay=1&fs=1";
  60.         var q = t.innerHTML;
  61.         var z = q.indexOf(y);
  62.         if (z > -1) {
  63.             q = q.substring(0, z) + r + q.substring(z + y.length)
  64.         }
  65.         t.innerHTML = q
  66.     }
  67.  
  68.     function b() {
  69.         var p = i();
  70.         if (!p) {
  71.             return
  72.         }
  73.  
  74.         function q() {
  75.             if (!c) {
  76.                 alert("Embedding this video is disabled by request.")
  77.             } else {
  78.                 top.location.href = "http://overbits.net/chrome/youtube/play/?yurl=" + escape(document.location) + "&title=" + m
  79.             }
  80.         }
  81.         if (g) {
  82.             q();
  83.             return
  84.         }
  85.         var r = "http://gdata.youtube.com/feeds/api/videos/" + p;
  86.         o(r, function (s) {
  87.             g = true;
  88.             if (s.toLowerCase().indexOf("yt:noembed") >= 0) {
  89.                 c = false
  90.             } else {
  91.                 c = true
  92.             }
  93.             q()
  94.         })
  95.     }
  96.  
  97.     function a(q, p) {
  98.         p = p + "=";
  99.         p = p.toLowerCase();
  100.         var t = q.toLowerCase().indexOf(p);
  101.         if (t < 0) {
  102.             return ""
  103.         }
  104.         q = q.substr(t + p.length);
  105.         var r = q.toLowerCase().indexOf("&");
  106.         if (r >= 0) {
  107.             return q.substr(0, r)
  108.         } else {
  109.             return q
  110.         }
  111.     }
  112.  
  113.     function k(r) {
  114.         if (r.length == 87) {
  115.             var q = r.substr(44, 40).split("").reverse().join("");
  116.             var p = r.substr(3, 40).split("").reverse().join("");
  117.             r = q.substr(21, 1) + q.substr(1, 20) + q.substr(0, 1) + q.substr(22, 9) + r.substr(0, 1) + q.substr(32, 8) + r.substr(43, 1) + p
  118.         } else {
  119.             if (r.length == 86) {
  120.                 r = r.substr(2, 15) + r.substr(0, 1) + r.substr(18, 23) + r.substr(79, 1) + r.substr(42, 1) + r.substr(43, 36) + r.substr(82, 1) + r.substr(80, 2) + r.substr(41, 1)
  121.             } else {
  122.                 if (r.length == 85) {
  123.                     var q = r.substr(44, 40).split("").reverse().join("");
  124.                     var p = r.substr(3, 40).split("").reverse().join("");
  125.                     r = q.substr(7, 1) + q.substr(1, 6) + q.substr(0, 1) + q.substr(8, 15) + r.substr(0, 1) + q.substr(24, 9) + r.substr(1, 1) + q.substr(34, 6) + r.substr(43, 1) + p
  126.                 } else {
  127.                     if (r.length == 84) {
  128.                         var q = r.substr(44, 40).split("").reverse().join("");
  129.                         var p = r.substr(3, 40).split("").reverse().join("");
  130.                         r = q + r.substr(43, 1) + p.substr(0, 6) + r.substr(2, 1) + p.substr(7, 9) + p.substr(39, 1) + p.substr(17, 22) + p.substr(16, 1)
  131.                     } else {
  132.                         if (r.length == 83) {
  133.                             var q = r.substr(43, 40).split("").reverse().join("");
  134.                             var p = r.substr(2, 40).split("").reverse().join("");
  135.                             r = q.substr(30, 1) + q.substr(1, 26) + p.substr(39, 1) + q.substr(28, 2) + q.substr(0, 1) + q.substr(31, 9) + r.substr(42, 1) + p.substr(0, 5) + q.substr(27, 1) + p.substr(6, 33) + p.substr(5, 1)
  136.                         } else {
  137.                             if (r.length == 82) {
  138.                                 var q = r.substr(34, 48).split("").reverse().join("");
  139.                                 var p = r.substr(0, 33).split("").reverse().join("");
  140.                                 r = q.substr(45, 1) + q.substr(2, 12) + q.substr(0, 1) + q.substr(15, 26) + r.substr(33, 1) + q.substr(42, 1) + q.substr(43, 1) + q.substr(44, 1) + q.substr(41, 1) + q.substr(46, 1) + p.substr(32, 1) + q.substr(14, 1) + p.substr(0, 32) + q.substr(47, 1)
  141.                             }
  142.                         }
  143.                     }
  144.                 }
  145.             }
  146.         }
  147.         return r
  148.     }
  149.  
  150.     function f() {
  151.         try {
  152.             var w = true;
  153.             var p = "";
  154.             var G = ["Download this video", "Download"];
  155.             if ((n("video-player") || n("movie_player")) && !n("embed-holder") && !n("watch-download")) {
  156.                 if (j) {
  157.                     G = j
  158.                 }
  159.                 if (n("video-player") || n("movie_player")) {
  160.                     var J = document.createElement("style");
  161.                     J.type = "text/css";
  162.                     J.innerHTML = "div#watch-download-links{display:none; width:85px; box-shadow:#999 0px 0px 3px 0px; border-bottom-left-radius:2px; border-bottom-right-radius:2px; float:left; background:#EBEBEB;}#watch-download-links div{height:25px; background:#FFF!important; line-height:25px; font-size:12px; cursor:pointer; padding:0 8px!important; margin: 1px 0px 0px 0px!important;text-align:left !important; }#watch-download-links div:hover{background:#EBEBEB!important;}#dl{float:left; padding:4px}#watch-download-links div a{color:#000!important; text-decoration:none!important; height:100%; width:100%;}#dl{float:left}#wdl{border-radius:5px; border:1px solid #EAEAEA; cursor:pointer; font-family:Arial, Helvetica, sans-serif; font-size:12px; line-height:14px;margin:0px auto 10px auto; overflow:hidden; display:none; height:auto}#wdl div{padding:5px;}#wdl div a{color:#000; text-decoration:none}#wdl div:hover{background:#D1E1FA;}#watch-actions{height:auto!important}";
  163.                     document.getElementsByTagName("head").item(0).appendChild(J)
  164.                 }
  165.                 var z;
  166.                 var C = "";
  167.                 if (n("vt")) {
  168.                     z = n("vt").innerHTML
  169.                 } else {
  170.                     z = document.getElementsByName("title").item(0).content.replace("/", "").replace(":", "")
  171.                 }
  172.                 m = "";
  173.                 if (z) {
  174.                     C = encodeURIComponent(l(z));
  175.                     m = encodeURIComponent(z)
  176.                 }
  177.                 var A;
  178.                 var E = new RegExp('"url_encoded_fmt_stream_map": ".+?",');
  179.                 var D = document.getElementsByTagName("script");
  180.                 for (H = 0; H < D.length; H++) {
  181.                     if (E.test(D[H].innerHTML)) {
  182.                         A = D[H].innerHTML
  183.                     }
  184.                 }
  185.                 if (A) {
  186.                     var K = new String(E.exec(A));
  187.                     K = K.match(/"url_encoded_fmt_stream_map": "(.*?)"/);
  188.                     K = K[1].replace(/\\u([0-9]+)/g, function (s, r) {
  189.                         return decodeURIComponent("%" + parseFloat(r))
  190.                     });
  191.                     swfs = K.split(",");
  192.                     var y = [];
  193.                     var F;
  194.                     for (H = 1; H < swfs.length - 1; H++) {
  195.                         var u = parseInt((swfs[H].match(/itag=([0-9]*)&/) || swfs[H].match(/itag=([0-9]*)$/))[1]);
  196.                         var x = (swfs[H].match(/sig=(.*?)&/) || swfs[H].match(/sig=(.*?)$/));
  197.                         var t;
  198.                         if (x) {
  199.                             t = x[1]
  200.                         } else {
  201.                             x = (swfs[H].match(/&s=(.*?)&/) || swfs[H].match(/&s=(.*?)$/));
  202.                             if (!x) {
  203.                                 continue
  204.                             }
  205.                             t = k(x[1])
  206.                         }
  207.                         swfs[H] = unescape((swfs[H].match(/url=(.*?)&/) || swfs[H].match(/url=(.*?)$/))[1]) + "&signature=" + t;
  208.                         y[0] = u;
  209.                         F = swfs[H];
  210.                         if (F.substr(F.length - 1, 1) == "\\") {
  211.                             F = F.substr(0, F.length - 1)
  212.                         }
  213.                         if (y[0] == "37") {
  214.                             p += '<div><a href="' + F + "&title=" + C + '">1080p (MP4)</a></div>'
  215.                         } else {
  216.                             if (y[0] == "45") {
  217.                                 p += '<div><a href="' + F + "&title=" + C + '">720p (WebM)</a></div>'
  218.                             } else {
  219.                                 if (y[0] == "22") {
  220.                                     p += '<div><a href="' + F + "&title=" + C + '">720p (MP4)</a></div>'
  221.                                 } else {
  222.                                     if (y[0] == "44") {
  223.                                         p += '<div><a href="' + F + "&title=" + C + '">480p (WebM)</a></div>'
  224.                                     } else {
  225.                                         if (y[0] == "35") {
  226.                                             p += '<div><a href="' + F + "&title=" + C + '">480p (FLV)</a></div>'
  227.                                         } else {
  228.                                             if (y[0] == "43") {
  229.                                                 p += '<div><a href="' + F + "&title=" + C + '">360p (WebM)</a></div>'
  230.                                             } else {
  231.                                                 if (y[0] == "34") {
  232.                                                     p += '<div><a href="' + F + "&title=" + C + '">360p (FLV)</a></div>'
  233.                                                 } else {
  234.                                                     if (y[0] == "18") {
  235.                                                         p += '<div><a href="' + F + "&title=" + C + '">360p (MP4)</a></div>'
  236.                                                     } else {
  237.                                                         if (y[0] == "5") {
  238.                                                             p += '<div><a href="' + F + "&title=" + C + '">240p (FLV)</a></div>'
  239.                                                         } else {
  240.                                                             if (y[0] == "36") {
  241.                                                                 p += '<div><a href="' + F + "&title=" + C + '">240p (3GP)</a></div>'
  242.                                                             } else {
  243.                                                                 if (y[0] == "17") {
  244.                                                                     p += '<div><a href="' + F + "&title=" + C + '">144p (3GP)</a></div>'
  245.                                                                 }
  246.                                                             }
  247.                                                         }
  248.                                                     }
  249.                                                 }
  250.                                             }
  251.                                         }
  252.                                     }
  253.                                 }
  254.                             }
  255.                         }
  256.                     }
  257.                 } else {
  258.                     p = ""
  259.                 } if (n("watch-like-dislike-buttons") && !n("watch-download")) {
  260.                     var O = document.createElement("button");
  261.                     O.setAttribute("id", "watch-download");
  262.                     O.setAttribute("class", "yt-uix-button yt-uix-button-text yt-uix-tooltip");
  263.                     O.setAttribute("data-tooltip", G[0]);
  264.                     O.setAttribute("data-tooltip-title", G[0]);
  265.                     O.setAttribute("title", G[0]);
  266.                     O.innerHTML = '<span class="yt-uix-button-content">' + G[1] + '</span>&nbsp;<img class="yt-uix-button-arrow" src="http://s.ytimg.com/yt/img/pixel-vfl73.gif" alt=""><ul class="yt-uix-button-menu" style="display: none"><li id="watch-download-links">' + q + "</li></ul>";
  267.                     n("watch-like-dislike-buttons").parentNode.insertBefore(O, n("watch-like-dislike-buttons").nextSibling)
  268.                 }
  269.                 if (n("watch-download-links") || n("wdl")) {
  270.                     var q = "";
  271.                     q += '<div id="uyd_repeat"></div>';
  272.                     if (n("wdl")) {
  273.                         watchdownloadlink = n("wdl")
  274.                     } else {
  275.                         watchdownloadlink = n("watch-download-links")
  276.                     }
  277.                     q += p;
  278.                     if (h) {
  279.                         try {
  280.                             var L = JSON.parse(h);
  281.                             for (var H = 0; H < L.length; H++) {
  282.                                 var B = L[H].link;
  283.                                 B = B.replace(/%s/gi, escape(document.location)) + "&title=" + m;
  284.                                 q += '<div id="__' + L[H].title + '__"><a href="' + B + '" target="_blank" title="' + L[H].title + '">' + L[H].title + "</a></div>"
  285.                             }
  286.                         } catch (v) {}
  287.                     } else {
  288.                         if (w && e) {
  289.                             q += '<div id="uyd_mp3"><a href="' + e + escape(document.location) + '" target="_blank" title="MP3 Convert">MP3 Convert</a></div>'
  290.                         }
  291.                     }
  292.                     watchdownloadlink.innerHTML = q;
  293.                     var A = n("uyd_skipad");
  294.                     if (A) {
  295.                         var N = document.createElement("a");
  296.                         N.href = "javascript:void(0)";
  297.                         N.onclick = d;
  298.                         N.innerHTML = "Skip this video AD";
  299.                         N.title = "Skip this video AD";
  300.                         A.appendChild(N)
  301.                     }
  302.                     var A = n("uyd_repeat");
  303.                     if (A) {
  304.                         var N = document.createElement("a");
  305.                         N.href = "javascript:void(0)";
  306.                         N.onclick = b;
  307.                         N.innerHTML = "Repeat play";
  308.                         N.title = "Repeat play";
  309.                         A.appendChild(N)
  310.                     }
  311.                 }
  312.             }
  313.         } catch (I) {}
  314.     }
  315.     f()
  316. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement