Auto unmute redgifs

auto unmute redgifs videos, forked from jcunews

  1. // ==UserScript==
  2. // @name Auto unmute redgifs
  3. // @namespace https://greasyfork.org/en/users/1338370-codefeels
  4. // @version 1.1.8
  5. // @license AGPLv3
  6. // @author codefeels
  7. // @description auto unmute redgifs videos, forked from jcunews
  8. // @match https://www.redgifs.com/ifr/*
  9. // @match https://www.redgifs.com/watch/*
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. /* Note:
  14. For embedded player, the video will be unmuted, but the player will think it's still muted
  15. (the player's sound control is still in off state).
  16. */
  17.  
  18. ((firstTime, setVolume) => {
  19.  
  20. //config begin
  21.  
  22. setVolume = -1; //0 to 1.0. or negative number to disable
  23.  
  24. //config end
  25.  
  26. firstTime = true;
  27. (function fn(a, b) {
  28. if (firstTime) {
  29. if (
  30. (a = document.querySelector(
  31. ':is(.sidebar,.sideBar,.Sidebar,.SideBar,.SIDEBAR) :is([class*="Sound"],[class*="sound"],[class*="SOUND"])',
  32. )) &&
  33. (b = document.querySelector(".Player video")) &&
  34. b.muted
  35. ) {
  36. //non embedded
  37. console.log("wow", { a, b });
  38. firstTime = false;
  39. a.click();
  40. b.muted = false;
  41. if (setVolume >= 0) b.volume = setVolume;
  42. } else if (
  43. (a = document.querySelector(".embeddedPlayer video")) &&
  44. a.muted
  45. ) {
  46. //enbedded
  47. firstTime = false;
  48. a.muted = false;
  49. if (setVolume >= 0) a.volume = setVolume;
  50. }
  51. }
  52. setTimeout(fn, 200);
  53. })();
  54. })();