Twitch Clip Creation Volume

Sets the volume of the video player on Twitch's clip creation page to the stored value, same as how the clip playback page

  1. // ==UserScript==
  2. // @name Twitch Clip Creation Volume
  3. // @description Sets the volume of the video player on Twitch's clip creation page to the stored value, same as how the clip playback page
  4. // @namespace vaindil
  5. // @version 1.0.2
  6. // @author vaindil
  7. // @include https://clips.twitch.tv/create
  8. // @include https://clips.twitch.tv/*/edit
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. const obs = new MutationObserver((mutations, me) => {
  13. const slider = document.querySelector('[id^="player-volume-slider"]');
  14. if (slider == null) {
  15. return;
  16. }
  17.  
  18. let volume = localStorage.getItem('volume');
  19. volume = volume ? volume : '0.5';
  20.  
  21. setNativeValue(slider, volume);
  22. slider.dispatchEvent(new Event('input', { bubbles: true }));
  23.  
  24. obs.disconnect();
  25. });
  26.  
  27. obs.observe(document, {
  28. childList: true,
  29. subtree: true
  30. });
  31.  
  32. function setNativeValue(element, value) {
  33. const valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set;
  34. const prototype = Object.getPrototypeOf(element);
  35. const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set;
  36.  
  37. if (valueSetter && valueSetter !== prototypeValueSetter) {
  38. prototypeValueSetter.call(element, value);
  39. } else {
  40. valueSetter.call(element, value);
  41. }
  42. }

QingJ © 2025

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