u-Youtube

make Youtube under ur control

当前为 2023-02-04 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name u-Youtube
  3. // @name:zh-CN 功夫制霸YouTube
  4. // @name:zh-TW 功夫製霸YouTube
  5. // @name:en u-Youtube
  6. // @name:ua u-Youtube
  7. // @name:ja カンフー支配YouTube
  8. // @name:ko 쿵푸 지배YouTube
  9. // @name:it u-Youtube
  10. // @name:de u-Youtube
  11. // @name:fr u-Youtube
  12. // @namespace https://github.com/rasso1/u-Youtube
  13. // @version 1.40
  14. // @description make Youtube under ur control
  15. // @description:zh-TW make Youtube under ur control
  16. // @description:en make Youtube under ur control
  17. // @description:ja あなたのコントロール下でYouTubeを作る
  18. // @description:ko 유튜브를 당신의 통제하에 두십시오
  19. // @description:it rendi youtube sotto il tuo controllo
  20. // @description:de Machen Sie YouTube unter Ihrer Kontrolle
  21. // @description:fr faire de youtube sous votre contrôle
  22. // @author ok!
  23. // @match https://www.youtube.com/*
  24. // @match https://youtube.com/*
  25. // @run-at document-start
  26. // @contributionURL https://paypal.me/kongfuY
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. // ==/UserScript==
  36. (function() {
  37. 'use strict';
  38. var expand_description = 1;var subscription_up = 1;
  39. var sec_sub,sec_fwd,wheel_sec,buffer_time,dark_mode,video_speed,video_quality,english_mode,comment_right,temp_buffer,temp_speed,speed_display,current_time,doc_s,icare_mode,ytplay_bezel;
  40. var inner_hight=window.innerHeight-parseInt(window.innerHeight/7);
  41. var inner_width=window.innerWidth*0.37;
  42. //var inner_hight=500;
  43.  
  44. var youtube_hand = {
  45. message_box: {
  46. show: function(message) {
  47. clearTimeout(ytplay_bezel);
  48. document.querySelector("#container > #movie_player .ytp-bezel-text").innerHTML = message;
  49. document.querySelector("#container > #movie_player .ytp-bezel-text").parentNode.parentNode.style.display = "";
  50. document.querySelector("#container > #movie_player .ytp-bezel-text").parentNode.parentNode.classList.remove("ytp-bezel-text-hide");
  51. ytplay_bezel = setTimeout(youtube_hand.message_box.hide, 2500);
  52. },
  53. hide: function() {
  54. document.querySelector("#container > #movie_player .ytp-bezel-text").innerText = "";
  55. document.querySelector("#container > #movie_player .ytp-bezel-text").parentNode.parentNode.style.display = "none";
  56. }
  57. },
  58. dark_eye:function (){
  59. if(localStorage.getItem('icare_mode')==1){
  60. document.querySelector("html").style="font-size:13px;font-family: Roboto, Arial, sans-serif;"
  61. }
  62. else {document.querySelector("html").style="font-size:10px;font-family: Roboto, Arial, sans-serif;"}
  63.  
  64. if(localStorage.getItem('dark_mode')==1){
  65. if(!document.querySelector("html").hasAttribute("dark")){
  66. document.querySelector("html").setAttribute("dark",true);}
  67. }
  68. else if(document.querySelector("html").hasAttribute("dark"))
  69. {document.querySelector("html").removeAttribute("dark")}
  70. if(localStorage.getItem("comment_right")==1&&document.querySelector("#columns #primary #primary-inner #sections")&&document.querySelector("#secondary #secondary-inner")){
  71. //评论右上移
  72. document.querySelector("#columns #primary #primary-inner #sections").style="width:"+inner_width+"px;height:"+inner_hight+"px;overflow-y:auto";
  73. document.querySelector("#columns #primary #primary-inner #sections").classList.add('standardized-themed-scrollbar');
  74. // document.querySelector("#columns #primary #primary-inner #sections")
  75. document.querySelector("#secondary #secondary-inner").append(document.querySelector("#columns #primary #primary-inner #sections"));
  76. document.querySelector("#page-manager #columns > #secondary > #secondary-inner > #sections").onscroll=function(){
  77. document.querySelector("body").style.overflow="hidden";
  78. }
  79. document.querySelector("#page-manager #columns > #secondary > #secondary-inner > #sections").onpointerleave=function(){
  80. document.querySelector("body").style.overflow="";
  81. }
  82. /*
  83. document.querySelector("#page-manager #columns > #secondary > #secondary-inner > #sections").onscroll=function(){
  84. let comment_height= parseInt(document.querySelector("#page-manager #columns > #secondary > #secondary-inner > #sections").style.height);
  85. comment_height+=1;
  86. document.querySelector("#page-manager #columns > #secondary > #secondary-inner > #sections").style.height = comment_height+"px";
  87. document.querySelector("#page-manager #columns > #secondary > #secondary-inner > #sections").style.float="right";
  88. };
  89. */
  90. //related 左下移
  91. document.querySelector("#columns #primary #primary-inner").append(document.querySelector("#secondary #secondary-inner #related"));
  92.  
  93. }
  94. // else if(document.querySelector("yt-live-chat-app")){document.querySelector("#secondary #secondary-inner").append(document.querySelector("yt-live-chat-app"))}
  95. },
  96. dark_eye1:function (){
  97. if(localStorage.getItem('dark_mode')==1){
  98. var style_type = document.createElement("style");style_type.id = "style_type";
  99. style_type.innerHTML = `#end > div.dropdown-hover > div{font-size:12px;color:#bbb !important;background-color:#202020 !important;}
  100. #end > div.dropdown-hover > button{background-color:#222 !important;} #end > div.dropdown-hover path{fill:transparent !important;stroke:white !important;}
  101. #end > div.dropdown-hover > div > div{color:#aaa !important;background-color:#202020 !important;}
  102. #end > div.dropdown-hover > div > div p{font-size:12px;color:#bbb !important;background-color:#202020 !important;}
  103. .dropdown-hover button div{font-size:12px;color:#aaa !important;background-color:#333 !important;}
  104. #sec_sub,#sec_fwd,#wheel_sec,#buffer_time{font-size:12px;color:#bbb !important;background-color:#333 !important;border-radius:5px;}`;
  105. document.head.appendChild(style_type);
  106. }
  107. },
  108.  
  109. //播放设置
  110. play_menu:function(){
  111.  
  112.  
  113. var html_app = document.createElement("div");
  114. html_app.innerHTML = `
  115. <button style="border:none;outline:none;background-color:#fff;height:37px;width:37px;margin-right:10px;" aria-label="缓存/速度设置"><svg viewBox="0 0 24 24" preserveAspectRatio="xMidYMid meet" focusable="false" style="pointer-events: none; display: block; width: 100%; height: 100%;"><g class="style-scope yt-icon">
  116. <path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.1-1.65c.2-.15.25-.42.13-.64l-2-3.46c-.12-.22-.4-.3-.6-.22l-2.5 1c-.52-.4-1.08-.73-1.7-.98l-.37-2.65c-.06-.24-.27-.42-.5-.42h-4c-.27 0-.48.18-.5.42l-.4 2.65c-.6.25-1.17.6-1.7.98l-2.48-1c-.23-.1-.5 0-.6.22l-2 3.46c-.14.22-.08.5.1.64l2.12 1.65c-.04.32-.07.65-.07.98s.02.66.06.98l-2.1 1.65c-.2.15-.25.42-.13.64l2 3.46c.12.22.4.3.6.22l2.5-1c.52.4 1.08.73 1.7.98l.37 2.65c.04.24.25.42.5.42h4c.25 0 .46-.18.5-.42l.37-2.65c.6-.25 1.17-.6 1.7-.98l2.48 1c.23.1.5 0 .6-.22l2-3.46c.13-.22.08-.5-.1-.64l-2.12-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z" fill="transparent" stroke="black"></path>
  117. </g></svg>
  118. </button>
  119.  
  120. <div style="background:#fff;border-radius: 10px;left: -160px;right: 0;margin-left: 0;margin-right: -100px;padding-top: 10px;" class="dropdown-box fadeInDown"><div class="item clearfix" style="border-radius:10px;"><p style="margin:10px auto;font-size:18px;"><span class="mandarin invisible">播放设置&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="english">Playback Setting&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><font size=2>Chs </font><input style="margin:auto" id="english_mode" class="switch switch-anim" type="checkbox" checked></p>
  121. <div style="margin:10px auto;font-size:12px;"><hr /><hr /></div>
  122. <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible" style="margin:10px auto;font-size:16px;">当前速度:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="english">current speed:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="speed_display"></span></p>
  123. <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">选择播放速度:&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="english">specify spee<font color=#5bb7fe>d</font>:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><button id="speed_button" style="background-color: #5bb7fe;border-radius:5px;color:white;font-size:12px;"> &nbsp; 1x&nbsp; </button></p><input type="range" min="0" max="100" value="25" class="slider" id="speed_slider"><br /><br />
  124. <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">跳过片头秒数:&nbsp;&nbsp;&nbsp;</span><span class="english">skip the title:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><input type="text" id="sec_fwd" style="width:40px;height:12px;vertical-align: middle;padding: 5px;background-color:#fff;border: 2px solid #ddd;border-radius:5px;font-size:12px;" placeholder="seconds">
  125. <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">跳过片尾秒数:&nbsp;&nbsp;&nbsp;</span><span class="english">skip the end:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><input type="text" id="sec_sub" style="width:40px;height:12px;vertical-align: middle;padding: 5px;background-color: #fff;border: 2px solid #ddd;border-radius:5px;font-size:12px;" placeholder="seconds"></p>
  126. <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">鼠标滚动秒数:&nbsp;&nbsp;&nbsp;</span><span class="english">mouse scroll:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><input type="text" id="wheel_sec" style="width:40px;height:12px;vertical-align: middle;padding: 5px;background-color: #fff;border: 2px solid #ddd;border-radius:5px;font-size:12px;" placeholder="seconds"></p>
  127. <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">暂停缓存秒数:&nbsp;&nbsp;&nbsp;</span><span class="english">paus<font color=#5bb7fe>e</font> n cashing:&nbsp;&nbsp;&nbsp;&nbsp;</span><input type="text" id="buffer_time" style="width:40px;height:12px;vertical-align: middle;padding: 5px;background-color: #fff;border: 2px solid #ddd;border-radius:5px;font-size:12px;" placeholder="seconds"></p>
  128. <p style="margin:10px auto;font-size:16px;"><span class="mandarin invisible">播放质量:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> <span class="english">specify resolution&nbsp;</span> <select id="video_quality" style="border-radius:5px;"><option value="auto">auto</option><option value="hd2160">4K 2160p</option><option value="hd1440">HD 1440p</option><option value="hd1080">HD 1080p</option><option value="hd720">720p</option> <option value="large">480p</option><option value="medium">360p</option><option value="small">240p</option><option value="tiny">144p</option> </select></p>
  129. <p style="margin:10px auto 20px auto;font-size:16px;"><span class="mandarin invisible">评论载右:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="english">comments to right:&nbsp;&nbsp;&nbsp;</span><input style="margin:auto" id="comment_to" class="switch switch-anim" type="checkbox" checked></p>
  130. <p style="margin:10px auto 20px auto;font-size:16px;"><span class="mandarin invisible">眼保模式 :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="english">iCare mode:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><input style="margin:auto" id="icare_mode" class="switch switch-anim" type="checkbox" checked></p>
  131. <p style="margin:10px auto 20px auto;font-size:16px;"><span class="mandarin invisible">暗夜模式 :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="english">dark mode:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><input style="margin:auto" id="dark_mode" class="switch switch-anim" type="checkbox" checked></p>
  132. <p style="margin:10px auto 20px auto;font-size:16px;"><span class="mandarin invisible">捐赠&#126980;:&nbsp; </span><span class="english">donate&#127854;:&nbsp;&nbsp;</span><a href="https://paypal.me/kongfuY" style="color:#5bb7fe;">paypal.me/kongfuY</a></p></div></div>
  133.  
  134. <style>#speed_slider {width: 175px;}.invisible {display: none;}.ytd-feed-filter-chip-bar-renderer.style-scope{z-index:999 !important;}.fadeInDown{-webkit-animation:fadeInDown .5s .2s ease both;-moz-animation:fadeInDown .5s .2s ease both}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-10px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInDown{0%{opacity:0;-moz-transform:translateY(-10px)}100%{opacity:1;-moz-transform:translateY(0)}}.dropdown{position:relative}.dropdown-box{display:none;position:absolute;z-index:999999999}.dropdown-box.top{bottom:100%;padding-bottom:10px;left:50%;margin-left:-80px}.dropdown-box.bottom{top:100%;padding-top:10px;left:50%;margin-left:-80px}.dropdown-box.left{left:100%;padding-left:10px;bottom:0}.dropdown-box.right{right:100%;padding-right:10px;bottom:0}.dropdown-box .item{padding:10px;width:250px;border-radius:2px}.dropdown-hover{position:relative}.dropdown-hover:hover .dropdown-box{display:block}</style>
  135. <style>a {color: #670000;}.switch {width: 26px;height: 13px;position: relative;border: 1px solid #dfdfdf;background-color: #fdfdfd;box-shadow: #dfdfdf 0 0 0 0 inset; border-radius: 18px;background-clip: content-box;display: inline-block;-webkit-appearance: none;user-select: none;outline: none;} .switch:before { content: '';width: 13px;height: 13px;position: absolute;top: 0;left: 0;border-radius: 12px;background-color: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);}.switch:checked {border-color: #5bb7fe;box-shadow: #5bb7fe 0 0 0 16px inset;background-color: #5bb7fe;}.switch:checked:before {left: 15px;}.switch.switch-anim {transition: border cubic-bezier(0, 0, 0, 1) 0.4s, box-shadow cubic-bezier(0, 0, 0, 1) 0.4s;}.switch.switch-anim:before {transition: left 0.3s;}.switch.switch-anim:checked {box-shadow: #5bb7fe 0 0 0 14px inset;background-color: #5bb7fe;transition: border ease 0.4s, box-shadow ease 0.4s, background-color ease 1.2s;}.switch.switch-anim:checked:before {transition: left 0.3s;}.text-red {color: #aaa;}</style>
  136. <style>.standardized-themed-scrollbar::-webkit-scrollbar {
  137. width: 1em;
  138. }
  139. .standardized-themed-scrollbar::-webkit-scrollbar-track {
  140. -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  141. }
  142. .standardized-themed-scrollbar::-webkit-scrollbar-thumb {
  143. background-color: darkgrey;
  144. height: 56px;border-radius: 10px;border: 4px solid transparent;background-clip: content-box;
  145. }</style>
  146. `;
  147. html_app.classList.add('dropdown-hover');
  148. document.querySelector("#end").appendChild(html_app);
  149.  
  150. //
  151. var speed_slider=document.getElementById("speed_slider"),speed_button=document.getElementById("speed_button"),
  152. y=document.getElementById("sec_sub"),z=document.getElementById("wheel_sec"),x=document.getElementById("buffer_time"),w=document.getElementById("dark_mode"),
  153. s=document.getElementById("video_quality"),v=document.getElementById("sec_fwd"),t=document.getElementById("english_mode"),c=document.getElementById("comment_to"),iii=document.getElementById("icare_mode");
  154. dark_mode = localStorage.getItem('dark_mode');comment_right = localStorage.getItem('comment_right');icare_mode = localStorage.getItem('icare_mode');
  155. var english_mode = localStorage.getItem('english_mode');
  156. speed_display=document.getElementById("speed_display");
  157. const mandarins = document.querySelectorAll('.mandarin');const englishs = document.querySelectorAll('.english');
  158.  
  159.  
  160. video_speed = localStorage.getItem('speed');sec_fwd = localStorage.getItem('sec_fwd');sec_sub = localStorage.getItem('sec_sub');
  161. wheel_sec = localStorage.getItem('wheel_sec');buffer_time = localStorage.getItem('buffer_time');
  162. video_quality = localStorage.getItem('video_quality')?localStorage.getItem('video_quality'):"auto";
  163.  
  164. english_mode = localStorage.getItem('english_mode');
  165. //判读英文菜单
  166. if(localStorage.getItem('english_mode')==1){
  167. for (const mandarin of mandarins) {
  168. mandarin.className -= ' invisible';
  169. }
  170. for (const english of englishs) {
  171. english.className += ' invisible';
  172. }
  173. }
  174.  
  175. video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x";
  176.  
  177. setTimeout(function (){
  178. if(video_speed&&document.querySelector('#movie_player'))
  179. document.querySelector("#movie_player > div.html5-video-container > video").playbackRate = video_speed;},4000);
  180.  
  181. speed_slider.value = localStorage.getItem('speed')*25;
  182.  
  183. speed_slider.oninput=function(){localStorage.setItem('speed',this.value/25);video_speed = localStorage.getItem('speed');video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x";
  184. document.querySelector("#movie_player > div.html5-video-container > video").playbackRate = video_speed;
  185. }
  186.  
  187. speed_button.onclick=function(){localStorage.setItem('speed',1);video_speed = localStorage.getItem('speed');video_speed?speed_display.innerHTML=video_speed+"x":speed_display.innerHTML="1x";
  188. document.querySelector("#movie_player > div.html5-video-container > video").playbackRate = video_speed;
  189. speed_slider.value = localStorage.getItem('speed')*25;
  190. }
  191.  
  192. sec_fwd?v.value=sec_fwd:v.value="";
  193. v.onchange=function(){localStorage.setItem('sec_fwd',this.value);sec_fwd = localStorage.getItem('sec_fwd');sec_fwd?v.value=sec_fwd:v.value="";
  194. }
  195. sec_sub?y.value=sec_sub:y.value="";
  196. y.onchange=function(){localStorage.setItem('sec_sub',this.value);sec_sub = localStorage.getItem('sec_sub');sec_sub?y.value=sec_sub:y.value="";
  197. }
  198.  
  199. wheel_sec?z.value=wheel_sec:z.value="";
  200. z.onchange=function(){localStorage.setItem('wheel_sec',this.value);wheel_sec = localStorage.getItem('wheel_sec');wheel_sec?z.value=wheel_sec:z.value="";
  201. }
  202. buffer_time?x.value=buffer_time:x.value="";
  203. x.onchange=function(){localStorage.setItem('buffer_time',this.value);buffer_time = localStorage.getItem('buffer_time');buffer_time?x.value=buffer_time:x.value="";
  204. }
  205. c.checded=comment_right; if(comment_right!=1){document.getElementById("comment_to").removeAttribute('checked');}
  206. c.onchange=function(){if(c.checked){localStorage.setItem('comment_right','1');youtube_hand.dark_eye();}
  207. else{localStorage.setItem('comment_right',0);
  208. //评论右上移
  209.  
  210. document.querySelector("#columns #primary #primary-inner").append(document.querySelector("#secondary #secondary-inner #sections"));
  211. //related 左下移
  212. document.querySelector("#secondary #secondary-inner").append(document.querySelector("#related"));
  213. document.querySelector("#secondary #secondary-inner #sections").remove();
  214.  
  215. }
  216. comment_right = localStorage.getItem('comment_right');
  217. }
  218.  
  219. iii.checded=icare_mode; if(icare_mode!=1){document.getElementById("icare_mode").removeAttribute('checked');}
  220. iii.onchange=function(){if(iii.checked){localStorage.setItem('icare_mode','1');}
  221. else{localStorage.setItem('icare_mode',0);
  222. }
  223. icare_mode = localStorage.getItem('icare_mode');
  224. }
  225.  
  226. w.checded=dark_mode; if(dark_mode!=1){document.getElementById("dark_mode").removeAttribute('checked');}
  227. w.onchange=function(){if(w.checked){localStorage.setItem('dark_mode','1');youtube_hand.dark_eye();youtube_hand.dark_eye1();}
  228. else{localStorage.setItem('dark_mode',0);
  229. document.querySelector("html").removeAttribute("dark");
  230. document.querySelector('#style_type').remove();
  231. }
  232. dark_mode = localStorage.getItem('dark_mode');
  233. }
  234. t.checded=english_mode; if(english_mode!=1){document.getElementById("english_mode").removeAttribute('checked');}
  235. t.onchange=function(){if(t.checked){localStorage.setItem('english_mode','1');
  236. for (const mandarin of mandarins) {
  237. mandarin.className -= ' invisible';}
  238. for (const english of englishs) {
  239. english.className += ' invisible';}
  240. }
  241. else{localStorage.setItem('english_mode',0);
  242. for (const mandarin of mandarins) {
  243. mandarin.className += ' invisible';}
  244. for (const english of englishs) {
  245. english.className -= ' invisible';}
  246. }
  247. english_mode = localStorage.getItem('english_mode');
  248. }
  249.  
  250. if(video_quality){
  251. for(var i=0;i<s.length;i++){
  252. if(s.options[i].value==video_quality){
  253. s.options[i].selected=true;
  254. }
  255. }
  256. }
  257. s.onchange=function (){
  258. var quality_value = s[s.selectedIndex].getAttribute("value");
  259. localStorage.setItem('video_quality',quality_value);
  260. video_quality = localStorage.getItem('video_quality');
  261. var avail_quali;var v_elem = document.querySelector("#movie_player");
  262. if((avail_quali = v_elem.getAvailableQualityLevels())&&avail_quali.indexOf(video_quality) == -1){
  263. v_elem.setPlaybackQualityRange(avail_quali[0],avail_quali[0]);
  264. }
  265. else{v_elem.setPlaybackQualityRange(video_quality,video_quality);}
  266. }
  267.  
  268. },
  269.  
  270. play_main:function (){
  271.  
  272. sec_fwd = localStorage.getItem('sec_fwd');
  273. sec_sub = localStorage.getItem('sec_sub');
  274. wheel_sec = localStorage.getItem('wheel_sec');
  275. buffer_time = localStorage.getItem('buffer_time');
  276.  
  277. var video_speed = localStorage.getItem('speed');
  278.  
  279. var video_elem,v_elem;
  280.  
  281.  
  282. //每3秒试执行主应用操作
  283. var main_timer = setInterval(function () {
  284. video_elem = document.querySelector("#movie_player > div.html5-video-container > video");
  285. v_elem = document.querySelector("#movie_player");
  286.  
  287. if (video_elem){
  288. //main_opr();
  289.  
  290. video_elem.onloadeddata = function (){
  291.  
  292. main_opr();
  293. setTimeout(function(){
  294. if(buffer_time&&document.querySelector("#info-text > #info-strings > yt-formatted-string")){
  295. youtube_hand.message_box.show("<div>video speed "+video_speed+"x</div><div>cashe "+buffer_time+" seconds</div><div>"+document.querySelector("#info-strings > yt-formatted-string").innerText+" & "+document.querySelector("#count > ytd-video-view-count-renderer > span.view-count.style-scope.ytd-video-view-count-renderer").innerText+"</div>");
  296. }
  297. //document.querySelector("#info-text > #info-strings > yt-formatted-string").innerText
  298. else if(document.querySelector("#info-text > #info-strings > yt-formatted-string")){
  299. youtube_hand.message_box.show("<div>video speed "+video_speed+"x</div><div>no cashe</div><div>"+document.querySelector("#info-strings > yt-formatted-string").innerText+" & "+document.querySelector("#count > ytd-video-view-count-renderer > span.view-count.style-scope.ytd-video-view-count-renderer").innerText+"</div>");
  300. }
  301. },4000)
  302. setTimeout(function(){video_elem.onloadeddata = "";},2000)
  303.  
  304. }
  305. /* document.addEventListener("yt-navigate-finish", function() {
  306. video_elem.currentTime=0;
  307. current_time=0;
  308. main_opr();
  309. }) */
  310.  
  311. //尝试取消看看,是否你能修复新播放视频卡顿,跳伞亮的情况
  312.  
  313. video_elem.ondurationchange = function(){
  314. video_elem.currentTime=0;
  315. //current_time=0;
  316. video_speed = localStorage.getItem('speed');
  317. if(buffer_time&&document.querySelector("#info-text > #info-strings > yt-formatted-string")){
  318. youtube_hand.message_box.show("<div>video speed "+video_speed+"x</div><div>cashe "+buffer_time+" seconds</div><div>"+document.querySelector("#info-strings > yt-formatted-string").innerText+" & "+document.querySelector("#count > ytd-video-view-count-renderer > span.view-count.style-scope.ytd-video-view-count-renderer").innerText+"</div>");
  319. }
  320. else if(document.querySelector("#info-text > #info-strings > yt-formatted-string")){
  321. youtube_hand.message_box.show("<div>video speed "+video_speed+"x</div><div>no cashe</div><div>"+document.querySelector("#info-strings > yt-formatted-string").innerText+" & "+document.querySelector("#count > ytd-video-view-count-renderer > span.view-count.style-scope.ytd-video-view-count-renderer").innerText+"</div>");
  322. }
  323. main_opr();
  324. }
  325.  
  326.  
  327.  
  328. clearInterval(main_timer);}
  329. },100)
  330.  
  331. //主应用操作
  332. function main_opr() {
  333. doc_s = window.document;
  334. //视频质量选择
  335.  
  336. var avail_quali;var current_time;
  337. if((avail_quali = v_elem.getAvailableQualityLevels())&&avail_quali.indexOf(video_quality) == -1){
  338. v_elem.setPlaybackQualityRange(avail_quali[0],avail_quali[0]);
  339. }
  340. else if(video_quality=="auto"){}
  341. else if(video_quality){v_elem.setPlaybackQualityRange(video_quality,video_quality);}
  342. //点开视频介绍
  343. setTimeout(function(){
  344. if(expand_description){
  345.  
  346. if(document.getElementById("action-panel-details")) {
  347. document.getElementById("action-panel-details").classList.remove("yt-uix-expander-collapsed");
  348. }
  349.  
  350. if(document.querySelector("#more > .more-button.style-scope.ytd-video-secondary-info-renderer")) {
  351. document.querySelector("#more > .more-button.style-scope.ytd-video-secondary-info-renderer").click();
  352. }
  353. if(document.querySelector("#expand")){
  354. document.querySelector("#expand").click();
  355. }
  356. }
  357. },5000);
  358. //前跳过秒数+速度+播放质量设定
  359. video_elem.oncanplay = function(){
  360. if(video_speed&&video_elem){
  361. video_elem.playbackRate = video_speed;
  362. }
  363. // if(current_time>200){current_time=0}
  364. if(sec_fwd&&(video_elem.currentTime < sec_fwd/1)){
  365. video_elem.currentTime += sec_fwd/1;
  366. video_elem.oncanplay = "";
  367. }
  368. // video_elem.currentTime += 1;
  369.  
  370. }
  371.  
  372. //暂停缓存
  373.  
  374. sec_sub = localStorage.getItem('sec_sub');
  375. video_elem.onpause = function(){
  376. //youtube_hand.message_box.show('<div>'+document.querySelector("#header-author yt-formatted-string > a").innerText+'</div>');
  377. if(!buffer_time||buffer_time == 0){return;}
  378. if(parseInt(video_elem.currentTime)==parseInt(video_elem.duration)){current_time=0;video_elem.onpause = "";video_elem.onplay = "";video_elem.oncanplaythrough ="";}
  379. else{current_time = parseInt(video_elem.currentTime);
  380. video_elem.oncanplaythrough = function(){
  381. if(parseInt(video_elem.currentTime)==parseInt(video_elem.duration)){current_time=0;video_elem.onpause = "";video_elem.onplay = "";video_elem.oncanplaythrough ="";}
  382. else{video_elem.currentTime +=1;
  383. if(sec_sub){
  384. if((video_elem.currentTime-current_time)>(buffer_time?buffer_time:0)||(video_elem.duration<(video_elem.currentTime+parseInt(sec_sub)+10)))
  385. {video_elem.currentTime = current_time;
  386. console.log(current_time);console.log(video_elem.currentTime);
  387. video_elem.oncanplaythrough='';current_time=0;}
  388. }
  389. else{
  390. if(current_time!=0){
  391. if((video_elem.currentTime-current_time)>(buffer_time?buffer_time:0)||(video_elem.duration<(video_elem.currentTime+20)))
  392. {video_elem.currentTime = current_time;
  393. video_elem.oncanplaythrough='';}
  394. }
  395. else{ video_elem.oncanplaythrough='';}
  396. }
  397. }
  398. }
  399. video_elem.currentTime += 1;
  400. }
  401. }
  402. video_elem.onplay = function(){
  403.  
  404. if(parseInt(video_elem.currentTime)==parseInt(video_elem.duration-1)){current_time = 0;video_elem.onpause = "";video_elem.onplay = "";video_elem.oncanplaythrough ="";} // new
  405. else if(current_time){video_elem.currentTime = current_time;
  406. video_elem.oncanplaythrough = "";
  407. }
  408. }
  409. video_elem.onended = function(){current_time = "";video_elem.onpause = "";video_elem.onplay = "";video_elem.oncanplaythrough ="";
  410. }
  411. //中键全屏
  412.  
  413. video_elem.addEventListener("mouseup", function(e) {
  414. e.preventDefault();
  415. if(e.button==1){
  416. document.querySelector("#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-right-controls > button.ytp-fullscreen-button.ytp-button").click();
  417. }
  418. }, false);
  419. //按c开启/停止缓冲功能,按e调整视频速度
  420. doc_s.onkeydown = key_down;
  421.  
  422. function key_down(e){
  423. //document.addEventListener("keydown", function(e) {
  424.  
  425. if (document.activeElement.id != "" && document.activeElement.id != "movie_player") {
  426. return;}
  427.  
  428. else{
  429. if (e.keyCode == 69) {
  430. e.preventDefault();
  431. if(buffer_time){
  432. temp_buffer = buffer_time;
  433. buffer_time="";
  434. current_time=0;
  435. //localStorage.setItem('buffer_time','');
  436. youtube_hand.message_box.show("no cashing set");
  437. }
  438. else if(temp_buffer){buffer_time=temp_buffer;
  439. // localStorage.setItem('buffer_time',temp_buffer);
  440. youtube_hand.message_box.show("cashing "+buffer_time+" seconds set");
  441. }
  442. else{youtube_hand.message_box.show("no cashing time preset");}
  443. }
  444. else if(e.keyCode == 68) {
  445. if(video_speed != 1){
  446. temp_speed = video_speed;
  447. video_speed=1;
  448. video_elem.playbackRate = video_speed;
  449. speed_display.innerHTML="1x";
  450. //localStorage.setItem('speed','1')
  451. youtube_hand.message_box.show("video speed 1x set");
  452. }
  453. else if(temp_speed){
  454. if(localStorage.getItem('speed')!=temp_speed){video_speed=localStorage.getItem('speed');}
  455. else{video_speed=temp_speed;}
  456. video_elem.playbackRate = video_speed/1;
  457. speed_display.innerHTML=video_speed+"x";
  458. //localStorage.setItem('speed',temp_speed);
  459. youtube_hand.message_box.show("video speed "+video_speed+"x set");
  460. }
  461. else{ youtube_hand.message_box.show("no video speed preset");}
  462.  
  463. }
  464. doc_s.onkeydown = "";
  465. setTimeout(function(){doc_s.onkeydown = key_down;},200);
  466. }
  467. }
  468.  
  469. // 滚轮前进后退
  470. video_elem.onwheel = function(e){e.preventDefault()};
  471. v_elem.onwheel = wheel_e;
  472.  
  473. function wheel_e (event) {
  474. if(wheel_sec){
  475. event.preventDefault();
  476.  
  477. video_elem.currentTime += parseInt(event.deltaY>0?wheel_sec/1:-wheel_sec) ;
  478.  
  479. v_elem.onwheel="";
  480. setTimeout(function(){v_elem.onwheel= wheel_e;
  481. video_elem.onwheel = function(e){e.preventDefault()};
  482. },300);
  483.  
  484. //同时重设播放速度
  485. // video_speed = localStorage.getItem('speed');
  486. // document.querySelector("#movie_player > div.html5-video-container > video").playbackRate = video_speed;
  487. }
  488. }
  489.  
  490. //每隔25秒获取播放剩余时间,如在25秒内则执行主程序
  491. if(sec_sub !== ""&&sec_sub !=0){
  492. const sec_sub2=sec_sub/1+12;
  493. setInterval(function(){
  494. let left_duration = get_dura();
  495. if((left_duration < sec_sub) && (left_duration != 0))
  496. {
  497.  
  498. next_exec();
  499.  
  500. }
  501. }, 1000);
  502. }
  503.  
  504. //next part 执行
  505. function next_exec(){
  506. const sel_part2 = document.querySelector("#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-controls > div.ytp-left-controls > a.ytp-next-button.ytp-button");
  507. if (sel_part2)
  508. {console.log("clicked next---");sel_part2.click();
  509. // video_elem.currentTime=0;
  510. current_time=0;}
  511. }
  512.  
  513. //获取播放剩余时间
  514. function get_dura() {
  515. const sel_start = video_elem.currentTime;
  516. const sel_fin = video_elem.duration;
  517. if (sel_fin) {
  518. return sel_fin-sel_start;
  519. }
  520. return 0;
  521. }
  522.  
  523.  
  524.  
  525.  
  526. }
  527.  
  528. },
  529.  
  530. move_menu:function (){
  531. //点开显示其余items
  532. document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2) > #items > ytd-guide-collapsible-entry-renderer > #expander-item > #endpoint").click();
  533. //移动频道到左顶部
  534. document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1)").parentNode.append(document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1)"))
  535.  
  536.  
  537. //页面写入script和style
  538. var a_bug = document.createElement("script");
  539. a_bug.innerHTML = `// 监听draggable的相关事件
  540. function dragstart_handler(ev) {
  541. console.log("dragStart");
  542. document.querySelector("#"+ev.target.id).style="margin-top: 25px !important;";
  543. // Add the target element's id to the data transfer object
  544. ev.dataTransfer.setData("text", ev.target.id);
  545. ev.dataTransfer.setData("text1", ev.target);
  546. console.log(ev.dataTransfer.getData("text1"));
  547. ev.dataTransfer.dropEffect = "move";
  548. console.log(ev.target.id);
  549.  
  550. }
  551. function dragEnter(ev) {
  552. console.log("dragenter");
  553. ev.preventDefault();
  554. ev.target.className += ' drag-over';
  555. }
  556. function dragLeave(e) {
  557. ev.preventDefault();
  558. this.className = 'droppable';
  559. }
  560. function dragover_handler(ev) {
  561. ev.preventDefault();
  562. //ev.dataTransfer.dropEffect = "move"
  563. }
  564. function drop_handler(ev) {
  565. ev.preventDefault();
  566. // Get the id of the target and add the moved element to the target's DOM
  567. var data = ev.dataTransfer.getData("text");
  568. var first=ev.target.firstChild; //得到第一个元素
  569. ev.target.insertBefore(document.getElementById(data),first); //在第原来的第一个元素之前插入
  570. //ev.target.appendChild(document.getElementById(data));
  571. }
  572. function dragend_handler(ev) {
  573. console.log("dragEnd");
  574. // Remove all of the drag data
  575. ev.dataTransfer.clearData();
  576. //localStorage.setItem("itemstate",document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items").outerHTML);
  577.  
  578. //itemdetail写入localStorage
  579. var json = [];
  580. var data = {};
  581. var items_length=document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer").length
  582. for(var i=0;i<items_length-1;i++){
  583. data = {};
  584. //data.id = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer")[i].id;
  585. //data.imgsrc = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer #img")[i].src;
  586. data.text =document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer")[i].innerText;
  587. //data.href = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint")[i].href;
  588.  
  589. json.push(data);
  590.  
  591. }
  592. var jsonString = JSON.stringify(json);//[{"id":1,"imgsrc":"test1","text":2}]
  593. localStorage.setItem("itemdetail",jsonString);
  594. //localStorage.setItem("item_new","");
  595. }
  596. function noAllowDrop(ev) {
  597. console.log("stopPropagation");
  598. ev.stopPropagation();
  599. }
  600.  
  601.  
  602. //点击订阅或退订时,删除localStorage内已有相同item
  603. if(document.querySelector("#inner-header-container #subscribe-button")){var subscribe_button = document.querySelector("#inner-header-container #subscribe-button")}
  604. else if(document.querySelector("#meta-contents #top-row > #subscribe-button")){var subscribe_button = document.querySelector("#meta-contents #top-row > #subscribe-button");}
  605. // var subscribe_button = document.querySelector("#inner-header-container #subscribe-button")?document.querySelector("#inner-header-container #subscribe-button"):document.querySelector("#meta-contents #top-row > #subscribe-button");
  606.  
  607. if(subscribe_button){
  608.  
  609. subscribe_button.onclick=function(){
  610.  
  611. //localStorage.setItem("item_new",document.querySelector("#text > a").innerText);
  612. //localStorage.removeItem("itemdetail",document.querySelector("#channel-name #text").innerText);
  613. let obj = JSON.parse(localStorage.itemdetail);
  614. for(let j=obj.length-1;j>-1;j--){
  615. if(obj[j]&&obj[j].text==document.querySelector("#channel-name #text").innerText){
  616. let items_down = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer");
  617.  
  618. items_down.forEach(function(element,index,array) {
  619.  
  620. if(element.firstElementChild.title==document.querySelector("#channel-name #text").innerText){
  621.  
  622. document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items").append(element);
  623. return false;
  624. }
  625. })
  626.  
  627. delete obj[j];}
  628. }
  629. localStorage.setItem("itemdetail",JSON.stringify(obj));
  630. console.log("delete suc");
  631. }
  632. }
  633.  
  634. `;
  635. document.body.appendChild(a_bug);
  636.  
  637. var style_type2 = document.createElement("style");style_type2.id = "style_type";
  638. style_type2.innerHTML = `#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer{margin: 1em 0em 1em 0em !important;}
  639. .drag-over {
  640. border-style: dashed;
  641. }
  642. .droppable{}
  643. `;
  644. //#expandable-items > ytd-guide-entry-renderer{margin: 1.2em 0em 1.2em 0em !important;}
  645. document.head.appendChild(style_type2);
  646.  
  647. //开始操作
  648. var menu_opr = setInterval(function(){
  649.  
  650. // const droppables = document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1)");
  651. if(document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items > ytd-guide-entry-renderer")){
  652. const droppables = document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) > #items");
  653. const draggable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer");
  654. const no_draggable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint");
  655. // const no_droppable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint > tp-yt-paper-item");
  656. // const no_droppable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer > #endpoint *");
  657. const no_droppable = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items *");
  658.  
  659. const draggable2 = document.querySelectorAll("#expandable-items > ytd-guide-entry-renderer");
  660. const no_draggable2 = document.querySelectorAll("#expandable-items > ytd-guide-entry-renderer > #endpoint");
  661. // const no_droppable2 = document.querySelectorAll("#expandable-items > ytd-guide-entry-renderer > #endpoint *");
  662.  
  663. droppables.setAttribute("ondrop","drop_handler(event);");
  664. droppables.setAttribute("ondragover","dragover_handler(event);");
  665. // droppables.setAttribute("ondragenter","dragEnter(event);");
  666. // droppables.setAttribute("ondragleave","dragLeave(event);");
  667. no_draggable.forEach(function(element,index,array) {
  668. element.setAttribute("draggable",false);
  669. });
  670. no_draggable2.forEach(function(element,index,array) {
  671. element.setAttribute("draggable",false);
  672. });
  673.  
  674. no_droppable.forEach(function(element,index,array) {
  675. element.setAttribute("ondragover","noAllowDrop(event);");
  676. });
  677. // no_droppable2.forEach(function(element,index,array) {
  678. // element.setAttribute("ondragover","noAllowDrop(event);");
  679. //});
  680.  
  681.  
  682. draggable.forEach(function(element,index,array) {
  683. if(index<array.length){
  684. element.setAttribute("draggable",true);
  685. element.setAttribute("ondragstart","dragstart_handler(event);");
  686. element.setAttribute("ondragend","dragend_handler(event);");
  687. if(!element.id){element.setAttribute("id","move"+index);}
  688. }
  689. });
  690. let index_x =0;
  691. draggable2.forEach(function(element,index,array) {
  692. index_x=index+7;
  693. element.setAttribute("draggable",true);
  694. element.setAttribute("ondragstart","dragstart_handler(event);");
  695. element.setAttribute("ondragend","dragend_handler(event);");
  696. element.setAttribute("id","move"+index_x);
  697.  
  698. });
  699.  
  700. //把隐藏内容拉出来,放入items
  701. const parent_item = document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items");
  702. let insert_sec = document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) #items > ytd-guide-collapsible-entry-renderer");
  703. let new_content2=document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) #items > ytd-guide-collapsible-entry-renderer #expanded #expandable-items > ytd-guide-entry-renderer");
  704. new_content2.forEach(function(element){parent_item.insertBefore(element,insert_sec)});
  705.  
  706.  
  707. const obj = JSON.parse(localStorage.getItem("itemdetail"));
  708.  
  709. //getItem("itemdetail")然后写入网页列表
  710. if(localStorage.getItem("itemdetail")){
  711.  
  712. var items_drag = document.querySelectorAll("#sections > ytd-guide-section-renderer:nth-child(1) > #items > ytd-guide-entry-renderer");
  713.  
  714. for(var j=obj.length-1;j>-1;j--){
  715. // if(j==0){
  716. items_drag.forEach(function(element,index,array) {
  717.  
  718. //console.log(element.firstElementChild.title);
  719. //console.log(obj[j].text);
  720. if(obj[j]&&element.firstElementChild.title==obj[j].text){
  721.  
  722. parent_item.prepend(element);
  723. return false;
  724. }
  725. })
  726.  
  727. }
  728.  
  729.  
  730. }
  731. //把当日订阅和历史记录置顶
  732. //document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) > #items").prepend(document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2) #items > ytd-guide-entry-renderer:nth-child(4)"));
  733. //当日订阅 document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) > #items").prepend(document.querySelector("#sections a[href='/feed/subscriptions']").parentElement);
  734. document.querySelector("#sections > ytd-guide-section-renderer:nth-child(1) > #items").prepend(document.querySelector("#sections a[href='/feed/history']").parentElement);
  735.  
  736. clearInterval(menu_opr);
  737. }
  738.  
  739. },100)
  740.  
  741. }
  742.  
  743.  
  744. }
  745.  
  746.  
  747.  
  748. var load_menu = setInterval(function(){
  749. //youtube_hand.dark_eye();
  750.  
  751. if(document.querySelector("#end")){
  752. youtube_hand.play_menu();
  753. youtube_hand.play_main();
  754. youtube_hand.dark_eye1();
  755.  
  756. //document.querySelector("html").onpropertychange = youtube_hand.dark_eye;
  757.  
  758. clearInterval(load_menu);
  759. }
  760. },100)
  761.  
  762. /*
  763. window.onload=function(){
  764. document.addEventListener("yt-navigate-finish", function() {
  765. youtube_hand.play_menu();
  766. youtube_hand.play_main();
  767. youtube_hand.dark_eye1();
  768. })
  769. };
  770. */
  771. setInterval(function(){ youtube_hand.dark_eye();
  772. if(document.querySelector(".ytp-ce-element.ytp-ce-playlist.ytp-ce-element-show")){
  773. document.querySelector(".ytp-ce-element.ytp-ce-playlist.ytp-ce-element-show").remove();
  774. console.log("del 1");
  775. }
  776.  
  777. if(document.querySelector(".ytp-ce-element.ytp-ce-video.ytp-ce-element-show")){
  778. document.querySelector(".ytp-ce-element.ytp-ce-video.ytp-ce-element-show").remove();
  779. console.log("del 2");}
  780. if(document.querySelector(".ytp-ce-element.ytp-ce-channel.ytp-ce-channel-this.ytp-ce-element-show")){
  781. document.querySelector(".ytp-ce-element.ytp-ce-channel.ytp-ce-channel-this.ytp-ce-element-show").remove();
  782. console.log("del 3");}
  783.  
  784. },600)
  785.  
  786.  
  787. if(subscription_up){
  788. var move_ma=setInterval(function(){
  789. if(document.querySelector("#sections > ytd-guide-section-renderer:nth-child(2)"))
  790. {
  791. youtube_hand.move_menu();
  792.  
  793. clearInterval(move_ma);
  794. }
  795. },200)
  796. }
  797.  
  798.  
  799. })();