Size
2.3 KB
Version
1.1.1
Created
Oct 18, 2025
Updated
5 days ago
1// ==UserScript==
2// @name Twitch Carousel Remover
3// @description A new userscript
4// @version 1.1.1
5// @match https://*.twitch.tv/*
6// @icon https://assets.twitch.tv/assets/favicon-32-e29e246c157142c94346.png
7// ==/UserScript==
8(function() {
9 'use strict';
10
11 function removeCarousel() {
12 console.log('Looking for Twitch carousel...');
13
14 // Find the carousel using its specific data attribute
15 const carousel = document.querySelector('[data-a-target="front-page-carousel"]');
16
17 if (carousel) {
18 console.log('Carousel found, removing it...');
19
20 // Find and stop all video/audio elements
21 const videos = carousel.querySelectorAll('video');
22 videos.forEach(video => {
23 video.muted = true;
24 video.pause();
25 video.src = '';
26 console.log('Video muted and stopped');
27 });
28
29 const audios = carousel.querySelectorAll('audio');
30 audios.forEach(audio => {
31 audio.muted = true;
32 audio.pause();
33 audio.src = '';
34 console.log('Audio muted and stopped');
35 });
36
37 carousel.style.display = 'none';
38 console.log('Carousel removed successfully');
39 } else {
40 console.log('Carousel not found yet');
41 }
42 }
43
44 // Run immediately
45 removeCarousel();
46
47 // Also observe for dynamic content loading
48 const observer = new MutationObserver(() => {
49 removeCarousel();
50 });
51
52 // Start observing when body is available
53 if (document.body) {
54 observer.observe(document.body, {
55 childList: true,
56 subtree: true
57 });
58 } else {
59 // Wait for body to be available
60 const bodyObserver = new MutationObserver(() => {
61 if (document.body) {
62 bodyObserver.disconnect();
63 observer.observe(document.body, {
64 childList: true,
65 subtree: true
66 });
67 removeCarousel();
68 }
69 });
70 bodyObserver.observe(document.documentElement, { childList: true });
71 }
72
73 console.log('Twitch Carousel Remover initialized');
74})();