Greasy Fork

Greasy Fork is available in English.

Crunchyroll Skip Intro/Outro Multilingual

Skip intro and credits buttons on Crunchyroll iframe in 20+ languages

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Crunchyroll Skip Intro/Outro Multilingual
// @namespace    https://static.crunchyroll.com/
// @version      0.4
// @description  Skip intro and credits buttons on Crunchyroll iframe in 20+ languages
// @author       Yanis GANGNANT
// @match        https://static.crunchyroll.com/*
// @run-at       document-end
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Liste des traductions courantes de "Skip Intro" et "Skip Credits" dans les principales langues
    const skipIntroLabels = [
        "Passer l'intro",   // Français
        "Skip Intro",       // Anglais
        "Saltar introducción", // Espagnol
        "Intro überspringen",  // Allemand
        "Introdurre salta",   // Italien (approx)
        "Salt de introducció",// Catalan
        "跳过片头",           // Chinois simplifié
        "イントロをスキップ",     // Japonais
        "인트로 건너뛰기",      // Coréen
        "Pular introdução",  // Portugais
        "Пропустить начало", // Russe
        "Atlaa intro",       // Finlandais
        "Uvod preskoči",     // Croate
        "Пропустить вступление", // Ukrainien alternative
        "Intro überspringen", // Suisse allemand (comme allemande)
        "Passer l’intro",    // Variation avec apostrophe typographique
        "Saltā ievads",      // Letton
        "Skip inleiding",    // Néerlandais
        "Skip Introducción", // Espagnol variation majuscule
        "Ignorer l'intro"    // Français alternatif
    ];

    const skipCreditsLabels = [
        "Passer les crédits",
        "Skip Credits",
        "Saltar créditos",
        "Credits überspringen",
        "Saltare i titoli di coda",
        "Saltar crèdits",
        "跳过片尾",
        "エンドクレジットをスキップ",
        "크레딧 건너뛰기",
        "Pular créditos",
        "Пропустить титры",
        "Ohita lopputekstit",
        "Preskoči završne špice",
        "Пропустить финальные титры",
        "Credits überspringen",
        "Passer les crédits",
        "Izlaist titrus",
        "Skip aftiteling",
        "Skip Créditos",
        "Ignorer les crédits"
    ];

    // Sélecteur générique des boutons avec aria-label
    function clickSkipButtons() {
        const allButtons = document.querySelectorAll('div[role="button"][aria-label]');
        allButtons.forEach(button => {
            const label = button.getAttribute('aria-label');
            if (!label) return;

            if (skipIntroLabels.includes(label) && button.offsetParent !== null) {
                button.click();
                console.log('Skip Intro cliqué:', label);
            }

            if (skipCreditsLabels.includes(label) && button.offsetParent !== null) {
                button.click();
                console.log('Skip Credits cliqué:', label);
            }
        });
    }

    setInterval(clickSkipButtons, 1000);
})();