Portail FR EN

← Scripts partagés

Twitch+

par ChouCookieSan ✔ · version 1.0.0 · 0 installations · mis à jour le 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 ».

Sites visés

www.twitch.tvm.twitch.tv

Un script peut lire et changer tout ce qu’il y a sur les sites visés, y compris ce que tu tapes. Celui-ci a été relu, mais lis-le toi aussi avant de l’activer.

L’installer

  1. Dans Portail (PC ou téléphone) : menu « … » → Extensions → Catalogue.
  2. Cherche « Twitch+ » puis « Installer ». Le script arrive désactivé.
  3. Active-le : Portail te remontre les sites visés avant.

Sans Portail, ce script marche aussi dans Tampermonkey ou Violentmonkey : copie le code ci-dessous.

Le code complet

// ==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));

Signaler ce script