Youtube Hide Paused Gradient by Sapioit

Removes the annoying gradients visible when pausing a video.

当前为 2023-06-15 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Youtube Hide Paused Gradient by Sapioit
  3. // @namespace Sapioit
  4. // @copyright Sapioit, 2020 - Present
  5. // @author sapioitgmail.com
  6. // @license GPL-2.0-only; http://www.gnu.org/licenses/gpl-2.0.txt
  7. // @icon https://youtube.com/favicon.ico
  8. // @match https://www.youtube.com/*
  9. // @match http*://*.youtube.com/*
  10. // @match http*://youtube.com/*
  11. // @match https://youtu.be/*
  12. // @match http*://*.youtu.be/*
  13. // @description Removes the annoying gradients visible when pausing a video.
  14. // @version 1.4.1.1
  15. // @grant GM_addStyle
  16. // @grant GM_registerMenuCommand
  17. // @grant GM_setValue
  18. // @grant GM_getValue
  19. // ==/UserScript==
  20.  
  21. window.addEventListener('keydown', function(e) {
  22. var play_button = document.querySelector('button.ytp-play-button');
  23. var valid_target = e.target === document.body || e.target === document.querySelector('#player-api');
  24. var pressed_space = e.keyCode === 32 || e.keyCode === 'Space'; // Space
  25. if (play_button && valid_target && pressed_space) {
  26. e.preventDefault();
  27. playButton.click();
  28. }
  29. });
  30.  
  31.  
  32.  
  33. if (typeof document.getElementsByClassName("ytp-gradient-top")[0] != "undefined") {
  34. document.getElementsByClassName("ytp-gradient-top")[0].style.display = 'none';
  35. }
  36. if (typeof document.getElementsByClassName("ytp-gradient-top")[0] != "undefined") {
  37. document.getElementsByClassName("ytp-gradient-top")[0].style.opacity = '0';
  38. }
  39. if (typeof document.getElementsByClassName("ytp-gradient-bottom")[0] != "undefined") {
  40. document.getElementsByClassName("ytp-gradient-bottom")[0].style.display = 'none';
  41. }
  42. if (typeof document.getElementsByClassName("ytp-gradient-bottom")[0] != "undefined") {
  43. document.getElementsByClassName("ytp-gradient-bottom")[0].style.opacity = '0';
  44. }
  45.  
  46. /*
  47. document.getElementsByClassName("ytp-gradient-top")[0].style.display = 'none';
  48. document.getElementsByClassName("ytp-gradient-top")[0].style.opacity = '0';
  49. document.getElementsByClassName("ytp-gradient-bottom")[0].style.display = 'none';
  50. document.getElementsByClassName("ytp-gradient-bottom")[0].style.opacity = '0';
  51. */
  52.  
  53.  
  54.  
  55. GM_addStyle('.ytp-caption-window-container { top: 2% !important; }');
  56.  
  57. GM_addStyle('.ytp-gradient-top { display: none !important; opacity: 0 !important; }');
  58. GM_addStyle('.ytp-gradient-top { width: none !important; opacity: 0 !important; }');
  59.  
  60. GM_addStyle('button div.ytp-autonav-toggle-button-container { display: none !important;}');
  61. GM_addStyle('[data-tooltip-target-id="ytp-autonav-toggle-button"] { display: none !important;}');
  62. //GM_addStyle('.ytp-button[data-tooltip-target-id="ytp-autonav-toggle-button"] { display: none !important;}');
  63. GM_addStyle('--ytd-engagement-panel-section-list-rendere { display: none !important;}');
  64. GM_addStyle('.ytp-time-display > span { padding: 3px; background: rgba(0, 0, 0, 0.5); }');
  65. //GM_addStyle('.ytd-thumbnail-overlay-time-status-renderen { transition-duration: 0s; }');
  66. GM_addStyle('yt-reaction-control-panel-view-model:not([reaction-control-panel-expanded]) #hover-area.yt-reaction-control-panel-view-model { margin-bottom: -50px !important; z-index: 1; }');
  67.  
  68. window.onload = function(){setTimeout(function () {
  69. GM_addStyle('button div.ytp-autonav-toggle-button-container { display: none !important;}');
  70. GM_addStyle('[data-tooltip-target-id="ytp-autonav-toggle-button"] { display: none !important;}');
  71. GM_addStyle('--ytd-engagement-panel-section-list-rendere { display: none !important;}');
  72. GM_addStyle('#video-title.ytd-compact-video-renderer { overflow: none !important;}');
  73. GM_addStyle('ytd-button-renderer > yt-button-shape > button[aria-label="Thanks"] { display: none !important; }');
  74. GM_addStyle('ytd-button-renderer > yt-button-shape > button[aria-label="Save to playlist"] { display: inline-block !important; }');
  75. //GM_addStyle('.ytd-thumbnail-overlay-time-status-renderen { transition-duration: 0s; }');
  76. }, 5*1000)}; //loads after 5 seconds
  77.  
  78. function yourFunction(){
  79. GM_addStyle('button div.ytp-autonav-toggle-button-container { display: none !important;}');
  80. GM_addStyle('[data-tooltip-target-id="ytp-autonav-toggle-button"] { display: none !important;}');
  81. GM_addStyle('--ytd-engagement-panel-section-list-rendere { display: none !important;}');
  82. setTimeout(yourFunction, 30*1000); //loads every 30 seconds
  83. }
  84. yourFunction();
  85.  
  86. function add_hover_tooltips() {
  87. /*var video_titles = document.getElementsByTagName("h3").getElementsByClassName("ytd-compact-video-renderer").getElementsByTagName("span");*/
  88. /*var video_titles = document.querySelector("span.ytd-compact-video-renderer");*/
  89. //var video_titles = document.getElementsByTagName("span").getElementsByClassName("ytd-compact-video-renderer");
  90.  
  91. /*var video_titles = document.querySelectorAll("span.ytd-compact-video-renderer");*/
  92. var video_titles = document.querySelectorAll("span.ytd-compact-video-renderer, #video-title");
  93. for(var i=0; i<video_titles.length; i++){
  94. console.log(video_titles[i]);
  95. var current_title = video_titles[i].getAttribute("title");
  96. video_titles[i].setAttribute("alt", current_title);
  97. video_titles[i].setAttribute("data-title", current_title);
  98. video_titles[i].setAttribute("data-tooltip", current_title);
  99. }
  100. /*
  101. video_titles = document.querySelectorAll("#video-title");
  102. for(i=0; i<video_titles.length; i++){
  103. console.log(video_titles[i]);
  104. current_title = video_titles[i].getAttribute("title");
  105. video_titles[i].setAttribute("alt", current_title);
  106. video_titles[i].setAttribute("data-title", current_title);
  107. video_titles[i].setAttribute("data-tooltip", current_title);
  108. }
  109. */
  110. }
  111.  
  112. window.onloadstart = function(){setTimeout(function () {
  113. add_hover_tooltips();
  114. }, 0.001*1000)}; //loads after 0.001 seconds
  115.  
  116. window.onload = function(){setTimeout(function () {
  117. add_hover_tooltips();
  118. }, 3*1000)}; //loads after 3 seconds
  119.  
  120. window.onload = function(){setTimeout(function () {
  121. add_hover_tooltips();
  122. }, 10*1000)}; //loads after 10 seconds
  123.  
  124.  
  125. GM_addStyle("span[data-tooltip]:before { z-index:301; content: attr(data-tooltip); position: absolute; opacity: 0; padding: 10px; background: black; color: white;} span[data-tooltip]:hover:before { opacity: 1;} ");
  126. GM_addStyle(".yt-simple-endpoint[title]:before { z-index:301; content: attr(title); position: absolute; opacity: 0; padding: 10px; background: black; color: white;} .yt-simple-endpoint[title]:hover:before { opacity: 1 !important;} ");
  127.  
  128.  
  129. // <ytd-engagement-panel-section-list-renderer class="style-scope ytd-watch-flexy" visibility="ENGAGEMENT_PANEL_VISIBILITY_EXPANDED">GM_addStyle(a);