您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Replaces Kick embed with a full channel page and enables theatre mode on Kick.com only when loaded as an embed replacement
// ==UserScript== // @name Replace Kick Embed with Channel Page and Enable Theatre Mode // @namespace https://multikick.com/ // @version 1.7 // @description Replaces Kick embed with a full channel page and enables theatre mode on Kick.com only when loaded as an embed replacement // @author nobody // @match *://multikick.com/* // @match *://kick.com/* // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle // @grant GM_registerMenuCommand // @license GPL-3.0-or-later // ==/UserScript== let chatButtonVisible = GM_getValue('kickChatButtonVisible', true); GM_registerMenuCommand('Toggle chat button visibility', () => { chatButtonVisible = !chatButtonVisible; GM_setValue('kickChatButtonVisible', chatButtonVisible); alert('Refresh for changes to take effect.'); }); let liveInformationVisible = GM_getValue('kickLiveInformationVisible', false); GM_registerMenuCommand('Toggle live information visibility', () => { liveInformationVisible = !liveInformationVisible; GM_setValue('kickLiveInformationVisible', liveInformationVisible); alert('Refresh for changes to take effect.'); }); if (window.location.host.includes("multikick.com")) { // Code for the embed page: Replace the Kick player with a full channel page const observer = new MutationObserver(() => { const playerContainer = document.querySelector(".video-container"); if (playerContainer) { // Extract channel information from the URL const channelUrl = window.location.href; console.log("Channel URL:", channelUrl); const splitURL = channelUrl.split("/"); const channelId = splitURL[splitURL.length - 1]; // Assumes URL is like: https://multikick.com/player/{channelId} console.log("Channel ID:", channelId); // Create an iframe for the full Kick channel page const iframe = document.createElement("iframe"); iframe.src = `https://kick.com/${channelId}`; iframe.style.width = "100%"; iframe.style.height = "100vh"; // Full viewport height iframe.style.border = "none"; // Replace the embed with the full channel page playerContainer.innerHTML = ""; playerContainer.appendChild(iframe); if (!liveInformationVisible) { GM_addStyle(` .live-informations { display: none !important; } `); } // Stop observing and mark that we replaced the embed observer.disconnect(); GM_setValue("embedReplaced", true); } }); observer.observe(document.body, { subtree: true, childList: true, }); } else if (window.location.host.includes("kick.com")) { // Code for kick.com: Only run if the embed was replaced and the referrer indicates it came from multikick.com const embedReplacedValue = GM_getValue("embedReplaced", false); if (embedReplacedValue && document.referrer.includes("multikick.com")) { console.log("Embed replacement detected via referrer. Enabling theatre mode..."); const observer2 = new MutationObserver(() => { const el = document.querySelector('[data-sidebar]'); el.dataset.sidebar = 'false'; el.dataset.chat = 'false'; el.dataset.theatre = 'true'; GM_addStyle(` [data-sidebar] > .w-xvw { padding-top: unset !important; } #channel-content { display: none; } `); if (!chatButtonVisible) { GM_addStyle(` [data-theatre-mode-container] .z-controls > button { display: none !important; } `); } observer2.disconnect(); // Clear the flag so subsequent direct visits to kick.com don't trigger theatre mode GM_setValue("embedReplaced", false); }); observer2.observe(document.body, { subtree: true, childList: true, }); } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址