Button change speed video

Button change speed videos

  1. // ==UserScript==
  2. // @name Button change speed video
  3. // @namespace change_speed
  4. // @version 1
  5. // @description Button change speed videos
  6. // @author nht
  7. // @include *
  8. // @grant unsafeWindow
  9. // @grant GM_registerMenuCommand
  10. // @run-at document-start
  11. // ==/UserScript==
  12.  
  13.  
  14. GM_registerMenuCommand ("Active Speed", show_ui, "A");
  15.  
  16. function changeSpeed(self){
  17. var iframes = unsafeWindow.document.querySelectorAll('iframe');
  18. var sendData = {id: "my_speed", speed: self.value};
  19. for(var i = 0; i < iframes.length; i++){
  20. try{
  21. iframes[i].contentWindow.postMessage(sendData, "*");
  22. }catch(e) { console.log(e);}
  23. }
  24. changeSpeedIframe(self.value);
  25. }
  26.  
  27. function changeSpeedIframe(data){
  28.  
  29. var speed = parseFloat(data);
  30. if(isNaN(speed)) {
  31. return;
  32. }
  33. //console.log("find video tag");
  34. var videos = unsafeWindow.document.querySelectorAll('video');
  35. //console.log(videos);
  36. console.log("speed ", speed);
  37. for(var i = 0; i < videos.length; i++){
  38. videos[i].playbackRate = speed;
  39. }
  40. }
  41. unsafeWindow.window.changeSpeed = changeSpeed;
  42. unsafeWindow.window.changeSpeedIframe = changeSpeedIframe;
  43. //event on iframe
  44. if (window.top !== window.self){
  45. unsafeWindow.window.onmessage = function(event){
  46. if (event.data && event.data.id === "my_speed"){
  47. changeSpeedIframe(event.data.speed);
  48. }
  49. }
  50. }
  51.  
  52. function show_ui() {
  53. var Speeds = ["1.00", "1.25", "1.50", "2.00", "3.00", "500.0"];
  54. if (window.top === window.self) {
  55. var div = unsafeWindow.document.createElement("div");
  56. div.innerHTML = "";
  57. for(var i = 0; i < Speeds.length; i++){
  58. div.innerHTML += '<button style="margin-left: 5px; margin-bottom: 5px;" type="button" value="' + Speeds[i] + '" onClick=changeSpeed(this)>x' + Speeds[i] + '</button><br>';
  59. }
  60. div.setAttribute("style","z-index:9999; position: -webkit-sticky; position:fixed; bottom: 2px; left:0; font-size: 15px; color: black;");
  61. //unsafeWindow.document.body.insertBefore(div, unsafeWindow.document.body.firstChild);
  62. unsafeWindow.document.body.appendChild(div);
  63. }
  64. }
  65. //unsafeWindow.window.show_ui = show_ui;
  66. //unsafeWindow.document.addEventListener('DOMContentLoaded', show_ui);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址