m.YouTube.com seek buttons

Adds +-30sec +-1min +-5min buttons below the video

目前為 2023-10-12 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name m.YouTube.com seek buttons
  3. // @namespace m-youtube-com-seek-buttons
  4. // @version 1.0
  5. // @description Adds +-30sec +-1min +-5min buttons below the video
  6. // @author hlorand.hu
  7. // @match https://m.youtube.com/*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net
  9. // @grant none
  10. // @license https://creativecommons.org/licenses/by-nc-sa/4.0/
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. //'use strict';
  15.  
  16. function addbuttons(){
  17. document.getElementById("seekbuttons").innerHTML = "";
  18.  
  19. const times = ["+300s", "+60s", "+30s", "-30s", "-60s", "-300s"];
  20.  
  21. times.forEach((time)=>{
  22. let button = document.createElement('button');
  23. button.textContent = time;
  24. button.className = "speedbutton";
  25.  
  26. button.style.margin = "5px";
  27. button.style.padding = "5px";
  28. button.style.backgroundColor = "purple";
  29. button.style.position = "relative";
  30.  
  31. button.onclick = function() {
  32. let video = document.querySelector("video");
  33.  
  34. if(video && video.readyState >= 2) {
  35. video.currentTime += parseInt(this.textContent.replace("s",""));
  36. }
  37. };
  38.  
  39. let target = document.getElementById("seekbuttons");
  40. target.insertBefore(button, target.firstChild);
  41.  
  42. }); // end times foreach
  43.  
  44. } // end addbuttons
  45.  
  46. window.addEventListener('load', function () {
  47. setInterval(()=>{
  48. if( document.getElementById("seekbuttons") == undefined ){
  49. let parent = document.querySelector('.related-chips-slot-wrapper');
  50. let wrapper = document.createElement('div');
  51. wrapper.setAttribute("id","seekbuttons");
  52. parent.insertBefore(wrapper, parent.firstChild);
  53. addbuttons();
  54. }
  55. }, 1000);
  56. }); // end addEventListener
  57.  
  58.  
  59. })();