Player controls for Mako

Adds player controls

  1. // ==UserScript==
  2. // @name Player controls for Mako
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.0
  5. // @description Adds player controls
  6. // @author Avi (https://avi12.com)
  7. // @copyright 2025 Avi (https://avi12.com)
  8. // @license MIT
  9. // @match https://www.mako.co.il/mako-vod-keshet/*
  10. // @match https://www.mako.co.il/mako-vod-podcasts/*
  11. // @icon https://www.google.com/s2/favicons?sz=64&domain=mako.co.il
  12. // @grant none
  13. // ==/UserScript==
  14.  
  15. (function () {
  16. "use strict";
  17.  
  18. document.addEventListener("keydown", e => {
  19. switch (e.code) {
  20. // Playback speed
  21. case "Comma":
  22. case "Period": {
  23. if (!e.shiftKey) {
  24. return;
  25. }
  26.  
  27. const elPlaybackSpeedLabel = [...document.querySelectorAll("#idButtonsWrapper span > span")].find(elSpan => elSpan.textContent === "מהירות ניגון");
  28. const elPlaybackSpeedButtonWrapper = elPlaybackSpeedLabel.closest("button");
  29. const elPlaybackSpeedMenuOpener = elPlaybackSpeedButtonWrapper.firstElementChild;
  30. const currentSpeed = elPlaybackSpeedMenuOpener.querySelector("path").getAttribute("d");
  31. elPlaybackSpeedMenuOpener.click();
  32. const elPlaybackSpeeds = elPlaybackSpeedButtonWrapper.firstElementChild.children;
  33. const elPlaybackSpeedLabels = [...elPlaybackSpeeds].map(elButton => elButton.querySelector("path"));
  34. const elPlaybackSpeedButtons = elPlaybackSpeedLabels.map(elPath => elPath.closest("div"));
  35. const playbackSpeeds = elPlaybackSpeedButtons.map(elDiv => elDiv.querySelector("path").getAttribute("d"));
  36.  
  37. const iSpeedCurrent = playbackSpeeds.indexOf(currentSpeed);
  38. const keyToElementMapper = {
  39. Comma: iSpeedCurrent + 1,
  40. Period: iSpeedCurrent - 1
  41. };
  42. const elSpeedToChangeTo = elPlaybackSpeedButtons[keyToElementMapper[e.code]];
  43. if (elSpeedToChangeTo) {
  44. elSpeedToChangeTo.click();
  45. return;
  46. }
  47.  
  48. elPlaybackSpeedButtons[iSpeedCurrent].click();
  49. }
  50. break;
  51. }
  52. })
  53. })();