Native Media Controls

This script attempts to replace Twitter media controls with your browsers native media controls.

  1. // ==UserScript==
  2. // @name Native Media Controls
  3. // @name:es Controles Multimedia Nativos
  4. // @name:ja ネイティブメディアコントロール
  5. // @name:ko 기본 미디어 컨트롤
  6. // @name:zh-CN 本地媒体控制
  7. // @name:uk управління нативними засобами масової інформації
  8. // @name:pt-PT Controlos de Meios Nativos
  9. // @description This script attempts to replace Twitter media controls with your browsers native media controls.
  10. // @description:es Este script intenta reemplazar los controles multimedia de Twitter por los controles multimedia nativos de tu navegador.
  11. // @description:ja このスクリプトは、Twitterのメディアコントロールをブラウザのネイティブメディアコントロールに置き換えようとするものです。
  12. // @description:ko 이 스크립트는 트위터 미디어 컨트롤을 브라우저의 기본 미디어 컨트롤로 대체하려고 시도합니다.
  13. // @description:zh-CN 这个脚本试图用你的浏览器的本地媒体控件替换Twitter的媒体控件。
  14. // @description:uk Цей скрипт намагається замінити елементи керування мультимедіа Twitter на власні елементи керування мультимедіа вашого браузера.
  15. // @description:pt-PT Este script tenta substituir os controlos multimédia do Twitter pelos controlos multimédia nativos do seu navegador.
  16. // @namespace NativeMediaControls
  17. // @match https://twitter.com/*
  18. // @match https://x.com/*
  19. // @version 1.0.6
  20. // @author Rej <rejdesu@pm.me>
  21. // @license MIT
  22. // @icon data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="256" height="256" viewBox="0 0 256 256"%3E%3Cg fill="white"%3E%3Cpath d="M216 48H40a8 8 0 0 0-8 8v112a8 8 0 0 0 8 8h176a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8Zm-104 96V80l48 32Z" opacity=".2"%2F%3E%3Cpath d="m164.44 105.34l-48-32A8 8 0 0 0 104 80v64a8 8 0 0 0 12.44 6.66l48-32a8 8 0 0 0 0-13.32ZM120 129.05V95l25.58 17ZM216 40H40a16 16 0 0 0-16 16v112a16 16 0 0 0 16 16h176a16 16 0 0 0 16-16V56a16 16 0 0 0-16-16Zm0 128H40V56h176v112Zm16 40a8 8 0 0 1-8 8H32a8 8 0 0 1 0-16h192a8 8 0 0 1 8 8Z"%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E
  23. // @run-at document-start
  24. // ==/UserScript==
  25. !(function (d) {
  26. var k = 0;
  27.  
  28. function goagain() {
  29. for (let e of document.getElementsByTagName("video")) {
  30. e.setAttribute("controls", "controls");
  31. let rmv = e.parentElement.parentElement.nextElementSibling;
  32. if (rmv) {
  33. rmv.remove();
  34. }
  35. }
  36. k += 1;
  37. if (k < 1000) {
  38. setTimeout(() => {
  39. goagain();
  40. }, 1000);
  41. }
  42. }
  43. goagain();
  44. })(document);