Youtube share url si parameter remover.

Script for removing si parameter from share url.

当前为 2024-08-28 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Youtube share url si parameter remover.
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.7
  5. // @description Script for removing si parameter from share url.
  6. // @author m-pasik
  7. // @match https://www.youtube.com/*
  8. // @icon https://www.youtube.com/favicon.ico
  9. // @license GPL-3.0
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. const observer = new MutationObserver((mutationsList) => {
  17. const filtered =
  18. mutationsList
  19. .filter(x =>
  20. x.addedNodes[0] &&
  21. x.addedNodes[0].tagName == "YT-COPY-LINK-RENDERER")
  22. .map(x =>
  23. x.addedNodes[0]);
  24.  
  25. if (filtered.length) {
  26. const url_field = filtered[0].querySelector("input#share-url");
  27. const split = url_field.value.split(/[?&]/).filter(x => !x.includes('si='));
  28. url_field.value = split.length > 1 ?
  29. `${split[0]}?${split.slice(1).join('&')}` :
  30. split[0];
  31.  
  32. let last_value = url_field.value;
  33. const update_url = () => {
  34. if (url_field.value != last_value) {
  35. const split = url_field.value.split(/[?&]/).filter(x => !x.includes('si='));
  36. url_field.value = split.length > 1 ?
  37. `${split[0]}?${split.slice(1).join('&')}` :
  38. split[0];
  39. last_value = url_field.value;
  40. }
  41. window.requestAnimationFrame(update_url);
  42. }
  43. window.requestAnimationFrame(update_url);
  44. }
  45. });
  46.  
  47. observer.observe(document.documentElement, {
  48. childList: true,
  49. subtree: true,
  50. });
  51.  
  52. })();