Twitch+
by ChouCookieSan ✔ · version 1.0.0 · 0 installs · updated on 2026-11-08
Twitch plus agréable : bonus de points et drops récupérés tout seuls, page de chaîne épurée (barres repliées, visibles au survol), bandeau du bas retiré, vidéo de l'accueil en pause et muette. Réunit et remplace « AutoClaim Point Twitch », « Auto Claim Twitch drop » et « Twitch Beautify ».
Targeted sites
www.twitch.tvm.twitch.tv
A script can read and change everything on the sites it targets, including what you type. This one was reviewed, but read it yourself too before turning it on.
Install it
- In Portail (PC or phone): “…” menu → Extensions → Catalogue.
- Search for “Twitch+” then “Install”. The script arrives turned off.
- Turn it on: Portail shows you the targeted sites first.
Without Portail, this script also works in Tampermonkey or Violentmonkey: copy the code below.
The full code
// ==UserScript==
// @name Twitch+
// @namespace https://portail.arcanescookie.fr
// @version 1.0.0
// @description Twitch plus agréable : bonus de points et drops récupérés tout seuls, page de chaîne épurée (barres repliées, visibles au survol), bandeau du bas retiré, vidéo de l'accueil en pause et muette. Réunit et remplace « AutoClaim Point Twitch », « Auto Claim Twitch drop » et « Twitch Beautify ».
// @author Les Arcanes de Cookie
// @match https://www.twitch.tv/*
// @match https://m.twitch.tv/*
// @run-at document-end
// ==/UserScript==
// Réglages : true = allumé, false = éteint.
const OPTIONS = {
points: true, // bonus de points de chaîne (+50) récupéré tout seul
drops: true, // drops récupérés sur la page Inventaire, qui se recharge toutes les 5 minutes
epure: true, // page de chaîne : barre du haut et liste des chaînes repliées, visibles au survol
bandeau: true, // bandeau « Inscris-toi » du bas retiré
accueilMuet: true, // vidéo mise en avant sur l'accueil : en pause et muette
avertissement: false // passe tout seul l'avertissement « contenu pour public averti »
};
const PAGES_HORS_CHAINE = /^\/(directory|settings|drops|wallet|subscriptions|inventory|search|downloads|jobs|p|videos|turbo|friends|messages|following)(\/|$)/;
const surChaine = () => location.pathname.length > 1 && !PAGES_HORS_CHAINE.test(location.pathname);
const surInventaire = () => location.pathname.startsWith('/drops/inventory');
const auHasard = (min, max) => min + Math.random() * (max - min);
// --- Apparence ---
GM_addStyle(`
${OPTIONS.bandeau ? '#twilight-sticky-footer-root { display: none !important; }' : ''}
${OPTIONS.epure ? `
html.portail-twitch-chaine nav.top-nav {
height: 1rem !important; min-height: 0 !important; opacity: 0; overflow: hidden;
transition: opacity .4s, height .5s;
}
html.portail-twitch-chaine nav.top-nav:hover { height: 5rem !important; opacity: 1; overflow: visible; }
html.portail-twitch-chaine .side-nav {
width: 1rem !important; min-width: 0 !important; opacity: 0; overflow: hidden;
transition: opacity .4s, width .5s;
}
html.portail-twitch-chaine .side-nav:hover { width: 24rem !important; opacity: 1; overflow: visible; }
html.portail-twitch-chaine [data-a-target="right-column__toggle-collapse-btn"] { opacity: .3; transition: opacity .3s; }
html.portail-twitch-chaine [data-a-target="right-column__toggle-collapse-btn"]:hover { opacity: 1; }
` : ''}
`);
// Twitch change de page sans recharger : on suit l'adresse.
let adresse = '';
const suivreAdresse = () => {
if (location.href === adresse) return;
adresse = location.href;
document.documentElement.classList.toggle('portail-twitch-chaine', surChaine());
if (OPTIONS.accueilMuet && location.pathname === '/') muetPendant(8000);
};
// --- Accueil : la vidéo mise en avant reste en pause et muette (quelques secondes, le temps qu'elle se lance) ---
function muetPendant(duree) {
const fin = Date.now() + duree;
const t = setInterval(() => {
if (Date.now() > fin || location.pathname !== '/') return clearInterval(t);
for (const v of document.querySelectorAll('video')) { v.muted = true; if (!v.paused) v.pause(); }
}, 400);
}
// --- Bonus de points ---
function bonus() {
if (OPTIONS.points) {
const icone = document.querySelector('.claimable-bonus__icon');
const bouton = icone && icone.closest('button');
if (bouton) bouton.click();
}
setTimeout(bonus, auHasard(5000, 9000));
}
// --- Drops (page Inventaire) ---
let rechargement = 0;
function drops() {
if (!OPTIONS.drops || !surInventaire()) { clearTimeout(rechargement); rechargement = 0; return; }
const b = document.querySelector('[data-test-selector="DropsCampaignInProgressRewardPresentation-claim-button"]');
if (b && !b.disabled) b.click();
// La progression ne se met pas à jour toute seule : on recharge la page de temps en temps.
if (!rechargement) rechargement = setTimeout(() => location.reload(), 5 * 60 * 1000);
}
// --- Avertissement « public averti » ---
function avertissement() {
if (!OPTIONS.avertissement) return;
const b = document.querySelector('[data-a-target="content-classification-gate-overlay-start-watching-button"], [data-a-target="player-overlay-mature-accept"]');
if (b) b.click();
}
suivreAdresse();
setInterval(() => { suivreAdresse(); drops(); avertissement(); }, 1500);
setTimeout(bonus, auHasard(2000, 5000));