SOOP Hide Player Bars

Hides the top info overlay and bottom playback controls. Bars reappear while the mouse is moving and hide again 0.5s after it stops.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==

// @name         SOOP Hide Player Bars
// @name:ko      SOOP 플레이어 바 숨기기

// @description  Hides the top info overlay and bottom playback controls. Bars reappear while the mouse is moving and hide again 0.5s after it stops.
// @description:ko  상단 방송 정보 오버레이와 하단 재생 컨트롤을 숨깁니다. 마우스를 움직이면 나타나고, 0.5초 후 다시 숨겨집니다.

// @author       NWP
// @namespace    https://greasyfork.org/users/877912
// @version      1.1.0
// @license      MIT
// @match        https://play.sooplive.com/*
// @grant        GM_addStyle
// ==/UserScript==

(function () {
    'use strict';
 
    const CSS_ID = 'soop-hide-bars-style';
 
    const HIDE_CSS = `
        /* 상단 오버레이: 스트리머 이름, 시청자 수, 방송 제목 */
        /* Top overlay: streamer name, viewer count, title */
        #player_info,
        #player_info .detail_info {
            display: none !important;
        }
 
        /* 하단 재생 컨트롤: 재생/일시정지, 볼륨, 화질, 전체화면 등 */
        /* Bottom player controls: play/pause, volume, quality, fullscreen, etc. */
        .player_ctrlBox {
            display: none !important;
        }
 
        /* 채팅/목록/선물 토글 버튼 */
        /* Mini view-control buttons: chat/list/gift toggles */
        .view_ctrl {
            display: none !important;
        }
 
        /* 마우스 커서 숨기기 */
        /* Hide mouse cursor */
        * {
            cursor: none !important;
        }
    `;
 
    const HIDE_DELAY = 500; // 마우스 정지 후 숨기기까지 대기 시간 (ms) / ms to wait after mouse stops before hiding
 
    let hideTimer = null;
 
    function applyHide() {
        if (!document.getElementById(CSS_ID)) {
            const style = document.createElement('style');
            style.id = CSS_ID;
            style.textContent = HIDE_CSS;
            document.head.appendChild(style);
        }
    }
 
    function removeHide() {
        const style = document.getElementById(CSS_ID);
        if (style) style.remove();
    }
 
    function onMouseMove() {
        // 마우스 움직임 감지 시 즉시 표시 / Show bars immediately when mouse moves
        removeHide();
 
        // 타이머 재시작 / Restart the hide countdown
        clearTimeout(hideTimer);
        hideTimer = setTimeout(applyHide, HIDE_DELAY);
    }
 
    // 페이지 로드 시 숨긴 상태로 시작, 첫 마우스 움직임에 표시됨
    // Start hidden; bars appear on first mouse movement
    applyHide();
    document.addEventListener('mousemove', onMouseMove);
})();;