Download Audio & Video for YouTube v3.0 (FHD, MP3, FLV, WKV, etc) - Saveclipbro.com (No Ads!)

This script helps to add a download button. Saveclipbro.com features the fastest ways to download YouTube videos and audios, ensuring quality.

目前为 2018-07-02 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Download Audio & Video for YouTube v3.0 (FHD, MP3, FLV, WKV, etc) - Saveclipbro.com (No Ads!)
  3. // @description This script helps to add a download button. Saveclipbro.com features the fastest ways to download YouTube videos and audios, ensuring quality.
  4. // @namespace https://greasyfork.org/
  5. // @homepageURL https://greasyfork.org/scripts/34613
  6. // @supportURL https://greasyfork.org/scripts/34613/feedback
  7. // @author Punisher
  8. // @version 3.0
  9. // @date 2018-07-01
  10. // @compatible chrome
  11. // @compatible firefox
  12. // @compatible opera
  13. // @compatible safari
  14. // @license CC BY-NC-ND 4.0 International. https://creativecommons.org/licenses/by-nc-nd/4.0/
  15. // @match *://www.youtube.com/*
  16. // ==/UserScript==
  17.  
  18. if("undefined" == typeof (punisher)) {
  19. var punisher = {
  20.  
  21. userUrl: 'http://saveclipbro.com/convert?linkToDownload=',
  22. currentMediaUrl: null,
  23. getParam : function (document, variable){
  24. var query = document.location.search.substring(1);
  25. var vars = query.split("&");
  26. for (var i=0;i<vars.length;i++) {
  27. var pair = vars[i].split("=");
  28. if(pair[0] == variable){return pair[1];}
  29. } return(false);
  30. },
  31.  
  32. init : function() {
  33. punisher.onPageLoad();
  34. },
  35.  
  36. addButtons: function(document) {
  37. var icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfiBgcWJSfQnWd+AAAA8klEQVQoz4XQvS6DcRQG8F8/SBEf0UR160J0MAkuwCAxsolRuADXYMF1WEQT6UDcgMkgEl9N2MSgvhLRhPf9G5rykiZ9znJyzpNznuehA1KJftSyHBp2PSQJaUsmPLq2bwiv5pwmr2QdCG4tqguCZ1O/y3QnDdm2035rCmr2RFkFw/rQpSgDggEbxh2piFhwoSH48iQSBC/W3QkOdTefbIqFREXqPluEjNiZSWPCTyYpPdK4dyKTwYcrsyqKBv9ILZp32TJb1mvVuyB4UxMEse2miha67YjFtky7ERwb+e8/r6oqjxXnZtpFVFICOeXOKYNvVG9Jr+BMPlYAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDYtMDdUMjI6Mzc6MzktMDQ6MDAbP7BNAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA2LTA3VDIyOjM3OjM5LTA0OjAwamII8QAAAABJRU5ErkJggg==';
  38. var punisherpather = punisher.userUrl + encodeURIComponent(document.URL) + '&submit=';
  39. var div_embed = null;
  40. var target = '_blank';
  41. if(document.getElementById('meta-contents')) {
  42. var div_embed = document.getElementById('meta-contents').querySelector('#top-row ytd-video-owner-renderer.ytd-video-secondary-info-renderer #sponsor-button');
  43. div_embed.innerHTML += '<paper-button subscribed id="punisher" style="float:right" raised class="ytd-button-renderer"><a href="' + punisherpather + '" target="' + target + '" style="text-decoration: none; color: black;" class="style-scope ytd-subscribe-button-renderer"><img style="vertical-align: bottom;" src="' + icon + '"> <strong>Download</strong></a></paper-button>'+ div_embed.innerHTML;
  44. } else if(document.getElementById('watch8-sentiment-actions')) {
  45. var div_embed = document.getElementById('watch8-sentiment-actions');
  46. var buttonclass = "yt-uix-button yt-uix-button-default yt-uix-tooltip";
  47. var spanclass = "yt-uix-button-group";
  48. div_embed.innerHTML = '<span id="punisher" class="' + spanclass + '"><a href="' + punisherpather + '" target="' + target + '"><button class="start ' + buttonclass + '" type="button" title="Download"><img alt="" class="" style="" src="' + icon + '"> <span class="yt-uix-button-content"><strong>Download</strong></span></button></a>' + div_embed.innerHTML;
  49. }
  50. },
  51.  
  52. onPageLoad : function() {
  53. if(document.body && document.domain == 'www.youtube.com') {
  54. setInterval(punisher.check, 1300);
  55. punisher.check();
  56. }
  57. },
  58.  
  59. check: function() {
  60. if(punisher.currentMediaUrl != document.URL && typeof ytplayer != 'undefined' && ytplayer) {
  61. punisher.currentMediaUrl = document.URL;
  62. if(document.getElementById('punisher')) {
  63. document.getElementById('punisher').outerHTML="";
  64. }
  65. }
  66. if(!document.getElementById('punisher') && typeof ytplayer != 'undefined' && ytplayer) {
  67. punisher.addButtons(document);
  68. }
  69. },
  70. };
  71. }
  72. punisher.init();