YouTube Player Layout Modifier

Move the top of the progress bar to the bottom of the YouTube player and keep buttons at the top

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==UserScript==
// @name         YouTube Player Layout Modifier
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Move the top of the progress bar to the bottom of the YouTube player and keep buttons at the top
// @author       Your Name
// @match        https://www.youtube.com/*
// @grant        GM_addStyle
// ==/UserScript==

(function() {
    'use strict';

    // Function to rearrange player elements
    function rearrangePlayerElements() {
        const player = document.querySelector('.html5-video-player');
        const progressBar = document.querySelector('.ytp-progress-bar-container');
        const controls = document.querySelector('.ytp-chrome-bottom');

        if (player && progressBar && controls) {
            // Move controls (buttons) to the top of the player
            player.insertBefore(controls, player.firstChild);
            // Move progress bar to the bottom of the player
            player.appendChild(progressBar);
        }
    }

    // Mutation observer to rearrange elements when player is loaded or changed
    const observer = new MutationObserver(rearrangePlayerElements);
    
    // Observe changes in the body, specifically to the video player
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

    // Call the function initially to rearrange elements if the player is already present
    rearrangePlayerElements();
})();