From bcf85e43a90b49219692371f172aa8e4bcd64ebb Mon Sep 17 00:00:00 2001 From: goodtube4u Date: Mon, 22 Jul 2024 12:56:23 +1000 Subject: [PATCH] Updates --- goodtube.js | 638 +++++++++++++++++++++-------------------------- goodtube.min.js | 2 +- goodtube.user.js | 2 +- 3 files changed, 292 insertions(+), 350 deletions(-) diff --git a/goodtube.js b/goodtube.js index c9219e7..9ab648a 100644 --- a/goodtube.js +++ b/goodtube.js @@ -92,9 +92,18 @@ } .goodTube_hiddenPlayer { - position: absolute !important; - transform: scale(0) !important; - pointer-events: none !important; + position: relative; + } + + .goodTube_hiddenPlayer::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: #ffffff; + z-index: 998; } `; @@ -116,11 +125,6 @@ parent.replaceChild(wrapper, element); wrapper.appendChild(element); } - - // Old method of applying the class directly to the element - // if (element && !element.classList.contains('goodTube_hiddenPlayer')) { - // element.classList.add('goodTube_hiddenPlayer'); - // } } function goodTube_helper_showElement(element) { @@ -294,28 +298,22 @@ goodTube_helper_hideElementPlayer(element); }); - // Hide the player containers - let playerContainers = document.querySelectorAll('.player-container'); - playerContainers.forEach((element) => { + // Remove the full screen and theater Youtube player + let fullscreenPlayers = document.querySelectorAll('#full-bleed-container'); + fullscreenPlayers.forEach((element) => { goodTube_helper_hideElementPlayer(element); }); // Hide the mobile controls let mobileControls = document.querySelectorAll('#player-control-container'); mobileControls.forEach((element) => { - goodTube_helper_hideElementPlayer(element); - }); - - // Remove the full screen Youtube player - let fullscreenPlayers = document.querySelectorAll('#full-bleed-container'); - fullscreenPlayers.forEach((element) => { - goodTube_helper_hideElementPlayer(element); + goodTube_helper_hideElement(element); }); // Hide the Youtube miniplayer let miniPlayers = document.querySelectorAll('ytd-miniplayer'); miniPlayers.forEach((element) => { - goodTube_helper_hideElementPlayer(element); + goodTube_helper_hideElement(element); }); // Turn off autoplay @@ -363,10 +361,10 @@ // Always skip the ads as soon as possible by clicking the skip button - // let skipButton = document.querySelector('.ytp-skip-ad-button'); - // if (skipButton) { - // skipButton.click(); - // } + let skipButton = document.querySelector('.ytp-skip-ad-button'); + if (skipButton) { + skipButton.click(); + } // Also pause and mute all other HTML videos on the page let youtubeVideos = document.querySelectorAll('video:not(#goodTube_player):not(#goodTube_player_html5_api)'); @@ -469,18 +467,8 @@ // Init function goodTube_player_init() { - // If the target Youtube page element does not exist OR the assets are not loaded, call this function again next drawframe - let youtubePageElement = false; - // Desktop - if (!goodTube_mobile) { - youtubePageElement = document.getElementById('below'); - } - // Mobile - else { - youtubePageElement = document.querySelector('body'); - } - - if (!youtubePageElement || goodTube_player_loadedAssets < goodTube_player_assets.length) { + // Wait until the assets and page are loaded + if (goodTube_player_loadedAssets < goodTube_player_assets.length) { setTimeout(function() { goodTube_player_init(); }, 0); @@ -492,7 +480,7 @@ let style = document.createElement('style'); style.textContent = ` /* Default quality modal */ - #goodTube_player_wrapper3 .goodTube_defaultQualityModal { + #goodTube_playerWrapper .goodTube_defaultQualityModal { position: absolute; z-index: 99999; top: 0; @@ -505,7 +493,7 @@ pointer-events: none; } - #goodTube_player_wrapper3 .goodTube_defaultQualityModal .goodTube_defaultQualityModal_overlay { + #goodTube_playerWrapper .goodTube_defaultQualityModal .goodTube_defaultQualityModal_overlay { position: absolute; top: 0; left: 0; @@ -515,12 +503,12 @@ z-index: 1; } - #goodTube_player_wrapper3 .goodTube_defaultQualityModal.goodTube_defaultQualityModal_visible { + #goodTube_playerWrapper .goodTube_defaultQualityModal.goodTube_defaultQualityModal_visible { opacity: 1; pointer-events: all; } - #goodTube_player_wrapper3 .goodTube_defaultQualityModal .goodTube_defaultQualityModal_inner { + #goodTube_playerWrapper .goodTube_defaultQualityModal .goodTube_defaultQualityModal_inner { position: absolute; top: 50%; left: 50%; @@ -536,7 +524,7 @@ box-shadow: 0 0 16px rgba(15, 15, 15, .3); } - #goodTube_player_wrapper3 .goodTube_defaultQualityModal .goodTube_defaultQualityModal_title { + #goodTube_playerWrapper .goodTube_defaultQualityModal .goodTube_defaultQualityModal_title { color: rgba(15, 15, 15); font-size: 16px; font-weight: 700; @@ -548,11 +536,11 @@ font-family: Roboto, Arial, Helvetica, sans-serif; } - #goodTube_player_wrapper3 .goodTube_defaultQualityModal .goodTube_defaultQualityModal_options { + #goodTube_playerWrapper .goodTube_defaultQualityModal .goodTube_defaultQualityModal_options { padding-bottom: 12px; } - #goodTube_player_wrapper3 .goodTube_defaultQualityModal .goodTube_defaultQualityModal_options .goodTube_defaultQualityModal_option { + #goodTube_playerWrapper .goodTube_defaultQualityModal .goodTube_defaultQualityModal_options .goodTube_defaultQualityModal_option { color: rgba(15, 15, 15); font-size: 14px; display: block; @@ -567,30 +555,30 @@ font-family: Roboto, Arial, Helvetica, sans-serif; } - #goodTube_player_wrapper3 .goodTube_defaultQualityModal .goodTube_defaultQualityModal_options .goodTube_defaultQualityModal_option.goodTube_defaultQualityModal_selected { + #goodTube_playerWrapper .goodTube_defaultQualityModal .goodTube_defaultQualityModal_options .goodTube_defaultQualityModal_option.goodTube_defaultQualityModal_selected { background: rgba(15,15,15,.15); font-weight: 700; } - #goodTube_player_wrapper3 .goodTube_defaultQualityModal .goodTube_defaultQualityModal_options .goodTube_defaultQualityModal_option:hover { + #goodTube_playerWrapper .goodTube_defaultQualityModal .goodTube_defaultQualityModal_options .goodTube_defaultQualityModal_option:hover { background: rgba(15,15,15,.1); } /* Automatic server styling */ - #goodTube_player_wrapper1.goodTube_automaticServer #goodTube_player_wrapper2 .vjs-source-button ul li:first-child { + #goodTube_playerWrapper.goodTube_automaticServer .vjs-source-button ul li:first-child { background: #ffffff !important; color: #000000 !important; } - #goodTube_player_wrapper1.goodTube_automaticServer .vjs-source-button ul li.vjs-selected { + #goodTube_playerWrapper.goodTube_automaticServer .vjs-source-button ul li.vjs-selected { background-color: rgba(255, 255, 255, .2) !important; color: #ffffff !important; } /* Hide the volume tooltip */ - #goodTube_player_wrapper1 .vjs-volume-bar .vjs-mouse-display { + #goodTube_playerWrapper .vjs-volume-bar .vjs-mouse-display { display: none !important; } @@ -599,17 +587,17 @@ } /* Live streams */ - #goodTube_player_wrapper1 .vjs-live .vjs-progress-control { + #goodTube_playerWrapper .vjs-live .vjs-progress-control { display: block; } - #goodTube_player_wrapper1 .vjs-live .vjs-duration-display, - #goodTube_player_wrapper1 .vjs-live .vjs-time-divider { + #goodTube_playerWrapper .vjs-live .vjs-duration-display, + #goodTube_playerWrapper .vjs-live .vjs-time-divider { display: none !important; } /* Seek bar */ - #goodTube_player_wrapper1 .vjs-progress-control { + #goodTube_playerWrapper .vjs-progress-control { position: absolute; bottom: 48px; left: 0; @@ -618,7 +606,7 @@ height: calc(24px + 3px); } - #goodTube_player_wrapper1 .vjs-progress-control .vjs-slider { + #goodTube_playerWrapper .vjs-progress-control .vjs-slider { margin: 0; background: transparent; position: absolute; @@ -630,13 +618,13 @@ z-index: 1; } - #goodTube_player_wrapper1 .vjs-progress-control:hover .vjs-slider { + #goodTube_playerWrapper .vjs-progress-control:hover .vjs-slider { pointer-events: none; height: 5px; bottom: 2px; } - #goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-load-progress { + #goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-load-progress { height: 100%; background: rgba(255, 255, 255, .2); transition: none; @@ -645,25 +633,25 @@ transition: margin .1s linear; } - #goodTube_player_wrapper1 .vjs-progress-control:hover .vjs-slider .vjs-load-progress { + #goodTube_playerWrapper .vjs-progress-control:hover .vjs-slider .vjs-load-progress { margin-bottom: -5px; } - #goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-load-progress .vjs-control-text { + #goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-load-progress .vjs-control-text { display: none; } - #goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-load-progress > div { + #goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-load-progress > div { background: transparent !important; } - #goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-play-progress { + #goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-play-progress { background: transparent; position: static; z-index: 1; } - #goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-play-progress::before { + #goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-play-progress::before { content: ''; background: #ff0000; width: 100%; @@ -672,7 +660,7 @@ display: block; } - #goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-play-progress::after { + #goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-play-progress::after { content: ''; display: block; float: right; @@ -687,14 +675,14 @@ position: relative; } - #goodTube_player_wrapper1 .vjs-progress-control:hover .vjs-slider .vjs-play-progress::after { + #goodTube_playerWrapper .vjs-progress-control:hover .vjs-slider .vjs-play-progress::after { opacity: 1; top: -9px; } /* Without chapters */ - #goodTube_player_wrapper1:not(.goodTube_hasChapters) .vjs-progress-control::before { + #goodTube_playerWrapper:not(.goodTube_hasChapters) .vjs-progress-control::before { content: ''; position: absolute; bottom: 3px; @@ -705,14 +693,14 @@ transition: height .1s linear, bottom .1s linear; } - #goodTube_player_wrapper1:not(.goodTube_hasChapters) .vjs-progress-control:hover::before { + #goodTube_playerWrapper:not(.goodTube_hasChapters) .vjs-progress-control:hover::before { height: 5px; bottom: 2px; } /* With chapters */ - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters { position: absolute; top: 0; bottom: 0; @@ -720,12 +708,12 @@ right: 8px; } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter { height: 100%; position: absolute; } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter::before { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter::before { content: ''; background: rgba(255, 255, 255, .2); position: absolute; @@ -736,26 +724,26 @@ transition: height .1s linear, bottom .1s linear, background .1s linear; } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter.goodTube_redChapter::before { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter.goodTube_redChapter::before { background: #ff0000 !important; } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter:last-child::before { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter:last-child::before { right: 0; } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control:hover .goodTube_chapters .goodTube_chapter::before { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control:hover .goodTube_chapters .goodTube_chapter::before { height: 5px; bottom: 2px; } - #goodTube_player_wrapper1.goodTube_hasChapters:not(.goodTube_mobile) .vjs-progress-control .goodTube_chapters .goodTube_chapter:hover::before { + #goodTube_playerWrapper.goodTube_hasChapters:not(.goodTube_mobile) .vjs-progress-control .goodTube_chapters .goodTube_chapter:hover::before { height: 9px; bottom: 0; background: rgba(255, 255, 255, .4); } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_markers { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_markers { position: absolute; top: 0; left: 0; @@ -764,7 +752,7 @@ pointer-events: none; } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_marker { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_marker { width: 2px; height: 100%; position: absolute; @@ -772,26 +760,26 @@ margin-left: -2px; } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_marker.goodTube_showMarker { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_marker.goodTube_showMarker { background: rgba(0, 0, 0, .6); } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_marker:last-child { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_marker:last-child { display: none; } - #goodTube_player_wrapper1 .vjs-progress-control .vjs-mouse-display { + #goodTube_playerWrapper .vjs-progress-control .vjs-mouse-display { background: transparent; } - #goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip::before { + #goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip::before { content: attr(chapter-title); display: block; white-space: nowrap; margin-bottom: 4px; } - #goodTube_player_wrapper1 .vjs-progress-control .goodTube_hoverBar { + #goodTube_playerWrapper .vjs-progress-control .goodTube_hoverBar { background: rgba(255, 255, 255, .4); position: absolute; bottom: 3px; @@ -801,39 +789,39 @@ transition: height .1s linear, bottom .1s linear, opacity .1s linear; } - #goodTube_player_wrapper1 .vjs-progress-control:hover .goodTube_hoverBar { + #goodTube_playerWrapper .vjs-progress-control:hover .goodTube_hoverBar { height: 5px; bottom: 2px; opacity: 1; } - #goodTube_player_wrapper1.goodTube_mobile .vjs-time-control .vjs-duration-display { + #goodTube_playerWrapper.goodTube_mobile .vjs-time-control .vjs-duration-display { white-space: nowrap; } - #goodTube_player_wrapper1.goodTube_mobile .vjs-time-control .vjs-duration-display::after { + #goodTube_playerWrapper.goodTube_mobile .vjs-time-control .vjs-duration-display::after { content: attr(chapter-title); display: inline-block; color: #ffffff; margin-left: 3px; } - #goodTube_player_wrapper1.goodTube_mobile .vjs-progress-control .vjs-slider, - #goodTube_player_wrapper1.goodTube_mobile:not(.goodTube_hasChapters) .vjs-progress-control::before, - #goodTube_player_wrapper1.goodTube_mobile.goodTube_hasChapters .vjs-progress-control .goodTube_chapters, - #goodTube_player_wrapper1.goodTube_mobile .vjs-progress-control .goodTube_hoverBar { + #goodTube_playerWrapper.goodTube_mobile .vjs-progress-control .vjs-slider, + #goodTube_playerWrapper.goodTube_mobile:not(.goodTube_hasChapters) .vjs-progress-control::before, + #goodTube_playerWrapper.goodTube_mobile.goodTube_hasChapters .vjs-progress-control .goodTube_chapters, + #goodTube_playerWrapper.goodTube_mobile .vjs-progress-control .goodTube_hoverBar { left: 16px; right: 16px; } /* Audio only view */ - #goodTube_player_wrapper3.goodTube_audio { + #goodTube_playerWrapper.goodTube_audio { background: #000000; position: relative; } - #goodTube_player_wrapper3.goodTube_audio .video-js::after { + #goodTube_playerWrapper.goodTube_audio .video-js::after { content: '\\f107'; position: absolute; top: 50%; @@ -848,12 +836,12 @@ } @media (max-width: 768px) { - #goodTube_player_wrapper3.goodTube_audio .video-js::after { + #goodTube_playerWrapper.goodTube_audio .video-js::after { font-size: 100px; } } - #goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper3.goodTube_audio .video-js::after { + #goodTube_playerWrapper.goodTube_mobile #goodTube_playerWrapper.goodTube_audio .video-js::after { font-size: 100px; } @@ -876,90 +864,37 @@ width: 25%; } - /* Theater mode */ - ytd-watch-flexy[theater] #goodTube_player_wrapper1:not(.goodTube_mobile) { - width: 100%; + /* Desktop */ + #goodTube_playerWrapper { + border-radius: 12px; + background: #ffffff; position: absolute; - top: 56px; + top: 0; left: 0; - right: 0; + z-index: 999; + overflow: hidden; + } + + /* Mobile */ + #goodTube_playerWrapper.goodTube_mobile { + position: fixed; + background: #000000; + border-radius: 0; + z-index: 2; + } + + /* Theater mode */ + #goodTube_playerWrapper.goodTube_theater { background: #000000; border-radius: 0; } - ytd-watch-flexy:not(ytd-watch-flexy[theater]) #below, - ytd-watch-flexy:not(ytd-watch-flexy[theater]) #secondary { - margin-top: 0 !important; - } - - ytd-watch-flexy[theater] #below { - padding-top: 8px !important; - } - - ytd-watch-flexy[theater] #secondary { - padding-top: 16px !important; - } - - ytd-watch-flexy[theater] #goodTube_player_wrapper1:not(.goodTube_mobile) { - padding-top: min(var(--ytd-watch-flexy-max-player-height), (calc(var(--ytd-watch-flexy-height-ratio) / var(--ytd-watch-flexy-width-ratio) * 100%))) !important; - } - - ytd-watch-flexy[theater] #goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper3, - ytd-watch-flexy[theater] #goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper3 #goodTube_player { - border-radius: 0; - } - - /* Desktop */ - #goodTube_player_wrapper1:not(.goodTube_mobile) { - position: relative; - height: 0; - padding-top: min(var(--ytd-watch-flexy-max-player-height), (calc(var(--ytd-watch-flexy-height-ratio) / var(--ytd-watch-flexy-width-ratio) * 100%))) !important; - box-sizing: border-box; - min-height: var(--ytd-watch-flexy-min-player-height); - } - - #goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper2 { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - margin: 0 auto; - min-height: 240px; - } - - #goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper3 { - box-sizing: border-box; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - min-height: 240px; - } - - #goodTube_player_wrapper1:not(.goodTube_mobile):not(.goodTube_miniplayer) #goodTube_player { - border-radius: 12px; - } - - #goodTube_player_wrapper1.goodTube_miniplayer.goodTube_mobile { - position: absolute !important; - } - - #goodTube_player_wrapper3 { - overflow: hidden; - } - - #goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper3 { - border-radius: 12px; - } - /* Miniplayer */ - #goodTube_player_wrapper1.goodTube_miniplayer { + #goodTube_playerWrapper.goodTube_miniplayer { z-index: 999 !important; } - #goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js { + #goodTube_playerWrapper.goodTube_miniplayer .video-js { position: fixed; bottom: 12px; right: 12px; @@ -972,11 +907,15 @@ left: auto; aspect-ratio: 16 / 9; top: auto; - border-radius: 12px; overflow: hidden; + background: #000000; + border-radius: 12px; + } + #goodTube_playerWrapper.goodTube_miniplayer .video-js::before { + content: none !important; } - #goodTube_player_wrapper1.goodTube_miniplayer.goodTube_mobile #goodTube_player_wrapper3 .video-js { + #goodTube_playerWrapper.goodTube_miniplayer.goodTube_mobile .video-js { bottom: 60px; } @@ -990,15 +929,15 @@ left: -9999px; } - #goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-source-button, - #goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-autoplay-button, - #goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-miniplayer-button, - #goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-theater-button { + #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-source-button, + #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-autoplay-button, + #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-miniplayer-button, + #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-theater-button { display: none !important; } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton { font-family: VideoJS; font-weight: 400; font-style: normal; @@ -1016,16 +955,16 @@ } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::after { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::after { content: 'Close'; right: 12px; } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::after { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::after { content: 'Expand'; left: 12px; } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::after, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::after { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::after, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::after { position: absolute; bottom: -24px; background: rgba(0, 0, 0, .75); @@ -1042,16 +981,16 @@ font-family: 'MS Shell Dlg 2', sans-serif; line-height: initial; } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton:hover::after, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton:hover::after { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton:hover::after, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton:hover::after { opacity: 1; } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton { right: 0; font-size: 24px; } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::before { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::before { content: "\\f119"; position: absolute; top: 50%; @@ -1059,11 +998,11 @@ transform: translate(-50%, -50%); } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton { left: 0; font-size: 18px; } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::before { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::before { content: "\\f128"; position: absolute; top: 50%; @@ -1072,35 +1011,19 @@ } - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-paused:not(.vjs-user-inactive) #goodTube_miniplayer_expandButton, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-user-active #goodTube_miniplayer_expandButton, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-paused:not(.vjs-user-inactive) #goodTube_miniplayer_closeButton, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-user-active #goodTube_miniplayer_closeButton { + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-paused:not(.vjs-user-inactive) #goodTube_miniplayer_expandButton, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-user-active #goodTube_miniplayer_expandButton, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-paused:not(.vjs-user-inactive) #goodTube_miniplayer_closeButton, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-user-active #goodTube_miniplayer_closeButton { opacity: 1; } /* Mobile */ - html body #goodTube_player_wrapper1.goodTube_mobile { - position: fixed; - top: 48px; - left: 0; - right: 0; - width: 100%; - z-index: 1; + html body #goodTube_playerWrapper.goodTube_mobile { } - html body #goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper2 { - width: 100%; - height: 100%; - } - - html body #goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper3 { - width: 100%; - height: 100%; - } - - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control.vjs-play-control, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-control.vjs-play-control { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control.vjs-play-control, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-control.vjs-play-control { position: absolute; top: calc(50% - 48px); left: calc(50% - 32px); @@ -1109,14 +1032,15 @@ background: rgba(0, 0, 0, .3); border-radius: 50%; max-width: 999px !important; + box-sizing: border-box; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-play-control .vjs-icon-placeholder::before, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-play-control .vjs-icon-placeholder::before { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-play-control .vjs-icon-placeholder::before, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-play-control .vjs-icon-placeholder::before { font-size: 44px !important; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-prev-button, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-prev-button { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-prev-button, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-prev-button { position: absolute; top: calc(50% - 40px); left: calc(50% - 104px); @@ -1126,13 +1050,13 @@ border-radius: 50%; max-width: 999px !important; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-prev-button .vjs-icon-placeholder::before, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-prev-button .vjs-icon-placeholder::before { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-prev-button .vjs-icon-placeholder::before, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-prev-button .vjs-icon-placeholder::before { font-size: 32px !important; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-next-button, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-next-button { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-next-button, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-next-button { position: absolute; top: calc(50% - 40px); left: calc(50% + 56px); @@ -1142,13 +1066,13 @@ border-radius: 50%; max-width: 999px !important; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-next-button .vjs-icon-placeholder::before, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-next-button .vjs-icon-placeholder::before { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-next-button .vjs-icon-placeholder::before, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-next-button .vjs-icon-placeholder::before { font-size: 32px !important; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control-bar, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-control-bar { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control-bar, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-control-bar { z-index: 1; position: static; margin-top: auto; @@ -1164,7 +1088,7 @@ min-width: 636px !important; } - ytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { + ytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { zoom: .88; } } @@ -1174,57 +1098,57 @@ min-width: 0 !important; } - ytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { + ytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { zoom: 1; } } @media (max-width: 786px) { - ytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { + ytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { zoom: .9; } } @media (max-width: 715px) { - ytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { + ytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { zoom: .85; } } @media (max-width: 680px) { - ytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { + ytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button { zoom: .8; } } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js { + html body #goodTube_playerWrapper.goodTube_mobile .video-js, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js { display: flex; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-source-button, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-source-button { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-source-button, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-source-button { margin-left: 0 !important; } @media (max-width: 480px) { - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-source-button .vjs-menu, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-source-button .vjs-menu { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-source-button .vjs-menu, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-source-button .vjs-menu { left: 60px !important; } } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-loading-spinner, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-loading-spinner { + html body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-loading-spinner, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-loading-spinner { top: calc(50% - 16px); } - html body #goodTube_player_wrapper1 .video-js.vjs-loading { + html body #goodTube_playerWrapper .video-js.vjs-loading { background: #000000; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js::before, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js::before { + html body #goodTube_playerWrapper.goodTube_mobile .video-js::before, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js::before { content: ''; background: transparent; transition: background .2s ease-in-out; @@ -1237,22 +1161,22 @@ z-index: 1; } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js.vjs-paused::before, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-paused::before, - html body #goodTube_player_wrapper1.goodTube_mobile .video-js.vjs-user-active::before, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-user-active::before { + html body #goodTube_playerWrapper.goodTube_mobile .video-js.vjs-paused::before, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-paused::before, + html body #goodTube_playerWrapper.goodTube_mobile .video-js.vjs-user-active::before, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-user-active::before { background: rgba(0,0,0,.6); } - html body #goodTube_player_wrapper1.goodTube_mobile .video-js.vjs-user-inactive:not(.vjs-paused) .vjs-control-bar, - html body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-user-inactive:not(.vjs-paused) .vjs-control-bar { + html body #goodTube_playerWrapper.goodTube_mobile .video-js.vjs-user-inactive:not(.vjs-paused) .vjs-control-bar, + html body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-user-inactive:not(.vjs-paused) .vjs-control-bar { visibility: visible; opacity: 0; pointer-events: none; } - #goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper3 .video-js .vjs-theater-button, - #goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper3 .video-js .vjs-miniplayer-button { + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-theater-button, + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-miniplayer-button { display: none !important; } @@ -1269,7 +1193,7 @@ z-index: 1; } - #goodTube_player_wrapper1.goodTube_mobile #goodTube_player, + #goodTube_playerWrapper.goodTube_mobile #goodTube_player, #goodTube_player.vjs-loading { background: #000000; } @@ -1301,72 +1225,19 @@ document.head.appendChild(style); // Setup player layout - let player_wrapper1 = document.createElement('div'); - player_wrapper1.id = 'goodTube_player_wrapper1'; + let playerWrapper = document.createElement('div'); + playerWrapper.id = 'goodTube_playerWrapper'; - let player_wrapper2 = document.createElement('div'); - player_wrapper2.id = 'goodTube_player_wrapper2'; + // Add a mobile class + if (goodTube_mobile) { + playerWrapper.classList.add('goodTube_mobile'); + } - let player_wrapper3 = document.createElement('div'); - player_wrapper3.id = 'goodTube_player_wrapper3'; + // Setup player dynamic positioning and sizing + goodTube_player_positionAndSize(playerWrapper); // Add player to the page - - // Desktop - if (!goodTube_mobile) { - youtubePageElement.before(player_wrapper1); - - // Offset top of stuff when in theater mode - setInterval(function() { - let offsetElements = document.querySelectorAll('ytd-watch-flexy[theater] #below, ytd-watch-flexy[theater] #secondary'); - offsetElements.forEach((element) => { - element.style.marginTop = player_wrapper1.offsetHeight+'px'; - }); - }, 1); - } - // Mobile - else { - player_wrapper1.classList.add('goodTube_mobile'); - youtubePageElement.appendChild(player_wrapper1); - - setInterval(function() { - window.requestAnimationFrame(function() { - if (typeof goodTube_getParams['v'] !== 'undefined') { - // Match width and height of mobile player - let youtubeSize_element = document.querySelector('.player-size.player-placeholder'); - if (youtubeSize_element) { - if (youtubeSize_element.offsetHeight > 0) { - player_wrapper1.style.height = youtubeSize_element.offsetHeight+'px'; - player_wrapper1.style.width = youtubeSize_element.offsetWidth+'px'; - } - else { - youtubeSize_element = document.querySelector('#player'); - if (youtubeSize_element.offsetHeight > 0) { - player_wrapper1.style.height = youtubeSize_element.offsetHeight+'px'; - player_wrapper1.style.width = youtubeSize_element.offsetWidth+'px'; - } - } - } - - // Match sticky mode of mobile player - let youtubeSticky_element = document.querySelector('.player-container.sticky-player'); - if (youtubeSticky_element) { - player_wrapper1.style.position = 'fixed'; - } - else { - player_wrapper1.style.position = 'absolute'; - } - } - else { - player_wrapper1.style.height = '0'; - player_wrapper1.style.width = '0'; - } - }); - }, 1); - } - - player_wrapper1.appendChild(player_wrapper2); - player_wrapper2.appendChild(player_wrapper3); + document.body.appendChild(playerWrapper); // Add video let player = document.createElement('video'); @@ -1374,7 +1245,7 @@ player.classList.add('video-js'); player.controls = true; player.setAttribute('tab-index', '1'); - player_wrapper3.appendChild(player); + playerWrapper.appendChild(player); // Expose the player globally goodTube_player = player; @@ -1625,6 +1496,72 @@ } } + // Position and size the player + function goodTube_player_positionAndSize(playerWrapper) { + // If we're viewing a video + if (typeof goodTube_getParams['v'] !== 'undefined') { + + + // Desktop + if (!goodTube_mobile) { + let positionElement = false; + + // Theater mode + if (document.querySelector('ytd-watch-flexy[theater]')) { + positionElement = document.getElementById('full-bleed-container'); + + if (!playerWrapper.classList.contains('goodTube_theater')) { + playerWrapper.classList.add('goodTube_theater'); + } + } + // Regular mode + else { + positionElement = document.getElementById('player'); + + if (playerWrapper.classList.contains('goodTube_theater')) { + playerWrapper.classList.remove('goodTube_theater'); + } + } + + // Position the player + if (positionElement && positionElement.offsetHeight > 0) { + // Our wrapper has "position: absolute" so take into account the window scroll + let rect = positionElement.getBoundingClientRect(); + playerWrapper.style.top = (rect.top + window.scrollY)+'px'; + playerWrapper.style.left = (rect.left + window.scrollX)+'px'; + + // Match the size of the position element + playerWrapper.style.width = positionElement.offsetWidth+'px'; + playerWrapper.style.height = positionElement.offsetHeight+'px'; + } + } + + // Mobile + else { + let positionElement = document.getElementById('player'); + + // Position the player + if (positionElement && positionElement.offsetHeight > 0) { + // Our wrapper has "position: absolute" so don't take into account the window scroll + let rect = positionElement.getBoundingClientRect(); + playerWrapper.style.top = rect.top+'px'; + playerWrapper.style.left = rect.left+'px'; + + // Match the size of the position element + playerWrapper.style.width = positionElement.offsetWidth+'px'; + playerWrapper.style.height = positionElement.offsetHeight+'px'; + } + } + + + } + + // Call this function again on next draw frame + window.requestAnimationFrame(function() { + goodTube_player_positionAndSize(playerWrapper); + }); + } + // Load assets function goodTube_player_loadAssets() { // Debug message @@ -1724,7 +1661,7 @@ goodTube_helper_setCookie('goodTube_api_withauto', url); // Add class from wrapper for styling automatic option - let wrapper = document.querySelector('#goodTube_player_wrapper1'); + let wrapper = document.querySelector('#goodTube_playerWrapper'); if (!wrapper.classList.contains('goodTube_automaticServer')) { wrapper.classList.add('goodTube_automaticServer'); } @@ -1749,7 +1686,7 @@ }); // Remove class from wrapper for styling automatic option - let wrapper = document.querySelector('#goodTube_player_wrapper1'); + let wrapper = document.querySelector('#goodTube_playerWrapper'); if (wrapper.classList.contains('goodTube_automaticServer')) { wrapper.classList.remove('goodTube_automaticServer'); } @@ -2204,7 +2141,7 @@ `; // Add it to the DOM - document.querySelector('#goodTube_player_wrapper3 .video-js').appendChild(defaultQualityModal); + document.querySelector('#goodTube_playerWrapper .video-js').appendChild(defaultQualityModal); // Add click events to buttons let defaultQualityOptions = document.querySelectorAll('.goodTube_defaultQualityModal .goodTube_defaultQualityModal_option'); @@ -2564,7 +2501,7 @@ // Add a hover action to show the title in the tooltip (desktop only) if (!goodTube_mobile) { chapterDiv.addEventListener('mouseover', function() { - document.querySelector('#goodTube_player_wrapper1 .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip')?.setAttribute('chapter-title', chapter['title']); + document.querySelector('#goodTube_playerWrapper .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip')?.setAttribute('chapter-title', chapter['title']); }); } @@ -2641,20 +2578,20 @@ }); if (currentChapterTitle) { - document.querySelector('#goodTube_player_wrapper1 .vjs-time-control .vjs-duration-display')?.setAttribute('chapter-title', '· '+currentChapterTitle); + document.querySelector('#goodTube_playerWrapper .vjs-time-control .vjs-duration-display')?.setAttribute('chapter-title', '· '+currentChapterTitle); } }, 10); } // Add the chapters container to the player - document.querySelector('#goodTube_player_wrapper1 .vjs-progress-control')?.appendChild(chaptersContainer); + document.querySelector('#goodTube_playerWrapper .vjs-progress-control')?.appendChild(chaptersContainer); // Add the markers container to the player - document.querySelector('#goodTube_player_wrapper1 .vjs-progress-control .vjs-play-progress')?.appendChild(markersContainer); + document.querySelector('#goodTube_playerWrapper .vjs-progress-control .vjs-play-progress')?.appendChild(markersContainer); // Add chapters class to the player - if (!document.querySelector('#goodTube_player_wrapper1').classList.contains('goodTube_hasChapters')) { - document.querySelector('#goodTube_player_wrapper1').classList.add('goodTube_hasChapters'); + if (!document.querySelector('#goodTube_playerWrapper').classList.contains('goodTube_hasChapters')) { + document.querySelector('#goodTube_playerWrapper').classList.add('goodTube_hasChapters'); } // Update the chapters display as we play the video @@ -2721,11 +2658,11 @@ } // Remove interface elements - document.querySelector('#goodTube_player_wrapper1 .vjs-time-control .vjs-duration-display')?.setAttribute('chapter-title', ''); + document.querySelector('#goodTube_playerWrapper .vjs-time-control .vjs-duration-display')?.setAttribute('chapter-title', ''); document.querySelector('.goodTube_chapters')?.remove(); document.querySelector('.goodTube_markers')?.remove(); - if (document.querySelector('#goodTube_player_wrapper1').classList.contains('goodTube_hasChapters')) { - document.querySelector('#goodTube_player_wrapper1').classList.remove('goodTube_hasChapters'); + if (document.querySelector('#goodTube_playerWrapper').classList.contains('goodTube_hasChapters')) { + document.querySelector('#goodTube_playerWrapper').classList.remove('goodTube_hasChapters'); } } @@ -3123,12 +3060,12 @@ // Hide the player function goodTube_player_hide(player) { - goodTube_helper_hideElement(player.closest('#goodTube_player_wrapper1')); + goodTube_helper_hideElement(player.closest('#goodTube_playerWrapper')); } // Show the player function goodTube_player_show(player) { - goodTube_helper_showElement(player.closest('#goodTube_player_wrapper1')); + goodTube_helper_showElement(player.closest('#goodTube_playerWrapper')); } // Add loading state @@ -3254,7 +3191,7 @@ return; } - let goodTube_wrapper = document.querySelector('#goodTube_player_wrapper1'); + let goodTube_wrapper = document.querySelector('#goodTube_playerWrapper'); if (goodTube_player_miniplayer) { goodTube_wrapper.classList.remove('goodTube_miniplayer'); @@ -3986,7 +3923,7 @@ // If we're not seeking if (!goodTube_seeking) { goodTube_bufferCountTimeout = setTimeout(function() { - // And we've had to wait for it to buffer for 3 seconds 3 times, select the next server + // And we've had to wait for it to buffer for at least 1 second 3 times, select the next server goodTube_bufferCount++; if (goodTube_bufferCount >= 3) { @@ -4014,7 +3951,7 @@ return; } - }, 3000); + }, 1000); } // Only do this for HD servers (Invidious and Piped) @@ -4125,7 +4062,7 @@ } // Target the outer wrapper - let goodTube_target = document.querySelector('#goodTube_player_wrapper3'); + let goodTube_target = document.querySelector('#goodTube_playerWrapper'); // If the quality is audio, add the audio style to the player if (newQuality === 'audio') { @@ -4150,7 +4087,7 @@ // Server type 2 (dash) quality stuff else if (goodTube_api_type === 2 || goodTube_api_type === 3) { // Target the outer wrapper - let goodTube_target = document.querySelector('#goodTube_player_wrapper3'); + let goodTube_target = document.querySelector('#goodTube_playerWrapper'); // Remove any audio styles from the player if (goodTube_target.classList.contains('goodTube_audio')) { @@ -4222,10 +4159,6 @@ function goodTube_player_videojs_loadSkin() { let style = document.createElement('style'); style.textContent = ` - #goodTube_player_wrapper1:not(.goodTube_mobile) { - border-radius: 12px; - } - .video-js { overflow: hidden; } @@ -4492,7 +4425,7 @@ } /* Time control */ - html body #goodTube_player_wrapper1 .video-js .vjs-time-control { + html body #goodTube_playerWrapper .video-js .vjs-time-control { font-family: "YouTube Noto", Roboto, Arial, Helvetica, sans-serif !important; order: 4; font-size: 13.0691px !important; @@ -4503,7 +4436,7 @@ z-index: 1; } - html body #goodTube_player_wrapper1 .video-js .vjs-time-control * { + html body #goodTube_playerWrapper .video-js .vjs-time-control * { min-width: 0 !important; } @@ -4519,14 +4452,14 @@ margin-right: 0 !important; } - #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-time-control { + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-time-control { position: absolute; top: calc(100% - 98px); font-weight: 500; pointer-events: none; } - #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-current-time { + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-current-time { color: #ffffff !important; } @@ -4575,21 +4508,30 @@ background: transparent !important; } - .video-js .vjs-control-bar::before { + #goodTube_playerWrapper:not(.goodTube_mobile) .video-js::before { content: ''; position: absolute; left: 0; right: 0; bottom: 0; + height: 25%; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD1CAYAAACRFp+GAAAAAXNSR0IArs4c6QAAASpJREFUOE9lyOlHGAAcxvHuY63Wta3WsdWqdaz7vtfduoyZSBLJmCSSSCaSSBJJJIkk0h+Z7/Pm59Hz4sP3SUh4tUSeIIkMkkmR4qSSIs1JJ4MMUmQ6b0iR5bwlg2xS5DjvSJHr5JFBPikKnEIyeE+KD85HUhQ5xWTwiRQlTikpypxyMvhMii9OBSkqna9kUEWKaqeGDL6RotapI0W900AG30nR6DSRotlpIYNWUrQ57aTocDrJoIsU3U4PKXqdPjLoJ8WAM0gGQ6QYdn6QYsQZJYMxUow7E6SYdKbIYJoUP50ZUsw6c2QwTy7AL/gNf2ARlmAZVmAV1mAd/sI/2IBN2IJt2IFd2IN9+A8HcAhHcAwncApncA4XcAlXcA03cAt3cA8P8AhP8PwCakcyvVVFagcAAAAASUVORK5CYII="); background-size: cover; background-repeat: repeat-x; background-position: bottom; background-size: contain; - height: calc(var(--ytd-watch-flexy-max-player-height) / 2.5); pointer-events: none; + opacity: 0; + transition: opacity .1s linear; } - #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control-bar::before { + + #goodTube_playerWrapper:not(.goodTube_mobile) .video-js.vjs-paused::before, + #goodTube_playerWrapper:not(.goodTube_mobile) .video-js.vjs-user-active::before, + #goodTube_playerWrapper:not(.goodTube_mobile) .video-js:hover::before { + opacity: 1; + } + + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control-bar::before { display: none; content: none; } @@ -4642,12 +4584,12 @@ min-width: 48px !important; } - #goodTube_player_wrapper1:not(goodTube_mobile) .video-js .vjs-control-bar > .vjs-play-control { + #goodTube_playerWrapper:not(goodTube_mobile) .video-js .vjs-control-bar > .vjs-play-control { padding-left: 8px; box-sizing: content-box; } - #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control:not(.vjs-progress-control) { + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control:not(.vjs-progress-control) { min-width: 0 !important; flex-grow: 1 !important; max-width: 9999px !important; @@ -4655,8 +4597,8 @@ padding-right: 0 !important; } - #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control.vjs-volume-panel, - #goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-control.vjs-volume-panel { + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control.vjs-volume-panel, + #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-control.vjs-volume-panel { display: none; } @@ -4699,7 +4641,7 @@ max-height: calc(var(--ytd-watch-flexy-panel-max-height) - 72px) !important; } - #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-menu-content { + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-menu-content { max-height: 156px !important; } @@ -4916,8 +4858,8 @@ z-index: 1; } - #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control-bar button.vjs-menu-button::before, - #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control-bar .vjs-button:not(.vjs-menu-button)::before { + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control-bar button.vjs-menu-button::before, + #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control-bar .vjs-button:not(.vjs-menu-button)::before { display: none !important; content: none !important; } @@ -5444,13 +5386,6 @@ // HD SERVERS // -------------------------------------------------------------------------------- // FAST - { - 'name': 'Phoenix (US)', - 'type': 3, - 'proxy': true, - 'url': 'https://pipedapi.drgns.space' - }, - // FAST { 'name': 'Acid (US)', 'type': 2, @@ -5464,6 +5399,13 @@ 'proxy': true, 'url': 'https://pipedapi.r4fo.com' }, + // FAST + { + 'name': 'Phoenix (US)', + 'type': 3, + 'proxy': true, + 'url': 'https://pipedapi.drgns.space' + }, // // FAST // { // 'name': 'Ra (US)', @@ -6659,7 +6601,7 @@ goodTube_player_loadAssets(); // Init our player - goodTube_player_init(); + document.addEventListener('DOMContentLoaded', goodTube_player_init); // Usage stats goodTube_stats_unique(); diff --git a/goodtube.min.js b/goodtube.min.js index 6e51cf4..304837d 100644 --- a/goodtube.min.js +++ b/goodtube.min.js @@ -1 +1 @@ -!function(){"use strict";let t="https://raw.githubusercontent.com/goodtube4u/GoodTube/main",e=500,o=3,n=!0;function r(){let t={};return document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g,(function(){function e(t){return decodeURIComponent(t.split("+").join(" "))}t[e(arguments[1])]=e(arguments[2])})),t}function a(t,e){document.cookie=t+"="+encodeURIComponent(e)+"; max-age=34473600"}function i(t){let e=document.cookie.split(";");for(let o=0;o{t.closest("#inline-player")||t.closest("#movie_player")||(t.muted=!0,t.volume=0,t.pause())}))}let p=!0,c=0;function m(){let t=document.querySelector("#movie_player video");if(t&<&&void 0!==Mt.v){let e=Ct.currentTime;if(e===c&&parseFloat(e)>0)return;c=e,t.currentTime=e,p=!0,t.play(),t.muted=!0,t.volume=0;let o=document.querySelector("#movie_player");o&&("function"==typeof o.playVideo&&o.playVideo(),"function"==typeof o.mute&&o.mute(),"function"==typeof o.setVolume&&o.setVolume(0)),setTimeout((function(){p=!1}),10)}}let v=[],b=0,y=[t+"/js/assets.min.js",t+"/css/assets.min.css"],g=0,h=0,f=0,_=!1,j=1,T=!1,w=!1,x=!1,k=!1,S=!1,L=!1,A=!1,q=!1,E=!1,C=!1,M=!1;function Q(){let t=!1;if(t=Rt?document.querySelector("body"):document.getElementById("below"),!t||g div {\n\t\t\t\tbackground: transparent !important;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-play-progress {\n\t\t\t\tbackground: transparent;\n\t\t\t\tposition: static;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-play-progress::before {\n\t\t\t\tcontent: '';\n\t\t\t\tbackground: #ff0000;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tposition: static;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1 .vjs-progress-control .vjs-slider .vjs-play-progress::after {\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: block;\n\t\t\t\tfloat: right;\n\t\t\t\tbackground: #ff0000;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\topacity: 0;\n\t\t\t\twidth: 13px;\n\t\t\t\theight: 13px;\n\t\t\t\tright: -7px;\n\t\t\t\ttop: -8px;\n\t\t\t\ttransition: opacity .1s linear, top .1s linear;\n\t\t\t\tposition: relative;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1 .vjs-progress-control:hover .vjs-slider .vjs-play-progress::after {\n\t\t\t\topacity: 1;\n\t\t\t\ttop: -9px;\n\t\t\t}\n\n\n\t\t\t/* Without chapters */\n\t\t\t#goodTube_player_wrapper1:not(.goodTube_hasChapters) .vjs-progress-control::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 3px;\n\t\t\t\tleft: 8px;\n\t\t\t\tright: 8px;\n\t\t\t\theight: 3px;\n\t\t\t\tbackground: rgba(255, 255, 255, .2);\n\t\t\t\ttransition: height .1s linear, bottom .1s linear;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1:not(.goodTube_hasChapters) .vjs-progress-control:hover::before {\n\t\t\t\theight: 5px;\n\t\t\t\tbottom: 2px;\n\t\t\t}\n\n\n\t\t\t/* With chapters */\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 8px;\n\t\t\t\tright: 8px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter {\n\t\t\t\theight: 100%;\n\t\t\t\tposition: absolute;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter::before {\n\t\t\t\tcontent: '';\n\t\t\t\tbackground: rgba(255, 255, 255, .2);\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 2px;\n\t\t\t\tbottom: 3px;\n\t\t\t\theight: 3px;\n\t\t\t\ttransition: height .1s linear, bottom .1s linear, background .1s linear;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter.goodTube_redChapter::before {\n\t\t\t\tbackground: #ff0000 !important;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter:last-child::before {\n\t\t\t\tright: 0;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control:hover .goodTube_chapters .goodTube_chapter::before {\n\t\t\t\theight: 5px;\n\t\t\t\tbottom: 2px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters:not(.goodTube_mobile) .vjs-progress-control .goodTube_chapters .goodTube_chapter:hover::before {\n\t\t\t\theight: 9px;\n\t\t\t\tbottom: 0;\n\t\t\t\tbackground: rgba(255, 255, 255, .4);\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_markers {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_marker {\n\t\t\t\twidth: 2px;\n\t\t\t\theight: 100%;\n\t\t\t\tposition: absolute;\n\t\t\t\tbackground: rgba(0, 0, 0, .2);\n\t\t\t\tmargin-left: -2px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_marker.goodTube_showMarker {\n\t\t\t\tbackground: rgba(0, 0, 0, .6);\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .goodTube_marker:last-child {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1 .vjs-progress-control .vjs-mouse-display {\n\t\t\t\tbackground: transparent;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_hasChapters .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip::before {\n\t\t\t\tcontent: attr(chapter-title);\n\t\t\t\tdisplay: block;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tmargin-bottom: 4px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1 .vjs-progress-control .goodTube_hoverBar {\n\t\t\t\tbackground: rgba(255, 255, 255, .4);\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 3px;\n\t\t\t\tleft: 8px;\n\t\t\t\theight: 3px;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: height .1s linear, bottom .1s linear, opacity .1s linear;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1 .vjs-progress-control:hover .goodTube_hoverBar {\n\t\t\t\theight: 5px;\n\t\t\t\tbottom: 2px;\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .vjs-time-control .vjs-duration-display {\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .vjs-time-control .vjs-duration-display::after {\n\t\t\t\tcontent: attr(chapter-title);\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tmargin-left: 3px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .vjs-progress-control .vjs-slider,\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile:not(.goodTube_hasChapters) .vjs-progress-control::before,\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile.goodTube_hasChapters .vjs-progress-control .goodTube_chapters,\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .vjs-progress-control .goodTube_hoverBar {\n\t\t\t\tleft: 16px;\n\t\t\t\tright: 16px;\n\t\t\t}\n\n\n\t\t\t/* Audio only view */\n\t\t\t#goodTube_player_wrapper3.goodTube_audio {\n\t\t\t\tbackground: #000000;\n\t\t\t\tposition: relative;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper3.goodTube_audio .video-js::after {\n\t\t\t\tcontent: '\\f107';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tfont-family: VideoJS;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-style: normal;\n\t\t\t\tfont-size: 148px;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t@media (max-width: 768px) {\n\t\t\t\t#goodTube_player_wrapper3.goodTube_audio .video-js::after {\n\t\t\t\t\tfont-size: 100px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper3.goodTube_audio .video-js::after {\n\t\t\t\tfont-size: 100px;\n\t\t\t}\n\n\t\t\t/* Double tap or tap and hold elements for seeking on mobile */\n\t\t\t#goodTube_seekBackwards {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tbottom: 48px;\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 25%;\n\t\t\t}\n\n\t\t\t#goodTube_seekForwards {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 48px;\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 25%;\n\t\t\t}\n\n\t\t\t/* Theater mode */\n\t\t\tytd-watch-flexy[theater] #goodTube_player_wrapper1:not(.goodTube_mobile) {\n\t\t\t\twidth: 100%;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 56px;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbackground: #000000;\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\n\t\t\tytd-watch-flexy:not(ytd-watch-flexy[theater]) #below,\n\t\t\tytd-watch-flexy:not(ytd-watch-flexy[theater]) #secondary {\n\t\t\t\tmargin-top: 0 !important;\n\t\t\t}\n\n\t\t\tytd-watch-flexy[theater] #below {\n\t\t\t\tpadding-top: 8px !important;\n\t\t\t}\n\n\t\t\tytd-watch-flexy[theater] #secondary {\n\t\t\t\tpadding-top: 16px !important;\n\t\t\t}\n\n\t\t\tytd-watch-flexy[theater] #goodTube_player_wrapper1:not(.goodTube_mobile) {\n\t\t\t\tpadding-top: min(var(--ytd-watch-flexy-max-player-height), (calc(var(--ytd-watch-flexy-height-ratio) / var(--ytd-watch-flexy-width-ratio) * 100%))) !important;\n\t\t\t}\n\n\t\t\tytd-watch-flexy[theater] #goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper3,\n\t\t\tytd-watch-flexy[theater] #goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper3 #goodTube_player {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\n\t\t\t/* Desktop */\n\t\t\t#goodTube_player_wrapper1:not(.goodTube_mobile) {\n\t\t\t\tposition: relative;\n\t\t\t\theight: 0;\n\t\t\t\tpadding-top: min(var(--ytd-watch-flexy-max-player-height), (calc(var(--ytd-watch-flexy-height-ratio) / var(--ytd-watch-flexy-width-ratio) * 100%))) !important;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tmin-height: var(--ytd-watch-flexy-min-player-height);\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper2 {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tmargin: 0 auto;\n\t\t\t\tmin-height: 240px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper3 {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tmin-height: 240px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1:not(.goodTube_mobile):not(.goodTube_miniplayer) #goodTube_player {\n\t\t\t\tborder-radius: 12px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer.goodTube_mobile {\n\t\t\t\tposition: absolute !important;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper3 {\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1:not(.goodTube_mobile) #goodTube_player_wrapper3 {\n\t\t\t\tborder-radius: 12px;\n\t\t\t}\n\n\t\t\t/* Miniplayer */\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer {\n\t\t\t\tz-index: 999 !important;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js {\n\t\t\t\tposition: fixed;\n\t\t\t\tbottom: 12px;\n\t\t\t\tright: 12px;\n\t\t\t\twidth: 400px;\n\t\t\t\tmax-width: calc(100% - 24px);\n\t\t\t\tmin-height: 0;\n\t\t\t\tpadding-top: 0;\n\t\t\t\tz-index: 999;\n\t\t\t\theight: auto;\n\t\t\t\tleft: auto;\n\t\t\t\taspect-ratio: 16 / 9;\n\t\t\t\ttop: auto;\n\t\t\t\tborder-radius: 12px;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer.goodTube_mobile #goodTube_player_wrapper3 .video-js {\n\t\t\t\tbottom: 60px;\n\t\t\t}\n\n\t\t\tytd-watch-flexy.goodTube_miniplayer {\n\t\t\t\tdisplay: block !important;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tposition: fixed;\n\t\t\t\tz-index: 999;\n\t\t\t\ttop: -9999px;\n\t\t\t\tleft: -9999px;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-source-button,\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-autoplay-button,\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-miniplayer-button,\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-theater-button {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton {\n\t\t\t\tfont-family: VideoJS;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-style: normal;\n\t\t\t\tcursor: pointer;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\twidth: 48px;\n\t\t\t\theight: 48px;\n\t\t\t\tline-height: 48px;\n\t\t\t\ttext-align: center;\n\t\t\t\tz-index: 999;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .2s linear;\n\t\t\t}\n\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::after {\n\t\t\t\tcontent: 'Close';\n\t\t\t\tright: 12px;\n\t\t\t}\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::after {\n\t\t\t\tcontent: 'Expand';\n\t\t\t\tleft: 12px;\n\t\t\t}\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::after,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::after {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: -24px;\n\t\t\t\tbackground: rgba(0, 0, 0, .75);\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tfont-weight: 700;\n\t\t\t\tpadding: 8px;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .1s;\n\t\t\t\tpointer-events: none;\n\t\t\t\ttext-shadow: none !important;\n\t\t\t\tz-index: 1;\n\t\t\t\tfont-family: 'MS Shell Dlg 2', sans-serif;\n\t\t\t\tline-height: initial;\n\t\t\t}\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton:hover::after,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton:hover::after {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton {\n\t\t\t\tright: 0;\n\t\t\t\tfont-size: 24px;\n\t\t\t}\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::before {\n\t\t\t\tcontent: \"\\f119\";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton {\n\t\t\t\tleft: 0;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::before {\n\t\t\t\tcontent: \"\\f128\";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t}\n\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-paused:not(.vjs-user-inactive) #goodTube_miniplayer_expandButton,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-user-active #goodTube_miniplayer_expandButton,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-paused:not(.vjs-user-inactive) #goodTube_miniplayer_closeButton,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-user-active #goodTube_miniplayer_closeButton {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\t/* Mobile */\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile {\n\t\t\t\tposition: fixed;\n\t\t\t\ttop: 48px;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper2 {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper3 {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control.vjs-play-control,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-control.vjs-play-control {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc(50% - 48px);\n\t\t\t\tleft: calc(50% - 32px);\n\t\t\t\twidth: 64px;\n\t\t\t\theight: 64px;\n\t\t\t\tbackground: rgba(0, 0, 0, .3);\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tmax-width: 999px !important;\n\t\t\t}\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-play-control .vjs-icon-placeholder::before,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-play-control .vjs-icon-placeholder::before {\n\t\t\t\tfont-size: 44px !important;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-prev-button,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-prev-button {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc(50% - 40px);\n\t\t\t\tleft: calc(50% - 104px);\n\t\t\t\twidth: 48px;\n\t\t\t\theight: 48px;\n\t\t\t\tbackground: rgba(0, 0, 0, .3);\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tmax-width: 999px !important;\n\t\t\t}\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-prev-button .vjs-icon-placeholder::before,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-prev-button .vjs-icon-placeholder::before {\n\t\t\t\tfont-size: 32px !important;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-next-button,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-next-button {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc(50% - 40px);\n\t\t\t\tleft: calc(50% + 56px);\n\t\t\t\twidth: 48px;\n\t\t\t\theight: 48px;\n\t\t\t\tbackground: rgba(0, 0, 0, .3);\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tmax-width: 999px !important;\n\t\t\t}\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-next-button .vjs-icon-placeholder::before,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-next-button .vjs-icon-placeholder::before {\n\t\t\t\tfont-size: 32px !important;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control-bar,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-control-bar {\n\t\t\t\tz-index: 1;\n\t\t\t\tposition: static;\n\t\t\t\tmargin-top: auto;\n\t\t\t\tjustify-content: space-around;\n\t\t\t}\n\n\t\t\tytd-watch-flexy:not([theater]) #primary {\n\t\t\t\tmin-width: 721px !important;\n\t\t\t}\n\n\t\t\t@media (max-width: 1100px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #primary {\n\t\t\t\t\tmin-width: 636px !important;\n\t\t\t\t}\n\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: .88;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 1016px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #primary {\n\t\t\t\t\tmin-width: 0 !important;\n\t\t\t\t}\n\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 786px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: .9;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 715px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: .85;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 680px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_player_wrapper1:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: .8;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js {\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-source-button,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-source-button {\n\t\t\t\tmargin-left: 0 !important;\n\t\t\t}\n\n\t\t\t@media (max-width: 480px) {\n\t\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-source-button .vjs-menu,\n\t\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-source-button .vjs-menu {\n\t\t\t\t\tleft: 60px !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-loading-spinner,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js .vjs-loading-spinner {\n\t\t\t\ttop: calc(50% - 16px);\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1 .video-js.vjs-loading {\n\t\t\t\tbackground: #000000;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js::before,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js::before {\n\t\t\t\tcontent: '';\n\t\t\t\tbackground: transparent;\n\t\t\t\ttransition: background .2s ease-in-out;\n\t\t\t\tpointer-events: none;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js.vjs-paused::before,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-paused::before,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js.vjs-user-active::before,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-user-active::before {\n\t\t\t\tbackground: rgba(0,0,0,.6);\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_mobile .video-js.vjs-user-inactive:not(.vjs-paused) .vjs-control-bar,\n\t\t\thtml body #goodTube_player_wrapper1.goodTube_miniplayer .video-js.vjs-user-inactive:not(.vjs-paused) .vjs-control-bar {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper3 .video-js .vjs-theater-button,\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile #goodTube_player_wrapper3 .video-js .vjs-miniplayer-button {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t/* Video */\n\t\t\t#goodTube_player {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: transparent;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile #goodTube_player,\n\t\t\t#goodTube_player.vjs-loading {\n\t\t\t\tbackground: #000000;\n\t\t\t}\n\n\t\t\t#goodTube_player:focus {\n\t\t\t\toutline: 0;\n\t\t\t}\n\n\t\t\t/* Error */\n\t\t\t#goodTube_error {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 40px;\n\t\t\t\tright: 40px;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\ttext-align: center;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tfont-size: 20px;\n\t\t\t\tpadding: 16px;\n\t\t\t\tbackground: #000000;\n\t\t\t\tborder-radius: 8px;\n\t\t\t}\n\n\t\t\t#goodTube_error small {\n\t\t\t\tpadding-top: 8px;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t",document.head.appendChild(l);let s=document.createElement("div");s.id="goodTube_player_wrapper1";let d=document.createElement("div");d.id="goodTube_player_wrapper2";let u=document.createElement("div");u.id="goodTube_player_wrapper3",Rt?(s.classList.add("goodTube_mobile"),t.appendChild(s),setInterval((function(){window.requestAnimationFrame((function(){if(void 0!==Mt.v){let t=document.querySelector(".player-size.player-placeholder");t&&(t.offsetHeight>0?(s.style.height=t.offsetHeight+"px",s.style.width=t.offsetWidth+"px"):(t=document.querySelector("#player"),t.offsetHeight>0&&(s.style.height=t.offsetHeight+"px",s.style.width=t.offsetWidth+"px")));let e=document.querySelector(".player-container.sticky-player");s.style.position=e?"fixed":"absolute"}else s.style.height="0",s.style.width="0"}))}),1)):(t.before(s),setInterval((function(){document.querySelectorAll("ytd-watch-flexy[theater] #below, ytd-watch-flexy[theater] #secondary").forEach((t=>{t.style.marginTop=s.offsetHeight+"px"}))}),1)),s.appendChild(d),d.appendChild(u);let p=document.createElement("video");p.id="goodTube_player",p.classList.add("video-js"),p.controls=!0,p.setAttribute("tab-index","1"),u.appendChild(p),Ct=p,addEventListener("leavepictureinpicture",(t=>{void 0===Mt.v&&D(Ct),w=!1})),addEventListener("enterpictureinpicture",(t=>{w=!0})),function(){n&&console.log("[GoodTube] Loading player...");(function(){let t=document.createElement("style");t.textContent="\n\t\t\t#goodTube_player_wrapper1:not(.goodTube_mobile) {\n\t\t\t\tborder-radius: 12px;\n\t\t\t}\n\n\t\t\t.video-js {\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t.video-js *:focus {\n\t\t\t\toutline-color: transparent;\n\t\t\t\toutline-style: none;\n\t\t\t}\n\n\t\t\t.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {\n\t\t\t\ttransition: visibility .25s, opacity .25s !important;\n\t\t\t}\n\n\t\t\t.vjs-menu .vjs-menu-item-text {\n\t\t\t\ttext-transform: none !important;\n\t\t\t}\n\n\t\t\t.vjs-menu .vjs-menu-item-text:first-letter {\n\t\t\t\ttext-transform: uppercase !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-source-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-autoplay-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-quality-selector .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-prev-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-next-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-miniplayer-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-theater-button .vjs-icon-placeholder {\n\t\t\t\tfont-family: VideoJS;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-style: normal;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > button {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.video-js .vjs-prev-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f124\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-next-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f123\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f110\";\n\t\t\t}\n\n\n\n\t\t\t// Loading indicator for downloads\n\t\t\t.video-js .vjs-download-button {\n\t\t\t\tposition: relative;\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button .goodTube_spinner {\n\t\t\t\topacity: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t\ttransition: opacity .4s linear;\n\t\t\t}\n\t\t\t.video-js .vjs-download-button.goodTube_loading .goodTube_spinner {\n\t\t\t\topacity: 1;\n\t\t\t\ttransition: opacity .2s .2s linear;\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button .vjs-icon-placeholder:before {\n\t\t\t\topacity: 1;\n\t\t\t\ttransition: opacity .2s .2s linear;\n\t\t\t}\n\t\t\t.video-js .vjs-download-button.goodTube_loading .vjs-icon-placeholder:before {\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .2s linear;\n\t\t\t}\n\n\t\t\t.goodTube_spinner {\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t.goodTube_spinner,\n\t\t\t.goodTube_spinner div {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\t.goodTube_spinner {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 36px;\n\t\t\t\theight: 36px;\n\t\t\t}\n\t\t\t.goodTube_spinner div {\n\t\t\t\tposition: absolute;\n\t\t\t\tborder: 2px solid currentColor;\n\t\t\t\topacity: 1;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tanimation: goodTube_spinner 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\n\t\t\t}\n\t\t\t.goodTube_spinner div:nth-child(2) {\n\t\t\t\tanimation-delay: -0.5s;\n\t\t\t}\n\t\t\t@keyframes goodTube_spinner {\n\t\t\t\t0% {\n\t\t\t\t\ttop: 16px;\n\t\t\t\t\tleft: 16px;\n\t\t\t\t\twidth: 4px;\n\t\t\t\t\theight: 4px;\n\t\t\t\t\topacity: .5;\n\t\t\t\t}\n\t\t\t\t4.9% {\n\t\t\t\t\ttop: 16px;\n\t\t\t\t\tleft: 16px;\n\t\t\t\t\twidth: 4px;\n\t\t\t\t\theight: 4px;\n\t\t\t\t\topacity: .5;\n\t\t\t\t}\n\t\t\t\t5% {\n\t\t\t\t\ttop: 16px;\n\t\t\t\t\tleft: 16px;\n\t\t\t\t\twidth: 4px;\n\t\t\t\t\theight: 4px;\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\t\t\t\t100% {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\twidth: 36px;\n\t\t\t\t\theight: 36px;\n\t\t\t\t\topacity: 0;\n\t\t\t\t}\n\t\t\t}\n\n\n\n\t\t\t.video-js .vjs-source-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f10e\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-autoplay-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f102\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-quality-selector .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f114\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-source-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f10e\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-miniplayer-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f127\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-theater-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f115\";\n\t\t\t}\n\n\t\t\t/* Youtube player style */\n\t\t\t.vjs-slider-horizontal .vjs-volume-level:before {\n\t\t\t\tfont-size: 14px !important;\n\t\t\t}\n\n\t\t\t.vjs-volume-control {\n\t\t\t\twidth: auto !important;\n\t\t\t\tmargin-right: 0 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel.vjs-volume-panel-horizontal {\n\t\t\t\ttransition: width .25s !important;\n\t\t\t\tz-index: 999;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {\n\t\t\t\ttransition: opacity .25s, width 1s !important;\n\t\t\t\tmin-width: 0 !important;\n\t\t\t\tpadding-right: 8px !important;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel {\n\t\t\t\tmargin-right: 6px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel.vjs-hover,\n\t\t\t.video-js .vjs-volume-panel.vjs-slider-active {\n\t\t\t\tmargin-right: 16px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal {\n\t\t\t\tpointer-events: all;\n\t\t\t}\n\n\t\t\t.vjs-volume-bar.vjs-slider-horizontal {\n\t\t\t\tmin-width: 52px !important;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-control-bar > .vjs-spacer {\n\t\t\t\tflex: 1;\n\t\t\t\torder: 2;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-play-progress .vjs-time-tooltip {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-play-progress::before {\n\t\t\t\tcolor: red;\n\t\t\t\tfont-size: 0.85em;\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-progress-holder:hover .vjs-play-progress::before {\n\t\t\t\tdisplay: unset;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-control-bar {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: row;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-big-play-button {\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\tmargin-top: -0.81666em;\n\t\t\t\tmargin-left: -1.5em;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-menu-button-popup .vjs-menu {\n\t\t\t\tmargin-bottom: 2em;\n\t\t\t}\n\n\t\t\t.video-js ul.vjs-menu-content::-webkit-scrollbar {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-user-inactive:not(.vjs-paused) {\n\t\t\t\tcursor: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-text-track-display > div > div > div {\n\t\t\t\tborder-radius: 0 !important;\n\t\t\t\tpadding: 4px 8px !important;\n\t\t\t\tline-height: calc(1.2em + 7px) !important;\n\t\t\t\twhite-space: break-spaces !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-play-control {\n\t\t\t\torder: 0;\n\t\t\t}\n\n\t\t\t.video-js .vjs-prev-button {\n\t\t\t\torder: 1;\n\t\t\t}\n\n\t\t\t.video-js .vjs-next-button {\n\t\t\t\torder: 2;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel {\n\t\t\t\torder: 3;\n\t\t\t}\n\n\t\t\t/* Time control */\n\t\t\thtml body #goodTube_player_wrapper1 .video-js .vjs-time-control {\n\t\t\t\tfont-family: \"YouTube Noto\", Roboto, Arial, Helvetica, sans-serif !important;\n\t\t\t\torder: 4;\n\t\t\t\tfont-size: 13.0691px !important;\n\t\t\t\tpadding-top: 4px !important;\n\t\t\t\tcolor: rgb(221, 221, 221) !important;\n\t\t\t\ttext-shadow: 0 0 2px rgba(0, 0, 0, .5) !important;\n\t\t\t\tmin-width: 0 !important;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\thtml body #goodTube_player_wrapper1 .video-js .vjs-time-control * {\n\t\t\t\tmin-width: 0 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-current-time {\n\t\t\t\tpadding-right: 4px !important;\n\t\t\t\tpadding-left: 0 !important;\n\t\t\t\tmargin-left: 0 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-duration {\n\t\t\t\tpadding-left: 4px !important;\n\t\t\t\tpadding-right: 5px !important;\n\t\t\t\tmargin-right: 0 !important;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-time-control {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc(100% - 98px);\n\t\t\t\tfont-weight: 500;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-current-time {\n\t\t\t\tcolor: #ffffff !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-source-button {\n\t\t\t\tmargin-left: auto !important;\n\t\t\t\torder: 5;\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button {\n\t\t\t\torder: 6;\n\t\t\t}\n\n\t\t\t.video-js .vjs-autoplay-button {\n\t\t\t\torder: 7;\n\t\t\t}\n\n\t\t\t.video-js .vjs-playback-rate {\n\t\t\t\torder: 8;\n\t\t\t}\n\n\t\t\t.video-js .vjs-subs-caps-button {\n\t\t\t\torder: 9;\n\t\t\t}\n\n\t\t\t.video-js .vjs-quality-selector {\n\t\t\t\torder: 10;\n\t\t\t}\n\n\t\t\t.video-js .vjs-miniplayer-button {\n\t\t\t\torder: 11;\n\t\t\t}\n\n\t\t\t.video-js .vjs-theater-button {\n\t\t\t\torder: 12;\n\t\t\t}\n\n\t\t\t.video-js .vjs-fullscreen-control {\n\t\t\t\torder: 13;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: row;\n\t\t\t\tscrollbar-width: none;\n\t\t\t\theight: 48px !important;\n\t\t\t\tbackground: transparent !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tbackground: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD1CAYAAACRFp+GAAAAAXNSR0IArs4c6QAAASpJREFUOE9lyOlHGAAcxvHuY63Wta3WsdWqdaz7vtfduoyZSBLJmCSSSCaSSBJJJIkk0h+Z7/Pm59Hz4sP3SUh4tUSeIIkMkkmR4qSSIs1JJ4MMUmQ6b0iR5bwlg2xS5DjvSJHr5JFBPikKnEIyeE+KD85HUhQ5xWTwiRQlTikpypxyMvhMii9OBSkqna9kUEWKaqeGDL6RotapI0W900AG30nR6DSRotlpIYNWUrQ57aTocDrJoIsU3U4PKXqdPjLoJ8WAM0gGQ6QYdn6QYsQZJYMxUow7E6SYdKbIYJoUP50ZUsw6c2QwTy7AL/gNf2ARlmAZVmAV1mAd/sI/2IBN2IJt2IFd2IN9+A8HcAhHcAwncApncA4XcAlXcA03cAt3cA8P8AhP8PwCakcyvVVFagcAAAAASUVORK5CYII=\");\n\t\t\t\tbackground-size: cover;\n\t\t\t\tbackground-repeat: repeat-x;\n\t\t\t\tbackground-position: bottom;\n\t\t\t\tbackground-size: contain;\n\t\t\t\theight: calc(var(--ytd-watch-flexy-max-player-height) / 2.5);\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control-bar::before {\n\t\t\t\tdisplay: none;\n\t\t\t\tcontent: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu .vjs-icon-placeholder {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu .vjs-menu-content > * {\n\t\t\t\tpadding-top: 8px !important;\n\t\t\t\tpadding-bottom: 8px !important;\n\t\t\t\tpadding-left: 12px !important;\n\t\t\t\tpadding-right: 12px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu {\n\t\t\t\theight: auto !important;\n\t\t\t\tbottom: 48px !important;\n\t\t\t\tpadding-bottom: 0 !important;\n\t\t\t\tmargin-bottom: 0 !important;\n\t\t\t\twidth: auto !important;\n\t\t\t\ttransform: translateX(-50%) !important;\n\t\t\t\tleft: 50% !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu .vjs-menu-content {\n\t\t\t\tposition: static !important;\n\t\t\t\tborder-radius: 4px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-control {\n\t\t\t\theight: 100% !important;\n\t\t\t\tdisplay: flex !important;\n\t\t\t\talign-items: center !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-vtt-thumbnail-display {\n\t\t\t\tbottom: calc(100% + 35px) !important;\n\t\t\t\tborder-radius: 12px !important;\n\t\t\t\toverflow: hidden !important;\n\t\t\t\tborder: 2px solid #ffffff !important;\n\t\t\t\tbackground-color: #000000 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar .vjs-icon-placeholder {\n\t\t\t\theight: 100%;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control {\n\t\t\t\tmin-width: 48px !important;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1:not(goodTube_mobile) .video-js .vjs-control-bar > .vjs-play-control {\n\t\t\t\tpadding-left: 8px;\n\t\t\t\tbox-sizing: content-box;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control:not(.vjs-progress-control) {\n\t\t\t\tmin-width: 0 !important;\n\t\t\t\tflex-grow: 1 !important;\n\t\t\t\tmax-width: 9999px !important;\n\t\t\t\tpadding-left: 0 !important;\n\t\t\t\tpadding-right: 0 !important;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control.vjs-volume-panel,\n\t\t\t#goodTube_player_wrapper1.goodTube_miniplayer #goodTube_player_wrapper3 .video-js .vjs-control.vjs-volume-panel {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar .vjs-icon-placeholder::before {\n\t\t\t\theight: auto;\n\t\t\t\ttop: 50%;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tfont-size: 24px;\n\t\t\t\tline-height: 100%;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar *:not(.vjs-time-control) {\n\t\t\t\ttext-shadow: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-vtt-thumbnail-time {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-playback-rate .vjs-playback-rate-value {\n\t\t\t\tline-height: 48px;\n\t\t\t\tfont-size: 14px !important;\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\n\t\t\t.video-js .vjs-play-progress .vjs-time-tooltip {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-mouse-display .vjs-time-tooltip {\n\t\t\t\tbackground: none !important;\n\t\t\t\tfont-size: 12px !important;\n\t\t\t\ttop: -50px !important;\n\t\t\t\ttext-shadow: 0 0 10px rgba(0, 0, 0, .5) !important;\n\t\t\t\tfont-family: \"YouTube Noto\", Roboto, Arial, Helvetica, sans-serif !important;\n\t\t\t\tfont-weight: 500 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu-content {\n\t\t\t\tmax-height: calc(var(--ytd-watch-flexy-panel-max-height) - 72px) !important;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-menu-content {\n\t\t\t\tmax-height: 156px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar::-webkit-scrollbar {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-icon-cog {\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar,\n\t\t\t.video-js .vjs-menu-button-popup .vjs-menu .vjs-menu-content {\n\t\t\t\tbackground-color: rgba(35, 35, 35, 0.75);\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li.vjs-menu-item:not(.vjs-selected) {\n\t\t\t\tbackground-color: transparent !important;\n\t\t\t\tcolor: #ffffff !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li.vjs-menu-item:not(.vjs-selected):hover {\n\t\t\t\tbackground-color: rgba(255, 255, 255, 0.75) !important;\n\t\t\t\tcolor: rgba(49, 49, 51, 0.75) !important;\n\t\t\t\tcolor: #ffffff !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li.vjs-selected,\n\t\t\t.video-js .vjs-menu li.vjs-selected:hover {\n\t\t\t\tbackground-color: #ffffff !important;\n\t\t\t\tcolor: #000000 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li {\n\t\t\t\twhite-space: nowrap !important;\n\t\t\t\tfont-size: 12px !important;\n\t\t\t\tfont-weight: 700 !important;\n\t\t\t\tmax-width: 9999px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-subs-caps-button .vjs-menu li {\n\t\t\t\twhite-space: normal !important;\n\t\t\t\tmin-width: 128px !important;\n\t\t\t}\n\n\t\t\t/* Progress Bar */\n\t\t\t.video-js .vjs-slider {\n\t\t\t\tbackground-color: rgba(15, 15, 15, 0.5);\n\t\t\t}\n\n\t\t\t.video-js .vjs-load-progress,\n\t\t\t.video-js .vjs-load-progress div {\n\t\t\t\tbackground: rgba(87, 87, 88, 1);\n\t\t\t}\n\n\t\t\t.video-js .vjs-slider:hover,\n\t\t\t.video-js button:hover {\n\t\t\t\tcolor: #ffffff;\n\t\t\t}\n\n\t\t\t/* Overlay */\n\t\t\t.video-js .vjs-overlay {\n\t\t\t\tbackground-color: rgba(35, 35, 35, 0.75) !important;\n\t\t\t}\n\t\t\t.video-js .vjs-overlay * {\n\t\t\t\tcolor: rgba(255, 255, 255, 1) !important;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\n\t\t\t/* ProgressBar marker */\n\t\t\t.video-js .vjs-marker {\n\t\t\t\tbackground-color: rgba(255, 255, 255, 1);\n\t\t\t\tz-index: 0;\n\t\t\t}\n\n\t\t\t/* Big \"Play\" Button */\n\t\t\t.video-js .vjs-big-play-button {\n\t\t\t\tbackground-color: rgba(35, 35, 35, 0.5);\n\t\t\t}\n\n\t\t\t.video-js:hover .vjs-big-play-button {\n\t\t\t\tbackground-color: rgba(35, 35, 35, 0.75);\n\t\t\t}\n\n\t\t\t.video-js .vjs-current-time,\n\t\t\t.video-js .vjs-time-divider,\n\t\t\t.video-js .vjs-duration {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.video-js .vjs-time-divider {\n\t\t\t\tmin-width: 0px;\n\t\t\t\tpadding-left: 0px;\n\t\t\t\tpadding-right: 0px;\n\t\t\t}\n\n\t\t\t.video-js .vjs-poster {\n\t\t\t\tbackground-size: cover;\n\t\t\t\tobject-fit: cover;\n\t\t\t}\n\n\t\t\t.video-js .player-dimensions.vjs-fluid {\n\t\t\t\tpadding-top: 82vh;\n\t\t\t}\n\n\t\t\tvideo.video-js {\n\t\t\t\tposition: absolute;\n\t\t\t\theight: 100%;\n\t\t\t}\n\n\t\t\t.video-js .mobile-operations-bar {\n\t\t\t\tdisplay: flex;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 1px !important;\n\t\t\t\tleft: initial !important;\n\t\t\t\twidth: initial !important;\n\t\t\t}\n\n\t\t\t.video-js .mobile-operations-bar ul {\n\t\t\t\tposition: absolute !important;\n\t\t\t\tbottom: unset !important;\n\t\t\t\ttop: 1.5em;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu-button-popup .vjs-menu {\n\t\t\t\tborder: 0 !important;\n\t\t\t\tpadding-bottom: 12px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li.vjs-menu-item:not(.vjs-selected):hover,\n\t\t\t.video-js .vjs-menu li.vjs-menu-item.vjs-auto-selected {\n\t\t\t\tbackground-color: rgba(255, 255, 255, .2) !important;\n\t\t\t\tcolor: #ffffff !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu * {\n\t\t\t\tborder: 0 !important;\n\t\t\t}\n\n\t\t\t/* Tooltips\n\t\t\t------------------------------------------------------------------------------------------ */\n\t\t\t.video-js .vjs-control-bar > .vjs-prev-button::before {\n\t\t\t\tcontent: 'Previous video';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-next-button::before {\n\t\t\t\tcontent: 'Next video';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar .vjs-mute-control:not(.vjs-vol-0)::before {\n\t\t\t\tcontent: 'Mute (m)';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar .vjs-mute-control.vjs-vol-0::before {\n\t\t\t\tcontent: 'Unmute (m)';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-playback-rate > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Playback speed';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-subs-caps-button > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Subtitles';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-quality-selector > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Quality';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-download-button > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Download';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-autoplay-button > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Autoplay';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-source-button > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Video source';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-miniplayer-button::before {\n\t\t\t\tcontent: 'Miniplayer (i)';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-theater-button::before {\n\t\t\t\tcontent: 'Theater mode (t)';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-fullscreen-control::before {\n\t\t\t\tcontent: 'Fullscreen (f)';\n\t\t\t\tleft: auto !important;\n\t\t\t\tright: 12px !important;\n\t\t\t\ttransform: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar button.vjs-menu-button::before,\n\t\t\t.video-js .vjs-control-bar .vjs-button:not(.vjs-menu-button)::before {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: -40px;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tbackground: rgba(0, 0, 0, .75);\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tfont-weight: 600;\n\t\t\t\tpadding: 8px;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .1s;\n\t\t\t\tpointer-events: none;\n\t\t\t\ttext-shadow: none !important;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control-bar button.vjs-menu-button::before,\n\t\t\t#goodTube_player_wrapper1.goodTube_mobile .video-js .vjs-control-bar .vjs-button:not(.vjs-menu-button)::before {\n\t\t\t\tdisplay: none !important;\n\t\t\t\tcontent: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar div.vjs-menu-button:not(.vjs-menuOpen) button.vjs-menu-button:hover::before,\n\t\t\t.video-js .vjs-control-bar .vjs-button:not(.vjs-menu-button):hover::before {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\t.video-js div.vjs-menu-button:not(.vjs-menuOpen) .vjs-menu {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js div.vjs-menu-button.vjs-menuOpen .vjs-menu {\n\t\t\t\tdisplay: block !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu {\n\t\t\t\tz-index: 999 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-big-play-button {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel,\n\t\t\t.video-js .vjs-button {\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t.video-js .vjs-button.vjs-menuOpen {\n\t\t\t\tz-index: 999;\n\t\t\t}\n\n\t\t\t.video-js .vjs-error-display .vjs-modal-dialog-content {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js:not(.vjs-has-started) .vjs-control-bar {\n\t\t\t\tdisplay: flex !important;\n\t\t\t}\n\n\t\t\t.vjs-track-settings-controls button:hover {\n\t\t\t\tcolor: #000000 !important;\n\t\t\t}\n\t\t",document.body.appendChild(t)})(),Mt=r();const t=videojs.getComponent("MenuItem"),l=videojs.getComponent("MenuButton");class s extends l{createItems(){const e=[],{myItems:o}=this.options_;return Array.isArray(o),o.forEach((({clickHandler:o,...n})=>{const r=new t(this.player(),n);o&&(r.handleClick=o),e.push(r)})),e}buildCSSClass(){return`${super.buildCSSClass()}`}}videojs.registerComponent("DownloadButton",s),videojs.registerComponent("SourceButton",s),videojs.registerComponent("AutoplayButton",s);const d=videojs.getComponent("Button");class u extends d{handleClick(t){t.stopImmediatePropagation(),Wt()}}videojs.registerComponent("PrevButton",u);class p extends d{handleClick(t){t.stopImmediatePropagation(),Yt(!0)}}videojs.registerComponent("NextButton",p);class c extends d{handleClick(t){t.stopImmediatePropagation(),at()}}videojs.registerComponent("MiniplayerButton",c);class y extends d{handleClick(t){t.stopImmediatePropagation(),function(t){let e=!1,o=!1,n=!1;if("next"===t)e="n",o=78,n=!0;else if("prev"===t)e="p",o=80,n=!0;else if("theater"===t){e="t",o=84,n=!1;let t=document.querySelector(".ytp-size-button");if(t)return void t.click()}else{if("fullscreen"!==t)return;e="f",o=70,n=!1}let r=!1;r=new window.KeyboardEvent("focus",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("keydown",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("beforeinput",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("keypress",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("input",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("change",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("keyup",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r)}("theater")}}videojs.registerComponent("TheaterButton",y);let g=[];Ft.forEach((t=>{g.push({label:t.name,clickHandler(t){t.target.closest(".vjs-menu").querySelectorAll(".vjs-selected").forEach((t=>{t.classList.remove("vjs-selected")}));let e=t.target.closest(".vjs-menu-item");e.classList.add("vjs-selected"),"automatic"===e.getAttribute("api")&&(O=0),Ct.currentTime>0&&(b=Ct.currentTime),B(e.getAttribute("api"),!0)}})})),it=videojs("goodTube_player",{inactivityTimeout:3e3,controls:!0,autoplay:!1,preload:"auto",width:"100%",height:"100%",playbackRates:[.25,.5,1,1.25,1.5,1.75,2],userActions:{doubleClick:!1},html5:{vhs:{overrideNative:!0},hls:{overrideNative:!0}},controlBar:{children:["playToggle","volumePanel","currentTimeDisplay","timeDivider","durationDisplay","progressControl","playbackRateMenuButton","subsCapsButton","qualitySelector","fullscreenToggle"],NextButton:{className:"vjs-next-button"},PrevButton:{className:"vjs-prev-button"},AutoplayButton:{controlText:"Autoplay",className:"vjs-autoplay-button",myItems:[{label:"Autoplay off",clickHandler(){let t=event.target.closest(".vjs-menu");t.querySelector(".vjs-selected")?.classList.remove("vjs-selected"),event.target.closest(".vjs-menu-item").classList.add("vjs-selected"),a("goodTube_autoplay","off")}},{label:"Autoplay on",clickHandler(){let t=event.target.closest(".vjs-menu");t.querySelector(".vjs-selected")?.classList.remove("vjs-selected"),event.target.closest(".vjs-menu-item").classList.add("vjs-selected"),a("goodTube_autoplay","on")}}]},SourceButton:{controlText:"Video source",className:"vjs-source-button",myItems:g},DownloadButton:{controlText:"Download",className:"vjs-download-button",myItems:[{className:"goodTube_downloadPlaylist_cancel",label:"CANCEL ALL DOWNLOADS",clickHandler(){!function(){if(!confirm("Are you sure you want to cancel all downloads?"))return;zt=[];for(let t in Qt)clearTimeout(Qt[t]),delete Qt[t];St(!0),n&&console.log("[GoodTube] Downloads cancelled")}()}},{label:"Download video",clickHandler(){zt[Mt.v]=!0,Xt(0,"video",Mt.v)}},{label:"Download audio",clickHandler(){zt[Mt.v]=!0,Xt(0,"audio",Mt.v)}},{className:"goodTube_downloadPlaylist_video",label:"Download playlist (video)",clickHandler(){Zt("video")}},{className:"goodTube_downloadPlaylist_audio",label:"Download playlist (audio)",clickHandler(){Zt("audio")}}]},MiniplayerButton:{className:"vjs-miniplayer-button"},TheaterButton:{className:"vjs-theater-button"}}}),videojs.log.level("off"),videojs.hook("error",(function(){void 0!==v.reloadVideo&&clearTimeout(v.reloadVideo),v.reloadVideo=setTimeout((function(){!function(t){if(void 0===Mt.v)return;void 0!==v.reloadVideo&&clearTimeout(v.reloadVideo);if(j>o)return void xt();let e=t.src;tt(t),setTimeout((function(){t.setAttribute("src",e)}),0),j++}(Ct)}),e),et(),wt()})),it.on("ready",(function(){lt=!0;let t=document.querySelector("#goodTube_player video");t&&(t.setAttribute("playsinline",""),t.setAttribute("webkit-playsinline","")),m(),bt=it.hlsQualitySelector();let e=document.querySelector("#goodTube_player");if(e){let t=document.createElement("div");t.id="goodTube_miniplayer_closeButton",t.onclick=function(){at()},e.appendChild(t);let o=document.createElement("div");o.id="goodTube_miniplayer_expandButton",o.onclick=function(){k!==Mt.v?window.location.href="/watch?v="+k+"&t="+parseFloat(Ct.currentTime).toFixed(0)+"s":at()},e.appendChild(o)}if(n&&console.log("[GoodTube] Player loaded"),Ct=document.querySelector("#goodTube_player video"),Rt){let t=document.createElement("div");t.id="goodTube_seekBackwards",e.append(t),t.onclick=function(){var t=(new Date).getTime()-pt;t<400&&t>0?(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"),Ct.currentTime-=10):e.classList.contains("vjs-user-active")?(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive")):(e.classList.add("vjs-user-active"),e.classList.remove("vjs-user-inactive")),pt=(new Date).getTime()};let o=document.createElement("div");o.id="goodTube_seekForwards",e.append(o),o.onclick=function(){var t=(new Date).getTime()-ct;t<400&&t>0?(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"),Ct.currentTime+=5):e.classList.contains("vjs-user-active")?(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive")):(e.classList.add("vjs-user-active"),e.classList.remove("vjs-user-inactive")),ct=(new Date).getTime()},e.addEventListener("touchstart",(function(t){mt=setTimeout((function(){e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"),jt=Ct.playbackRate,Ct.playbackRate=2,vt=!0}),1e3)})),["touchmove","touchend"].forEach((t=>{e.addEventListener(t,(function(t){mt&&clearTimeout(mt),vt&&(Ct.playbackRate=jt,vt=!1)}))}))}Rt||e.addEventListener("dblclick",(function(t){t.target.closest(".vjs-progress-control")||t.target.closest(".vjs-menu-button")||t.target.closest(".vjs-control")||document.querySelector(".vjs-fullscreen-control")?.click()})),Rt&&setInterval((function(){let t=document.querySelector(".vjs-current-time"),e=document.querySelector(".vjs-time-divider"),o=document.querySelector(".vjs-duration");if(t&&e&&o){let n=16,r=4;t.style.left=n+"px",e.style.left=n+t.offsetWidth+r+"px",o.style.left=n+t.offsetWidth+e.offsetWidth+r+r+"px"}}),100),Rt||(e.addEventListener("mouseout",(function(t){e.classList.contains("vjs-user-active")&&!e.classList.contains("vjs-paused")&&(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"))})),e.addEventListener("mouseover",(function(t){e.classList.contains("vjs-user-inactive")&&!e.classList.contains("vjs-paused")&&(e.classList.add("vjs-user-active"),e.classList.remove("vjs-user-inactive"))})),e.addEventListener("click",(function(t){setTimeout((function(){e.classList.contains("vjs-user-inactive")&&!e.classList.contains("vjs-paused")&&(e.classList.add("vjs-user-active"),e.classList.remove("vjs-user-inactive"),window.goodTube_inactive_timeout=setTimeout((function(){e.classList.contains("vjs-user-active")&&!e.classList.contains("vjs-paused")&&(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"))}),3e3))}),1)})),e.addEventListener("mousemove",(function(t){void 0!==window.goodTube_inactive_timeout&&clearTimeout(window.goodTube_inactive_timeout)}))),document.querySelectorAll("#goodTube_player button").forEach((t=>{t.setAttribute("title","")}));let o=i("goodTube_volume");o&&o==parseFloat(o)&&P(Ct,o),i("goodTube_autoplay")||a("goodTube_autoplay","on");let r=document.querySelector(".vjs-autoplay-button");if(r){r.querySelector(".vjs-menu .vjs-selected")?.classList.remove("vjs-selected");let t=r.querySelectorAll(".vjs-menu .vjs-menu-item");"on"===i("goodTube_autoplay")?t[t.length-1].classList.add("vjs-selected"):t[0].classList.add("vjs-selected")}let l=document.querySelector(".vjs-mute-control");l&&(l.onmousedown=function(){Ct.muted?it.muted(!1):it.muted(!0)},l.ontouchstart=function(){Ct.muted?it.muted(!1):it.muted(!0)});let s=document.querySelector(".vjs-play-control");s&&(s.removeEventListener("click",Tt,!1),s.addEventListener("click",Tt,!1)),document.onmousedown=function(){if(!event.target.closest(".vjs-menu")&&!event.target.closest(".vjs-menu-button")){document.querySelectorAll(".vjs-menuOpen").forEach((t=>{t.classList.remove("vjs-menuOpen")}))}},document.ontouchstart=function(){if(!event.target.closest(".vjs-menu")&&!event.target.closest(".vjs-menu-button")){document.querySelectorAll(".vjs-menuOpen").forEach((t=>{t.classList.remove("vjs-menuOpen")}))}};let d=document.querySelector(".vjs-control-bar .vjs-play-control");d&&(d.onclick=function(){0===Ct.currentTime&&Ct.click()},d.ontouchstart=function(){0===Ct.currentTime&&Ct.click()});let u=document.querySelectorAll(".vjs-source-button .vjs-menu .vjs-menu-item");if(u){let t=0;u.forEach((e=>{e.setAttribute("api",Ft[t].url),t++}))}if(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document){let t=document.querySelector(".vjs-download-button");t&&t.remove()}B(i("goodTube_api_withauto"),!1),wt()})),it.on("seeking",(function(){ft=!0})),it.on("seeked",(function(){ft=!1,m()})),it.on("waiting",(function(){if(yt&&clearTimeout(yt),gt&&clearTimeout(gt),!(Ct.currentTime<=0)&&(ft||(gt=setTimeout((function(){if(_t++,_t>=3)return yt&&clearTimeout(yt),gt&&clearTimeout(gt),n&&console.log("[GoodTube] Video buffering too often - selecting next video source..."),_t=0,b=Ct.currentTime,void B("automatic",!0)}),3e3)),2===Ut||3===Ut)){let t=Ct.currentTime;yt=setTimeout((function(){Ct.currentTime===t&&(yt&&clearTimeout(yt),gt&&clearTimeout(gt),n&&console.log("[GoodTube] Video not loading fast enough - selecting next video source..."),b=Ct.currentTime,B("automatic",!0))}),15e3)}})),document.addEventListener("keydown",(function(t){if(27==t.keyCode){document.querySelectorAll(".vjs-menuOpen").forEach((t=>{t.classList.remove("vjs-menuOpen")}))}}),!0),it.on("loadedmetadata",(function(){if(ht&&clearTimeout(ht),void 0!==Mt.t){let t=Mt.t.replace("s","");G(Ct,t)}b>0&&G(Ct,b),Ct.focus()})),it.on("loadstart",(function(){if(ht&&clearTimeout(ht),ht=setTimeout((function(){n&&console.log("[GoodTube] Video not loading fast enough - selecting next video source..."),B("automatic",!0)}),15e3),Ct.classList.remove("goodTube_hidden"),1===Ut){let t="",e=document.querySelector(".vjs-quality-selector .vjs-menu .vjs-selected .vjs-menu-item-text");t=e?e.innerHTML:Ct.querySelector("source[selected=true]").getAttribute("label");let o=t.replace("p","").replace("hd","").replace(" ","").toLowerCase();parseFloat(L)!==parseFloat(o)&&(A=o,L=o);let r=document.querySelector("#goodTube_player_wrapper3");"audio"===o?r.classList.contains("goodTube_audio")||r.classList.add("goodTube_audio"):r.classList.contains("goodTube_audio")&&r.classList.remove("goodTube_audio"),n&&j<=1&&console.log("[GoodTube] Loading quality "+t+"...")}else if(2===Ut||3===Ut){let t=document.querySelector("#goodTube_player_wrapper3");t.classList.contains("goodTube_audio")&&t.classList.remove("goodTube_audio"),n&&j<=1&&console.log("[GoodTube] Loading qualities...")}})),it.on("loadeddata",(function(){_t=0,Ct.paused||I(Ct),j=1,void 0!==v.reloadVideo&&clearTimeout(v.reloadVideo),n&&(1===Ut?console.log("[GoodTube] Quality loaded"):2!==Ut&&3!==Ut||console.log("[GoodTube] Qualities loaded")),wt(),ot()})),it.on("ended",(function(){T=!0,m(),Yt()})),it.on("volumechange",(function(){let t=Ct.volume;Ct.muted&&(t=0),a("goodTube_volume",t)}))}(),function(){let t=document.createElement("div");t.classList.add("goodTube_defaultQualityModal"),t.innerHTML="\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
Select default quality
\n\t\t\t\t
\n\t\t\t\t\t
4320p
\n\t\t\t\t\t
2160p
\n\t\t\t\t\t
1440p
\n\t\t\t\t\t
1080p
\n\t\t\t\t\t
720p
\n\t\t\t\t\t
480p
\n\t\t\t\t\t
360p
\n\t\t\t\t\t
240p
\n\t\t\t\t\t
144p
\n\t\t\t\t\t
Auto
\n\t\t\t\t
\x3c!-- .goodTube_defaultQualityModal_inner --\x3e\n\t\t\t
\x3c!-- .goodTube_defaultQualityModal_options --\x3e\n\t\t",document.querySelector("#goodTube_player_wrapper3 .video-js").appendChild(t),document.querySelectorAll(".goodTube_defaultQualityModal .goodTube_defaultQualityModal_option").forEach((t=>{t.addEventListener("click",(function(){N(this.innerHTML.replace("p",""))}))})),document.querySelector(".goodTube_defaultQualityModal .goodTube_defaultQualityModal_overlay").addEventListener("click",(function(){let t=document.querySelector(".goodTube_defaultQualityModal");t.classList.contains("goodTube_defaultQualityModal_visible")&&t.classList.remove("goodTube_defaultQualityModal_visible")})),document.addEventListener("keydown",(function(t){if(27==t.keyCode){let t=document.querySelector(".goodTube_defaultQualityModal");t.classList.contains("goodTube_defaultQualityModal_visible")&&t.classList.remove("goodTube_defaultQualityModal_visible")}}),!0)}(),setInterval(m,1e4),document.addEventListener("keydown",(function(t){if(t.ctrlKey||void 0===Mt.v)return;let e=t.srcElement,o=!1,n=!1;if(e&&(void 0!==e.nodeName&&(o=e.nodeName.toLowerCase()),void 0!==e.getAttribute&&(n=e.getAttribute("id"))),!e||-1===o.indexOf("input")&&-1===o.indexOf("label")&&-1===o.indexOf("select")&&-1===o.indexOf("textarea")&&-1===o.indexOf("fieldset")&&-1===o.indexOf("legend")&&-1===o.indexOf("datalist")&&-1===o.indexOf("output")&&-1===o.indexOf("option")&&-1===o.indexOf("optgroup")&&"contenteditable-root"!==n){let o=t.key.toLowerCase();">"===o?.25==parseFloat(p.playbackRate)?p.playbackRate=.5:.5==parseFloat(p.playbackRate)?p.playbackRate=.75:.75==parseFloat(p.playbackRate)?p.playbackRate=1:1==parseFloat(p.playbackRate)?p.playbackRate=1.25:1.25==parseFloat(p.playbackRate)?p.playbackRate=1.5:1.5==parseFloat(p.playbackRate)?p.playbackRate=1.75:1.75==parseFloat(p.playbackRate)&&(p.playbackRate=2):"<"===o&&(.5==parseFloat(p.playbackRate)?p.playbackRate=.25:.75==parseFloat(p.playbackRate)?p.playbackRate=.5:1==parseFloat(p.playbackRate)?p.playbackRate=.75:1.25==parseFloat(p.playbackRate)?p.playbackRate=1:1.5==parseFloat(p.playbackRate)?p.playbackRate=1.25:1.75==parseFloat(p.playbackRate)?p.playbackRate=1.5:2==parseFloat(p.playbackRate)&&(p.playbackRate=1.75)),t.shiftKey||(e&&void 0!==e.closest&&e.closest("#goodTube_player")&&("arrowdown"===o&&(p.volume>=.05?p.volume-=.05:p.volume=0,t.preventDefault()),"arrowup"===o&&(p.volume<=.95?p.volume+=.05:p.volume=1,t.preventDefault()),"t"===o&&document.querySelector("body").focus()),"arrowleft"===o&&(p.currentTime-=5),"arrowright"===o&&(p.currentTime+=5)," "===o&&(p.paused||p.ended?p.play():p.pause()),"m"===o&&(p.muted||p.volume<=0?(p.muted=!1,p.volume<=0&&(p.volume=1)):p.muted=!0),"i"===o&&(t.stopImmediatePropagation(),at()),"f"===o?document.querySelector(".vjs-fullscreen-control")?.click():"j"===o?p.currentTime-=10:"l"===o?p.currentTime+=10:"home"===o?p.currentTime=0:"end"===o&&(p.currentTime+=p.duration),"0"===o?p.currentTime=0:"1"===o?p.currentTime=p.duration/100*10:"2"===o?p.currentTime=p.duration/100*20:"3"===o?p.currentTime=p.duration/100*30:"4"===o?p.currentTime=p.duration/100*40:"5"===o?p.currentTime=p.duration/100*50:"6"===o?p.currentTime=p.duration/100*60:"7"===o?p.currentTime=p.duration/100*70:"8"===o?p.currentTime=p.duration/100*80:"9"===o&&(p.currentTime=p.duration/100*90))}}),!0),Rt&&P(Ct,1)}function z(){n&&console.log("[GoodTube] Loading player assets..."),h=0,R(y[g])}function R(t){h++,h>o?n&&console.log("[GoodTube] Player assets could not be loaded"):fetch(t).then((t=>t.text())).then((e=>{let o=!1;-1!==t.indexOf("/js/")?o=document.createElement("script"):-1!==t.indexOf("/css/")&&(o=document.createElement("style")),o.innerHTML=e,document.head.appendChild(o),g++,g>=y.length?n&&console.log("[GoodTube] Player assets loaded"):(h=0,R(y[g]))})).catch((o=>{void 0!==v.loadAsset&&clearTimeout(v.loadAsset),v.loadAsset=setTimeout((function(){R(t)}),e)}))}let O=0;function B(t,e){let o=document.querySelector(".vjs-source-button .vjs-menu");if(o.querySelectorAll(".vjs-selected").forEach((t=>{t.classList.remove("vjs-selected")})),"automatic"===t){if(O++,void 0===Ft[O])return void xt();Ut=Ft[O].type,Vt=Ft[O].proxy,Nt=Ft[O].url,Jt=Ft[O].name,a("goodTube_api_withauto",t);let e=document.querySelector("#goodTube_player_wrapper1");e.classList.contains("goodTube_automaticServer")||e.classList.add("goodTube_automaticServer");let n=o.querySelector("ul li:first-child");n.classList.contains("vjs-selected")||n.classList.add("vjs-selected")}else{Ft.forEach((e=>{t==e.url&&(Ut=e.type,Vt=e.proxy,Nt=e.url,Jt=e.name,a("goodTube_api_withauto",t))}));let e=document.querySelector("#goodTube_player_wrapper1");e.classList.contains("goodTube_automaticServer")&&e.classList.remove("goodTube_automaticServer"),O=0}o.querySelectorAll("ul li").forEach((t=>{t.getAttribute("api")==Nt&&t.classList.add("vjs-selected")})),e&&function(){n&&(console.log("\n-------------------------\n\n"),console.log("[GoodTube] Loading video data from "+Jt+"..."));let t=0;Rt&&(t=400);setTimeout((function(){f=0,H(Ct)}),t)}()}function D(t){t.pause()}function I(t){t.play()}function P(t,e){t.volume=e}function G(t,e){t.currentTime=e}function H(t){if(void 0===Mt.v)return void(st=[]);if(j=1,void 0!==v.reloadVideo&&clearTimeout(v.reloadVideo),void 0!==v.loadVideoData&&clearTimeout(v.loadVideoData),tt(t),et(),f++,f>o)return void xt();t.querySelectorAll("source").forEach((t=>{t.remove()}));let r=!1;1===Ut||2===Ut?r=Nt+"/api/v1/videos/"+Mt.v:3===Ut&&(r=Nt+"/streams/"+Mt.v),fetch(r,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((o=>{et();let r=JSON.parse(o),a=!1,i=!1,l=!1,s=!1,d=!1,u=!1,p=!1;if(1===Ut?void 0===r.formatStreams?p=!0:(a=r.formatStreams,i=r.captions,l=r.storyboards,d=r.description,u=r.lengthSeconds,s=!1):2===Ut?void 0===r.dashUrl&&void 0===r.hlsUrl?p=!0:(a=!1,i=r.captions,l=r.storyboards,d=r.description,u=r.lengthSeconds,s=!1):3===Ut&&(void 0===r.hls&&void 0===r.dash?p=!0:(i=!1,l=!1,d=r.description.replace(/
/g,"\r\n").replace(/<[^>]*>?/gm,""),u=r.duration,void 0!==r.chapters&&r.chapters.length&&r.chapters.length>0&&(s=[],r.chapters.forEach((t=>{s.push({time:parseFloat(t.start),title:t.title})}))))),p)return void 0!==v.loadVideoData&&clearTimeout(v.loadVideoData),v.loadVideoData=setTimeout((function(){H(t)}),e),void et();if(n&&console.log("[GoodTube] Video data loaded"),1===Ut){A&&t.querySelector(".goodTube_source_"+A)?(t.querySelector(".goodTube_source_"+A).setAttribute("selected",!0),L=A):(t.querySelector(".goodTube_source_"+S)?.setAttribute("selected",!0),L=S);let e=document.createElement("source");e.setAttribute("src",Nt+"/watch?v="+Mt.v+"&raw=1&listen=1"),e.setAttribute("type","audio/mp3"),e.setAttribute("label","Audio"),e.setAttribute("video",!0),e.setAttribute("class","goodTube_source_audio"),t.appendChild(e);let o=0;S=!1,a.forEach((e=>{let n=!1,r=!1,a=!1,i=!1;if(n=Nt+"/latest_version?id="+Mt.v+"&itag="+e.itag,Vt&&(n+="&local=true"),r=e.type,a=parseFloat(e.resolution.replace("p","").replace("hd",""))+"p",i=parseFloat(e.resolution.replace("p","").replace("hd","")),n&&r&&a&&-1!==r.toLowerCase().indexOf("video")){let e=document.createElement("source");e.setAttribute("src",n),e.setAttribute("type",r),e.setAttribute("label",a),e.setAttribute("video",!0),e.setAttribute("class","goodTube_source_"+i),t.appendChild(e),(!S||i>S)&&(S=i)}o++})),A&&t.querySelector(".goodTube_source_"+A)?(t.querySelector(".goodTube_source_"+A).setAttribute("selected",!0),L=A):(t.querySelector(".goodTube_source_"+S)?.setAttribute("selected",!0),L=S);let n=[];t.querySelectorAll("source[video=true]").forEach((t=>{n.push({src:t.getAttribute("src"),type:t.getAttribute("type"),label:t.getAttribute("label"),selected:t.getAttribute("selected")})})),it.src(n);let r=document.querySelectorAll(".vjs-quality-selector");2===r.length&&(r[1].style.display="none",r[0].style.display="block")}else if(2===Ut){let t=!1,e=!1,o="false";Vt&&(o="true"),void 0!==r.hlsUrl&&r.hlsUrl?(t=r.hlsUrl+"?local="+o+"&unique_res=1",e="application/x-mpegURL"):void 0!==r.dashUrl&&r.dashUrl&&(t=r.dashUrl+"?local="+o+"&unique_res=1",e="application/dash+xml"),t&&"/"===t[0]&&(t=Nt+t),it.src({src:t,type:e}),F()}else if(3===Ut){let t=!1,e=!1,o="false";Vt&&(o="true"),void 0!==r.hls&&r.hls?(t=r.hls,e="application/x-mpegURL"):void 0!==r.dash&&r.dash&&(t=r.dash,e="application/dash+xml"),t&&"/"===t[0]&&(t=Nt+t),it.src({src:t,type:e}),F()}setTimeout((function(){I(t)}),1),function(t,e){(!e||e.length>0)&&(n&&console.log("[GoodTube] Loading subtitles..."),Bt=e?0:1,Y(t,e,Nt))}(t,i),n&&console.log("[GoodTube] Loading chapters..."),K(t,d,u,s),Rt||(n&&console.log("[GoodTube] Loading storyboard..."),Z(t,l,0))})).catch((o=>{void 0!==v.loadVideoData&&clearTimeout(v.loadVideoData),v.loadVideoData=setTimeout((function(){H(t)}),e),et()}))}function F(){M&&clearTimeout(M);let t=document.querySelectorAll(".vjs-quality-selector");if(!t||void 0===t[1])return M&&clearTimeout(M),void(M=setTimeout(F,100));if(2===t.length){t[0].style.display="none",t[1].style.display="block";let e=t[1].querySelector("ul"),o=e.querySelector("li.vjs-menu-item:first-child .vjs-menu-item-text");if(!o)return M&&clearTimeout(M),void(M=setTimeout(F,100));let n=o;if("Select default quality"!==o.innerHTML){n=document.createElement("li"),n.classList.add("vjs-menu-item"),n.classList.add("select-default"),n.innerHTML='\n\t\t\t\t\t\tSelect default quality\n\t\t\t\t\t\t\n\t\t\t\t\t',n.addEventListener("click",U),e.prepend(n),e.querySelectorAll("li.vjs-menu-item:not(.select-default)").forEach((t=>{t.addEventListener("click",J),t.addEventListener("touchstart",J)}))}let r=i("goodTube_selectDefaultNew");r||(a("goodTube_selectDefaultNew","1080"),r="1080"),N(r)}}function U(){let t=document.querySelector(".goodTube_defaultQualityModal");t.classList.contains("goodTube_defaultQualityModal_visible")||t.classList.add("goodTube_defaultQualityModal_visible")}let V=!1;function N(t){a("goodTube_selectDefaultNew",t);let e=document.querySelector(".goodTube_defaultQualityModal");e.classList.contains("goodTube_defaultQualityModal_visible")&&e.classList.remove("goodTube_defaultQualityModal_visible"),document.querySelector(".goodTube_defaultQualityModal_selected")?.classList.remove("goodTube_defaultQualityModal_selected"),document.querySelector("#goodTube_defaultQualityModal_option_"+t.toLowerCase())?.classList.add("goodTube_defaultQualityModal_selected");let o=!1;document.querySelectorAll(".vjs-quality-selector li.vjs-menu-item").forEach((e=>{let n=e.querySelector(".vjs-menu-item-text").innerHTML.replace("p","");("auto"===n.toLowerCase()&&"auto"===t.toLowerCase()||parseFloat(n)<=parseFloat(t)&&!o)&&(o=e)})),o&&(V=!0,o.click(),n&&("auto"===t.toLowerCase()?console.log("[GoodTube] Setting default quality to "+t[0].toUpperCase()+t.slice(1)):console.log("[GoodTube] Selecting nearest default quality to "+t+"p ("+o.querySelector(".vjs-menu-item-text").innerHTML+")")))}function J(){if(V)return void(V=!1);let t=document.querySelectorAll(".vjs-quality-selector")[1],e=t.querySelector("li.select-default");e.classList.contains("vjs-selected")&&e.classList.remove("vjs-selected");let o=t.querySelector("li.vjs-auto-selected");o&&o.classList.remove("vjs-auto-selected")}function K(t,e,o,r){W();let a=[];if(r)a=r;else{let n=e.split("\n"),r=/(\d{0,2}:?\d{1,2}:\d{2})/g;for(let t of n){const e=t.match(r);if(e){let o=e[0],n=t.split(" ").filter((t=>!t.includes(o))).join(" ");a.push({time:o,title:n})}}if((!a.length||a.length<=0||a[0].time.split(":").reduce(((t,e)=>60*t+ +e))>0)&&(a=[]),(!a.length||a.length<=0)&&!Rt){let n=Array.from(document.querySelectorAll("#panels ytd-engagement-panel-section-list-renderer:nth-child(2) #content ytd-macro-markers-list-renderer #contents ytd-macro-markers-list-item-renderer #endpoint #details"));C&&clearInterval(C);let r=JSON.stringify(document.querySelectorAll("#panels ytd-engagement-panel-section-list-renderer:nth-child(2) #content ytd-macro-markers-list-renderer #contents ytd-macro-markers-list-item-renderer #endpoint #details"));C=setInterval((function(){let n=JSON.stringify(document.querySelectorAll("#panels ytd-engagement-panel-section-list-renderer:nth-child(2) #content ytd-macro-markers-list-renderer #contents ytd-macro-markers-list-item-renderer #endpoint #details"));n!==r&&(r=n,K(t,e,o))}),1e3);let i=n.map((t=>({title:t.querySelector(".macro-markers")?.textContent,time:t.querySelector("#time")?.textContent}))).filter((t=>void 0!==t.title&&null!==t.title&&void 0!==t.time&&null!==t.time));a=[...new Map(i.map((t=>[t.time,t]))).values()]}}let i=0;a.length&&a.length>0&&(i=a[0].time,"number"!=typeof i&&(i=i.split(":").reduce(((t,e)=>60*t+ +e)))),(!a.length||a.length<=0||i>0)&&(a=[]),a.length>0?function(t,e,o){let r=document.createElement("div");r.classList.add("goodTube_chapters");let a=document.createElement("div");a.classList.add("goodTube_markers");let i=0;e.forEach((t=>{let n=document.createElement("div");n.classList.add("goodTube_chapter"),void 0!==e[i+1]&&("number"==typeof e[i+1].time?n.setAttribute("chapter-time",e[i+1].time):n.setAttribute("chapter-time",e[i+1].time.split(":").reduce(((t,e)=>60*t+ +e))));let l=document.createElement("div");l.classList.add("goodTube_marker"),void 0!==e[i+1]&&("number"==typeof e[i+1].time?l.setAttribute("marker-time",e[i+1].time):l.setAttribute("marker-time",e[i+1].time.split(":").reduce(((t,e)=>60*t+ +e)))),Rt||n.addEventListener("mouseover",(function(){document.querySelector("#goodTube_player_wrapper1 .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip")?.setAttribute("chapter-title",t.title)}));let s=0;s="number"==typeof t.time?t.time:t.time.split(":").reduce(((t,e)=>60*t+ +e));let d=s/o*100;n.style.left=d+"%";let u=o;void 0!==e[i+1]&&(u="number"==typeof e[i+1].time?e[i+1].time:e[i+1].time.split(":").reduce(((t,e)=>60*t+ +e)));let p=u/o*100;n.style.width=p-d+"%",l.style.left=p+"%",r.appendChild(n),a.appendChild(l),i++})),Rt&&(E=setInterval((function(){let o=parseFloat(t.currentTime),n=!1;e.forEach((t=>{let e=!1;e="number"==typeof t.time?t.time:t.time.split(":").reduce(((t,e)=>60*t+ +e)),parseFloat(o)>=parseFloat(e)&&(n=t.title)})),n&&document.querySelector("#goodTube_player_wrapper1 .vjs-time-control .vjs-duration-display")?.setAttribute("chapter-title","· "+n)}),10));document.querySelector("#goodTube_player_wrapper1 .vjs-progress-control")?.appendChild(r),document.querySelector("#goodTube_player_wrapper1 .vjs-progress-control .vjs-play-progress")?.appendChild(a),document.querySelector("#goodTube_player_wrapper1").classList.contains("goodTube_hasChapters")||document.querySelector("#goodTube_player_wrapper1").classList.add("goodTube_hasChapters");q=setInterval((function(){document.querySelectorAll(".goodTube_markers .goodTube_marker").forEach((e=>{e.getAttribute("marker-time")&&(parseFloat(t.currentTime)>=parseFloat(e.getAttribute("marker-time"))?e.classList.contains("goodTube_showMarker")||e.classList.add("goodTube_showMarker"):e.classList.contains("goodTube_showMarker")&&e.classList.remove("goodTube_showMarker"))})),document.querySelectorAll(".goodTube_chapters .goodTube_chapter").forEach((e=>{e.getAttribute("chapter-time")&&(parseFloat(t.currentTime)>=parseFloat(e.getAttribute("chapter-time"))?e.classList.contains("goodTube_redChapter")||e.classList.add("goodTube_redChapter"):e.classList.contains("goodTube_redChapter")&&e.classList.remove("goodTube_redChapter"))}))}),10),n&&console.log("[GoodTube] Chapters loaded")}(t,a,o):n&&console.log("[GoodTube] No chapters found")}function W(){q&&(clearInterval(q),q=!1),E&&(clearInterval(E),E=!1),C&&(clearInterval(C),C=!1),document.querySelector("#goodTube_player_wrapper1 .vjs-time-control .vjs-duration-display")?.setAttribute("chapter-title",""),document.querySelector(".goodTube_chapters")?.remove(),document.querySelector(".goodTube_markers")?.remove(),document.querySelector("#goodTube_player_wrapper1").classList.contains("goodTube_hasChapters")&&document.querySelector("#goodTube_player_wrapper1").classList.remove("goodTube_hasChapters")}function Y(t,e,o){if(Bt>0){if(void 0===It[Bt-1])return void(n&&console.log("[GoodTube] Subtitles could not be loaded"));o=It[Bt-1],fetch(o+"/api/v1/videos/"+Mt.v,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((e=>{let r=JSON.parse(e).captions;r&&r.length>0?fetch(o+r[0].url,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((e=>{"WEBVTT"!==e.substr(0,6)?Y(t,r,o):X(t,r,o)})).catch((e=>{Y(t,r,o)})):n&&console.log("[GoodTube] This video does not have subtitles")})).catch((n=>{Y(t,e,o)}))}else fetch(o+e[0].url,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((n=>{"WEBVTT"!==n.substr(0,6)?Y(t,e,o):X(t,e,o)})).catch((n=>{Y(t,e,o)}));Bt++}function X(t,e,o){let r=!1;e.forEach((t=>{let e=!1,n=!1;e=o+t.url,n=t.label,e&&n&&n!==r&&(r=n,n=n[0].toUpperCase()+n.slice(1),it.addRemoteTextTrack({kind:"captions",language:n,src:e},!1))})),n&&console.log("[GoodTube] Subtitles loaded")}function Z(t,e,o){if(void 0!==It[o])if(3===Ut){let n=It[o]+"/api/v1/videos/"+Mt.v;fetch(n,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((n=>{let r=JSON.parse(n);void 0===r.storyboards?(o++,Z(t,e,o)):(e=r.storyboards,$(t,e,It[o]))})).catch((n=>{o++,Z(t,e,o)}))}else Dt=0,$(t,e,Nt);else n&&console.log("[GoodTube] Storyboard could not be loaded")}function $(t,e,o){if(Dt>0){if(void 0===It[Dt-1])return void(n&&console.log("[GoodTube] Storyboard could not be loaded"));o=It[Dt-1]}Dt++,!e.length||e.length<=0?$(t,e,o):fetch(o+e[0].url,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((r=>{if("WEBVTT"!==r.substr(0,6))$(t,e,o);else{let a=!1,i=!1,l=r.split("\n\n");if(l.length&&l.length>1){let t=l[1].split("\n");t.length&&t.length>1&&(i=t[1],-1!==i.indexOf("https")&&(a=!0))}a?fetch(i,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((r=>{-1===r.indexOf("{t.width>a&&(r=t.url,a=parseFloat(t.width))})),r&&("function"==typeof it.vttThumbnails&&(_=it.vttThumbnails),it.vttThumbnails=_,it.vttThumbnails({src:o+r}),n&&console.log("[GoodTube] Storyboard loaded"))}(0,e,o):$(t,e,o)})).catch((n=>{$(t,e,o)})):$(t,e,o)}})).catch((n=>{$(t,e,o)}))}function tt(t){T=!1,function(){let t=document.querySelector("#goodTube_error");t&&t.remove()}(),t.classList.add("goodTube_hidden"),t.currentTime=0,t.pause(),W(),document.querySelector(".vjs-vtt-thumbnail-display")?.remove();let e=it.remoteTextTracks();void 0!==e.tracks_&&e.tracks_.forEach((t=>{it.removeRemoteTextTrack(t)}));let o=document.querySelectorAll(".vjs-quality-selector");if(o&&void 0!==o[1]){let t=o[1].querySelector("ul");t&&(t.innerHTML="")}}function et(){let t=document.getElementById("goodTube_player");t.classList.contains("vjs-loading")||t.classList.add("vjs-loading"),t.classList.contains("vjs-waiting")||t.classList.add("vjs-waiting")}function ot(){let t=document.getElementById("goodTube_player");t.classList.contains("vjs-loading")&&t.classList.remove("vjs-loading"),t.classList.contains("vjs-waiting")&&t.classList.remove("vjs-waiting")}function nt(){"mediaSession"in navigator&&(navigator.mediaSession.setActionHandler("play",(()=>{I(Ct)})),navigator.mediaSession.setActionHandler("pause",(()=>{D(Ct)})),ut?navigator.mediaSession.setActionHandler("nexttrack",(()=>{Yt(!0)})):navigator.mediaSession.setActionHandler("nexttrack",null),dt?navigator.mediaSession.setActionHandler("previoustrack",(()=>{Wt()})):navigator.mediaSession.setActionHandler("previoustrack",null))}function rt(){if(!Rt){let t=document.querySelector("ytd-watch-flexy");t&&(void 0!==Mt.v?t.classList.remove("goodTube_miniplayer"):t.classList.add("goodTube_miniplayer"))}void 0!==Mt.v&&(k=Mt.v)}function at(){if(document.pictureInPictureEnabled)return void(w?(document.exitPictureInPicture(),w=!1):(Ct.requestPictureInPicture(),w=!0,x&&at()));let t=document.querySelector("#goodTube_player_wrapper1");x?(t.classList.remove("goodTube_miniplayer"),x=!1,void 0===Mt.v&&tt(Ct)):(t.classList.add("goodTube_miniplayer"),x=!0,k=Mt.v)}let it=!1,lt=!1,st=[],dt=!1,ut=!0,pt=!1,ct=!1,mt=!1,vt=!1,bt=!1,yt=!1,gt=!1,ht=!1,ft=!1,_t=0,jt=1;function Tt(){document.querySelector(".vjs-play-control").classList.contains("vjs-playing")?I(Ct):D(Ct)}function wt(){document.querySelectorAll(".vjs-control-bar button").forEach((t=>{t.onclick=function(){document.querySelectorAll(".vjs-menuOpen").forEach((e=>{e!=t.closest("div.vjs-menu-button")&&e.classList.remove("vjs-menuOpen")}));let e=t.closest("div.vjs-menu-button");e&&(e.classList.contains("vjs-menuOpen")?e.classList.remove("vjs-menuOpen"):e.classList.add("vjs-menuOpen"))},t.ontouchstart=function(){document.querySelectorAll(".vjs-menuOpen").forEach((e=>{e!=t.closest("div.vjs-menu-button")&&e.classList.remove("vjs-menuOpen")}));let e=t.closest("div.vjs-menu-button");e&&(e.classList.contains("vjs-menuOpen")?e.classList.remove("vjs-menuOpen"):e.classList.add("vjs-menuOpen"))}}));if(document.querySelectorAll(".vjs-menu-item").forEach((t=>{((t,e)=>{let o=!1;t.addEventListener("touchstart",(function(){o=!1})),t.addEventListener("touchmove",(function(){o=!0})),t.addEventListener("touchend",(function(t){o||e(t)})),t.addEventListener("click",(function(t){e(t)}))})(t,(t=>{let e=0;Rt&&(e=400),setTimeout((function(){document.querySelectorAll(".vjs-menuOpen").forEach((t=>{t.classList.remove("vjs-menuOpen")}))}),e)}))})),!Rt&&!document.querySelector(".goodTube_hoverBar")){let t=document.createElement("div");t.classList.add("goodTube_hoverBar"),document.querySelector(".video-js .vjs-progress-control").appendChild(t),document.querySelector(".video-js .vjs-progress-control").addEventListener("mousemove",(function(e){window.requestAnimationFrame((function(){t.style.width=document.querySelector(".video-js .vjs-progress-control .vjs-mouse-display").style.left}))}))}}function xt(){yt&&clearTimeout(yt),gt&&clearTimeout(gt),ht&&clearTimeout(ht);let t=i("goodTube_api_withauto"),e=!1;if(void 0===Ft[O]&&(e=!0),"automatic"===t&&e){let t=document.querySelector("#goodTube_player");ot(),tt(Ct);let e=document.createElement("div");e.setAttribute("id","goodTube_error"),e.innerHTML="Video could not be loaded. The servers are not responding :(
Please refresh the page / try again soon!",t.appendChild(e)}else"automatic"===t?(n&&console.log("[GoodTube] Video could not be loaded - selecting next video source..."),Ct.currentTime>0&&(b=Ct.currentTime),B("automatic",!0)):(n&&console.log("[GoodTube] Video could not be loaded - selecting next video source..."),Ct.currentTime>0&&(b=Ct.currentTime),O=0,B("automatic",!0))}function kt(){let t=document.querySelector(".vjs-download-button");if(!document.querySelector(".vjs-download-button .goodTube_spinner")){let e=document.createElement("div");e.classList.add("goodTube_spinner"),e.innerHTML="
",t.append(e)}t&&!t.classList.contains("goodTube_loading")&&t.classList.add("goodTube_loading")}function St(t){if(Reflect.ownKeys(zt).length>1)return;let e=document.querySelector(".vjs-download-button");e&&e.classList.contains("goodTube_loading")&&e.classList.remove("goodTube_loading"),a("goodTube_lastDownloadTimeSeconds",(new Date).getTime()/1e3),n&&void 0===t&&console.log("[GoodTube] Downloads finished")}function Lt(){let t=document.querySelector(".goodTube_downloadPlaylist_cancel"),e=document.querySelector(".goodTube_downloadPlaylist_video"),o=document.querySelector(".goodTube_downloadPlaylist_audio");t&&e&&o&&(void 0!==Mt.i||void 0!==Mt.index||void 0!==Mt.list?(d(e),d(o)):(l(e),l(o)),Reflect.ownKeys(zt).length>1?d(t):l(t))}function At(){if(dt=!1,ut=!0,(x||w)&&void 0===Mt.v)dt=!1,ut=!1;else if(void 0!==Mt.i||void 0!==Mt.index||void 0!==Mt.list){let t=document.querySelectorAll("#goodTube_playlistContainer a");if(!t||!t.length)return;t[0].classList.contains("goodTube_selected")||(dt=!0)}else st[st.length-2]&&st[st.length-2]!==window.location.href&&(dt=!0);let t=document.querySelector(".vjs-prev-button");t&&(dt?d(t):l(t));let e=document.querySelector(".vjs-next-button");e&&(ut?d(e):l(e))}let qt=!1,Et=!1,Ct=!1,Mt=!1,Qt=[],zt=[],Rt=!1,Ot=!1,Bt=0,Dt=0,It=["https://yt.artemislena.eu","https://invidious.perennialte.ch","https://invidious.private.coffee","https://invidious.drgns.space","https://inv.nadeko.net","https://invidious.projectsegfau.lt","https://invidious.jing.rocks","https://invidious.incogniweb.net","https://invidious.privacyredirect.com","https://invidious.fdn.fr","https://iv.datura.network","https://pipedapi-libre.kavin.rocks","https://pipedapi.syncpundit.io","https://invidious.protokolla.fi","https://iv.melmac.space"],Pt=["https://dl01.yt-dl.click","https://dl02.yt-dl.click","https://dl03.yt-dl.click","https://apicloud9.filsfkwtlfjas.xyz","https://apicloud3.filsfkwtlfjas.xyz","https://apicloud8.filsfkwtlfjas.xyz","https://apicloud4.filsfkwtlfjas.xyz","https://apicloud5.filsfkwtlfjas.xyz"],Gt=["https://sea-downloadapi.stuff.solutions","https://ca.haloz.at","https://cobalt.wither.ing","https://capi.tieren.men","https://co.tskau.team","https://apicb.tigaultraman.com","https://api-cobalt.boykisser.systems","https://cobalt.decrystalfan.app","https://wukko.wolfdo.gg","https://capi.oak.li","https://cb.nyoom.fun","https://dl.khyernet.xyz","https://cobalt-api.alexagirl.studio","https://nyc1.coapi.ggtyler.dev","https://api.dl.ixhby.dev","https://co.eepy.today","https://downloadapi.stuff.solutions","https://cobalt-api.ayo.tf","https://api.sacreations.me","https://apicloud2.filsfkwtlfjas.xyz","https://dl01.yt-dl.click"],Ht=Gt.length;for(;0!=Ht;){let t=Math.floor(Math.random()*Ht);Ht--,[Gt[Ht],Gt[t]]=[Gt[t],Gt[Ht]]}Pt=Pt.concat(Gt);let Ft=[{name:"Automatic",type:!1,proxy:!0,url:"automatic"},{name:"Phoenix (US)",type:3,proxy:!0,url:"https://pipedapi.drgns.space"},{name:"Acid (US)",type:2,proxy:!0,url:"https://invidious.incogniweb.net"},{name:"Anubis (DE)",type:3,proxy:!0,url:"https://pipedapi.r4fo.com"},{name:"Nymph (AT)",type:2,proxy:!0,url:"https://invidious.private.coffee"},{name:"Serpent (US)",type:2,proxy:!0,url:"https://invidious.darkness.services"},{name:"Sphere (US)",type:3,proxy:!0,url:"https://pipedapi.darkness.services"},{name:"Sapphire (IN)",type:3,proxy:!0,url:"https://pipedapi.in.projectsegfau.lt"},{name:"Sphynx (JP)",type:2,proxy:!0,url:"https://invidious.jing.rocks"},{name:"Orchid (DE)",type:3,proxy:!0,url:"https://api.piped.yt"},{name:"Emerald (DE)",type:3,proxy:!0,url:"https://pipedapi.phoenixthrush.com"},{name:"420 (FI)",type:2,proxy:!0,url:"https://invidious.privacyredirect.com"},{name:"Onyx (FR)",type:2,proxy:!0,url:"https://invidious.fdn.fr"},{name:"360p - Amethyst (DE)",type:1,proxy:!0,url:"https://yt.artemislena.eu"},{name:"360p - Goblin (AU)",type:1,proxy:!1,url:"https://invidious.perennialte.ch"},{name:"360p - Raptor (US)",type:1,proxy:!0,url:"https://invidious.drgns.space"}],Ut=Ft[0].type,Vt=Ft[0].proxy,Nt=Ft[0].url,Jt=Ft[0].name;function Kt(){let t=document.getElementById("goodTube_playlistContainer");if(t||(t=document.createElement("div"),t.setAttribute("id","goodTube_playlistContainer"),t.style.display="none",document.body.appendChild(t)),t.innerHTML="",void 0===Mt.i&&void 0===Mt.index&&void 0===Mt.list)return;document.getElementById("movie_player");let e=!1,o=!1;Rt?(e=document.querySelectorAll("ytm-playlist-panel-renderer a.compact-media-item-image"),o=document.querySelectorAll("ytm-playlist-panel-renderer .compact-media-item-headline span")):(e=document.querySelectorAll("#playlist-items > a"),o=document.querySelectorAll("#playlist-items #video-title")),e&&e.length||setTimeout(Kt,100);let n=0;e.forEach((e=>{let r=document.createElement("a");r.href=e.href,r.innerHTML=o[n].innerHTML.trim(),-1!==e.href.indexOf(Mt.v)&&r.classList.add("goodTube_selected"),t.appendChild(r),n++}))}function Wt(){let t=!1;if(void 0!==Mt.i||void 0!==Mt.index||void 0!==Mt.list){let e=document.querySelectorAll("#goodTube_playlistContainer a"),o=!1;for(let n=e.length-1;n>=0;n--){let r=e[n];if(o){let e="/watch"+r.href.split("/watch")[1];if(Rt?(t=!0,document.querySelector('ytm-playlist-panel-renderer a.compact-media-item-image[href="'+e+'"]')?.click()):(t=!0,document.querySelector('#playlist-items > a[href="'+e+'"]')?.click()),t){if(t=!0,!document.querySelector("ytm-playlist-panel-renderer")){let t=document.querySelector("ytm-playlist-panel-entry-point");return void(t&&!Ot&&(Ot=!0,t.click(),setTimeout(Wt,500)))}Ot=!1,document.querySelector('ytm-playlist-panel-renderer a.compact-media-item-image[href="'+e+'"]')?.click()}}o=!!r.classList.contains("goodTube_selected")}}!t&&st[st.length-2]&&st[st.length-2]!==window.location.href&&(n&&console.log("[GoodTube] Playing previous video..."),a("goodTube_previous","true"),window.history.go(-1))}function Yt(t=!1){let e=i("goodTube_autoplay"),o=!1;if(void 0!==Mt.i||void 0!==Mt.index||void 0!==Mt.list){let t=document.querySelectorAll("#goodTube_playlistContainer a"),e=!1;t.forEach((t=>{if(e){let e="/watch"+t.href.split("/watch")[1];if(Rt){if(o=!0,!document.querySelector("ytm-playlist-panel-renderer")){let t=document.querySelector("ytm-playlist-panel-entry-point");return void(t&&!Ot&&(Ot=!0,t.click(),setTimeout(Yt,500)))}Ot=!1,document.querySelector('ytm-playlist-panel-renderer a.compact-media-item-image[href="'+e+'"]')?.click()}else o=!0,document.querySelector('#playlist-items > a[href="'+e+'"]')?.click();o&&n&&console.log("[GoodTube] Playing next video in playlist...")}e=!!t.classList.contains("goodTube_selected")}))}if(!o&&("off"!==e||t)){document.getElementById("movie_player").nextVideo(),n&&console.log("[GoodTube] Autoplaying next video...")}}function Xt(t,o,r,l,s){if(void 0===l&&(l=""),void 0===zt[r])return;if(void 0===Pt[t])return void 0!==zt[r]&&delete zt[r],n&&(void 0!==l?(alert("[GoodTube] "+o.charAt(0).toUpperCase()+o.slice(1)+" - "+l+" could not be downloaded. Please try again soon."),console.log("[GoodTube] "+o.charAt(0).toUpperCase()+o.slice(1)+" - "+l+" could not be downloaded. Please try again soon.")):(alert("[GoodTube] "+o.charAt(0).toUpperCase()+o.slice(1)+" could not be downloaded. Please try again soon."),console.log("[GoodTube] "+o.charAt(0).toUpperCase()+o.slice(1)+" could not be downloaded. Please try again soon."))),void St();kt();let d=0,u=(new Date).getTime()/1e3,p=parseFloat(i("goodTube_lastDownloadTimeSeconds"));p&&(d=3-(u-p),d<0&&(d=0)),a("goodTube_lastDownloadTimeSeconds",u+d),Qt[r]=setTimeout((function(){n&&(""!==l?console.log("[GoodTube] Downloading "+o+" - "+l+"..."):console.log("[GoodTube] Downloading "+o+"..."));let a="vp9";Rt&&(a="h264"),void 0!==s&&(a=s);let i=!1;"audio"===o&&(i=!0);let d=JSON.stringify({url:"https://www.youtube.com/watch?v="+r,vCodec:a,vQuality:"max",filenamePattern:"basic",isAudioOnly:i});fetch(Pt[t]+"/api/json",{signal:AbortSignal.timeout(1e4),method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:d}).then((t=>t.text())).then((i=>{if(void 0!==zt[r]){if(void 0!==(i=JSON.parse(i)).status&&"rate-limit"===i.status)return void 0!==v["download_"+r]&&clearTimeout(v["download_"+r]),void(v["download_"+r]=setTimeout((function(){Xt(t,o,r,l)}),e));if(void 0!==i.status&&"error"===i.status){let s=!1;return void 0!==i.text&&-1!==i.text.toLowerCase().indexOf("settings")?(Rt||("vp9"===a?s="av1":"av1"===a&&(s="h264")),Rt&&("h264"===a?s="av1":"av1"===a&&(s="vp9")),s?(void 0!==v["download_"+r]&&clearTimeout(v["download_"+r]),void(v["download_"+r]=setTimeout((function(){Xt(t,o,r,l,s)}),e))):(n&&console.log("[GoodTube] Could not download "+o+" - "+l),void 0!==zt[r]&&delete zt[r],void setTimeout((function(){St()}),1e3))):(void 0!==v["download_"+r]&&clearTimeout(v["download_"+r]),t++,void(v["download_"+r]=setTimeout((function(){Xt(t,o,r,l)}),e)))}void 0!==i.status&&void 0!==i.url&&function(t,o,r,a,i){if(void 0===zt[a])return;kt();let l=".mp4";"audio"===o&&(l=".mp3");Rt||""===r?(window.open(t,"_self"),n&&(""!==r?console.log("[GoodTube] Downloaded "+o+" - "+r):console.log("[GoodTube] Downloaded "+o)),void 0!==zt[a]&&delete zt[a],setTimeout((function(){St()}),1e3)):fetch(t).then((t=>t.blob())).then((t=>{if(void 0===zt[a])return;let e=URL.createObjectURL(t),i=document.createElement("a");i.style.display="none",i.href=e,i.download=r+l,document.body.appendChild(i),i.click(),window.URL.revokeObjectURL(e),i.remove(),n&&console.log("[GoodTube] Downloaded "+o+" - "+r),void 0!==zt[a]&&delete zt[a],St()})).catch((t=>{void 0!==v["download_"+a]&&clearTimeout(v["download_"+a]),i++,v["download_"+a]=setTimeout((function(){Xt(i,o,a,r)}),e)}))}(i.url,o,l,r,t)}})).catch((n=>{void 0!==v["download_"+r]&&clearTimeout(v["download_"+r]),t++,v["download_"+r]=setTimeout((function(){Xt(t,o,r,l)}),e)}))}),1e3*d)}function Zt(t,e){if(void 0===e&&!confirm("Are you sure you want to download this playlist ("+t+")?\r\rYou can keep playing and downloading other videos, just don't close the tab :)"))return;n&&void 0===e&&console.log("[GoodTube] Downloading "+t+" playlist...");let o=document.querySelectorAll("#goodTube_playlistContainer a");if(o.length<=0)return void(n&&console.log("[GoodTube] Downloading failed, could not find playlist data."));let r=0;o.forEach((e=>{let o=function(t,e){for(t=t.toString();t.length{s(t)})),document.querySelectorAll(".player-container").forEach((t=>{s(t)})),document.querySelectorAll("#player-control-container").forEach((t=>{s(t)})),document.querySelectorAll("#full-bleed-container").forEach((t=>{s(t)})),document.querySelectorAll("ytd-miniplayer").forEach((t=>{s(t)}));let t=!1;Rt?(t=document.querySelector('.ytm-autonav-toggle-button-container[aria-pressed="true"]'),t?t.click():(document.querySelector("#player .html5-video-player")?.click(),document.querySelector("#player")?.click(),document.querySelector(".ytp-unmute")?.click())):(t=document.querySelector('.ytp-autonav-toggle-button[aria-checked="true"]'),t&&t.click())}(),function(){let t=document.getElementById("movie_player");if(t&&"function"==typeof t.setPlaybackQualityRange&&"function"==typeof t.getAvailableQualityData&&"function"==typeof t.getPlaybackQuality){let e=t.getAvailableQualityData(),o=t.getPlaybackQuality();if(e.length&&o){let n=e[e.length-1].quality;o!=n&&t.setPlaybackQualityRange(n,n)}}}(),function(){if(-1!==window.location.href.indexOf("@"))return;document.querySelectorAll("a:not(.goodTube_hidden)").forEach((t=>{-1!==t.href.indexOf("shorts/")&&(l(t),l(t.closest("ytd-video-renderer")),l(t.closest("ytd-compact-video-renderer")),l(t.closest("ytd-rich-grid-media")))}))}(),document.querySelectorAll("tp-yt-paper-dialog #confirm-button:not(.goodTube_clicked)").forEach((t=>{t.classList.add("goodTube_clicked"),t.click(),setTimeout((function(){t.classList.remove("goodTube_clicked")}),1e3)})),document.querySelectorAll("#description a, ytd-comments .yt-core-attributed-string a, ytm-expandable-video-description-body-renderer a, .comment-content a").forEach((t=>{!t.classList.contains("goodTube_timestampLink")&&t.getAttribute("href")&&-1!==t.getAttribute("href").indexOf(Mt.v)&&-1!==t.getAttribute("href").indexOf("t=")&&(t.classList.add("goodTube_timestampLink"),t.addEventListener("click",(function(){let e=t.getAttribute("href").split("t=");if(void 0!==e[1]){let t=e[1].replace("s","");G(Ct,t)}})))}));let t=Ct;if(g>=y.length&<){let e=qt;e&&(e=e.split("#")[0]);let o=window.location.href.split("#")[0];if(o&&(o=o.split("#")[0]),e!==o){if(Mt=r(),void 0!==Mt.v){Rt&&function(t){d(t.closest("#goodTube_player_wrapper1"))}(t),n&&console.log("\n-------------------------\n\n"),"true"===i("goodTube_previous")?(st.pop(),a("goodTube_previous","false")):st.push(window.location.href),f=0,b=0;let e=Et,o=!1;void 0!==Mt.list&&(o=Mt.list),"automatic"===i("goodTube_api_withauto")&&(o&&e===o?O>0&&O--:O=0,B("automatic",!1)),n&&console.log("[GoodTube] Loading video data from "+Jt+"..."),Kt(),H(t),fetch("https://api.counterapi.dev/v1/goodtube/videos/up/")}else if(!x&&!w){tt(Ct),Rt&&function(t){l(t.closest("#goodTube_player_wrapper1"))}(t),st=[];for(let t in v)v.hasOwnProperty(t)&&clearTimeout(v[t])}Et=void 0!==Mt.list&&Mt.list,qt=window.location.href}}}!function(){-1!==window.location.href.indexOf("m.youtube")&&(Rt=!0);let t=i("goodTube_api_withauto");t&&Ft.forEach((e=>{e.url===t&&(Ut=e.type,Vt=e.proxy,Nt=e.url,Jt=e.name)})),window.addEventListener("beforeunload",(t=>{a("goodTube_lastDownloadTimeSeconds",(new Date).getTime()/1e3)})),setInterval(u,1),setInterval($t,1),setInterval(At,100),setInterval(Lt,100),setInterval(nt,100),setInterval(rt,100),function(){let t=document.createElement("style");t.textContent="\n\t\t\tytd-shelf-renderer,\n\t\t\tytd-reel-shelf-renderer,\n\t\t\tytd-merch-shelf-renderer,\n\t\t\tytd-action-companion-ad-renderer,\n\t\t\tytd-display-ad-renderer,\n\t\t\tytd-rich-section-renderer,\n\t\t\tytd-video-masthead-ad-advertiser-info-renderer,\n\t\t\tytd-video-masthead-ad-primary-video-renderer,\n\t\t\tytd-in-feed-ad-layout-renderer,\n\t\t\tytd-ad-slot-renderer,\n\t\t\tytd-statement-banner-renderer,\n\t\t\tytd-banner-promo-renderer-background\n\t\t\tytd-ad-slot-renderer,\n\t\t\tytd-in-feed-ad-layout-renderer,\n\t\t\tytd-engagement-panel-section-list-renderer:not(.ytd-popup-container),\n\t\t\tytd-compact-video-renderer:has(.goodTube_hidden),\n\t\t\tytd-rich-item-renderer:has(> #content > ytd-ad-slot-renderer)\n\t\t\t.ytd-video-masthead-ad-v3-renderer,\n\t\t\tdiv#root.style-scope.ytd-display-ad-renderer.yt-simple-endpoint,\n\t\t\tdiv#sparkles-container.style-scope.ytd-promoted-sparkles-web-renderer,\n\t\t\tdiv#main-container.style-scope.ytd-promoted-video-renderer,\n\t\t\tdiv#player-ads.style-scope.ytd-watch-flexy,\n\n\t\t\tytm-rich-shelf-renderer,\n\t\t\tytm-shelf-renderer,\n\t\t\tytm-button-renderer.icon-avatar_logged_out,\n\t\t\tytm-companion-slot,\n\t\t\tytm-shelf-renderer,\n\t\t\tytm-reel-shelf-renderer,\n\t\t\tytm-merch-shelf-renderer,\n\t\t\tytm-action-companion-ad-renderer,\n\t\t\tytm-display-ad-renderer,\n\t\t\tytm-rich-section-renderer,\n\t\t\tytm-video-masthead-ad-advertiser-info-renderer,\n\t\t\tytm-video-masthead-ad-primary-video-renderer,\n\t\t\tytm-in-feed-ad-layout-renderer,\n\t\t\tytm-ad-slot-renderer,\n\t\t\tytm-statement-banner-renderer,\n\t\t\tytm-banner-promo-renderer-background\n\t\t\tytm-ad-slot-renderer,\n\t\t\tytm-in-feed-ad-layout-renderer,\n\t\t\tytm-compact-video-renderer:has(.goodTube_hidden),\n\t\t\tytm-rich-item-renderer:has(> #content > ytm-ad-slot-renderer)\n\t\t\t.ytm-video-masthead-ad-v3-renderer,\n\t\t\tdiv#root.style-scope.ytm-display-ad-renderer.yt-simple-endpoint,\n\t\t\tdiv#sparkles-container.style-scope.ytm-promoted-sparkles-web-renderer,\n\t\t\tdiv#main-container.style-scope.ytm-promoted-video-renderer,\n\t\t\tdiv#player-ads.style-scope.ytm-watch-flexy,\n\t\t\tytm-pivot-bar-item-renderer:has(> .pivot-shorts),\n\t\t\tytd-compact-movie-renderer,\n\n\t\t\tyt-about-this-ad-renderer,\n\t\t\tmasthead-ad,\n\t\t\tad-slot-renderer,\n\t\t\tyt-mealbar-promo-renderer,\n\t\t\tstatement-banner-style-type-compact,\n\t\t\tytm-promoted-sparkles-web-renderer,\n\t\t\ttp-yt-iron-overlay-backdrop,\n\t\t\t#masthead-ad\n\t\t\t {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.style-scope[page-subtype='channels'] ytd-shelf-renderer,\n\t\t\t.style-scope[page-subtype='channels'] ytm-shelf-renderer {\n\t\t\t\tdisplay: block !important;\n\t\t\t}\n\t\t",document.head.appendChild(t),n&&console.log("[GoodTube] Ads removed")}(),function(){let t=document.createElement("style");t.textContent="\n\t\t\t.goodTube_hidden {\n\t\t\t\tposition: fixed !important;\n\t\t\t\ttop: -9999px !important;\n\t\t\t\tleft: -9999px !important;\n\t\t\t\ttransform: scale(0) !important;\n\t\t\t\tpointer-events: none !important;\n\t\t\t}\n\n\t\t\t.goodTube_hiddenPlayer {\n\t\t\t\tposition: absolute !important;\n\t\t\t\ttransform: scale(0) !important;\n\t\t\t\tpointer-events: none !important;\n\t\t\t}\n\t\t",document.head.appendChild(t)}(),u(),z(),Q(),i("goodTube_unique_new2")||(fetch("https://api.counterapi.dev/v1/goodtube/users/up/"),a("goodTube_unique_new2","true"))}()}(); +!function(){"use strict";let t="https://raw.githubusercontent.com/goodtube4u/GoodTube/main",e=500,o=3,n=!0;function r(){let t={};return document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g,(function(){function e(t){return decodeURIComponent(t.split("+").join(" "))}t[e(arguments[1])]=e(arguments[2])})),t}function i(t,e){document.cookie=t+"="+encodeURIComponent(e)+"; max-age=34473600"}function a(t){let e=document.cookie.split(";");for(let o=0;o{t.closest("#inline-player")||t.closest("#movie_player")||(t.muted=!0,t.volume=0,t.pause())}))}let p=!0,c=0;function v(){let t=document.querySelector("#movie_player video");if(t&&st&&void 0!==Mt.v){let e=Ct.currentTime;if(e===c&&parseFloat(e)>0)return;c=e,t.currentTime=e,p=!0,t.play(),t.muted=!0,t.volume=0;let o=document.querySelector("#movie_player");o&&("function"==typeof o.playVideo&&o.playVideo(),"function"==typeof o.mute&&o.mute(),"function"==typeof o.setVolume&&o.setVolume(0)),setTimeout((function(){p=!1}),10)}}let m=[],b=0,y=[t+"/js/assets.min.js",t+"/css/assets.min.css"],g=0,f=0,h=0,j=!1,T=1,_=!1,x=!1,w=!1,k=!1,S=!1,L=!1,A=!1,W=!1,q=!1,E=!1,C=!1;function M(){if(g div {\n\t\t\t\tbackground: transparent !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-play-progress {\n\t\t\t\tbackground: transparent;\n\t\t\t\tposition: static;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-play-progress::before {\n\t\t\t\tcontent: '';\n\t\t\t\tbackground: #ff0000;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tposition: static;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper .vjs-progress-control .vjs-slider .vjs-play-progress::after {\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: block;\n\t\t\t\tfloat: right;\n\t\t\t\tbackground: #ff0000;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\topacity: 0;\n\t\t\t\twidth: 13px;\n\t\t\t\theight: 13px;\n\t\t\t\tright: -7px;\n\t\t\t\ttop: -8px;\n\t\t\t\ttransition: opacity .1s linear, top .1s linear;\n\t\t\t\tposition: relative;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper .vjs-progress-control:hover .vjs-slider .vjs-play-progress::after {\n\t\t\t\topacity: 1;\n\t\t\t\ttop: -9px;\n\t\t\t}\n\n\n\t\t\t/* Without chapters */\n\t\t\t#goodTube_playerWrapper:not(.goodTube_hasChapters) .vjs-progress-control::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 3px;\n\t\t\t\tleft: 8px;\n\t\t\t\tright: 8px;\n\t\t\t\theight: 3px;\n\t\t\t\tbackground: rgba(255, 255, 255, .2);\n\t\t\t\ttransition: height .1s linear, bottom .1s linear;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper:not(.goodTube_hasChapters) .vjs-progress-control:hover::before {\n\t\t\t\theight: 5px;\n\t\t\t\tbottom: 2px;\n\t\t\t}\n\n\n\t\t\t/* With chapters */\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 8px;\n\t\t\t\tright: 8px;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter {\n\t\t\t\theight: 100%;\n\t\t\t\tposition: absolute;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter::before {\n\t\t\t\tcontent: '';\n\t\t\t\tbackground: rgba(255, 255, 255, .2);\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 2px;\n\t\t\t\tbottom: 3px;\n\t\t\t\theight: 3px;\n\t\t\t\ttransition: height .1s linear, bottom .1s linear, background .1s linear;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter.goodTube_redChapter::before {\n\t\t\t\tbackground: #ff0000 !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_chapters .goodTube_chapter:last-child::before {\n\t\t\t\tright: 0;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control:hover .goodTube_chapters .goodTube_chapter::before {\n\t\t\t\theight: 5px;\n\t\t\t\tbottom: 2px;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters:not(.goodTube_mobile) .vjs-progress-control .goodTube_chapters .goodTube_chapter:hover::before {\n\t\t\t\theight: 9px;\n\t\t\t\tbottom: 0;\n\t\t\t\tbackground: rgba(255, 255, 255, .4);\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_markers {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_marker {\n\t\t\t\twidth: 2px;\n\t\t\t\theight: 100%;\n\t\t\t\tposition: absolute;\n\t\t\t\tbackground: rgba(0, 0, 0, .2);\n\t\t\t\tmargin-left: -2px;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_marker.goodTube_showMarker {\n\t\t\t\tbackground: rgba(0, 0, 0, .6);\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .goodTube_marker:last-child {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper .vjs-progress-control .vjs-mouse-display {\n\t\t\t\tbackground: transparent;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_hasChapters .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip::before {\n\t\t\t\tcontent: attr(chapter-title);\n\t\t\t\tdisplay: block;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\tmargin-bottom: 4px;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper .vjs-progress-control .goodTube_hoverBar {\n\t\t\t\tbackground: rgba(255, 255, 255, .4);\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 3px;\n\t\t\t\tleft: 8px;\n\t\t\t\theight: 3px;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: height .1s linear, bottom .1s linear, opacity .1s linear;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper .vjs-progress-control:hover .goodTube_hoverBar {\n\t\t\t\theight: 5px;\n\t\t\t\tbottom: 2px;\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .vjs-time-control .vjs-duration-display {\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .vjs-time-control .vjs-duration-display::after {\n\t\t\t\tcontent: attr(chapter-title);\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tmargin-left: 3px;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .vjs-progress-control .vjs-slider,\n\t\t\t#goodTube_playerWrapper.goodTube_mobile:not(.goodTube_hasChapters) .vjs-progress-control::before,\n\t\t\t#goodTube_playerWrapper.goodTube_mobile.goodTube_hasChapters .vjs-progress-control .goodTube_chapters,\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .vjs-progress-control .goodTube_hoverBar {\n\t\t\t\tleft: 16px;\n\t\t\t\tright: 16px;\n\t\t\t}\n\n\n\t\t\t/* Audio only view */\n\t\t\t#goodTube_playerWrapper.goodTube_audio {\n\t\t\t\tbackground: #000000;\n\t\t\t\tposition: relative;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_audio .video-js::after {\n\t\t\t\tcontent: '\\f107';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tfont-family: VideoJS;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-style: normal;\n\t\t\t\tfont-size: 148px;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t@media (max-width: 768px) {\n\t\t\t\t#goodTube_playerWrapper.goodTube_audio .video-js::after {\n\t\t\t\t\tfont-size: 100px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile #goodTube_playerWrapper.goodTube_audio .video-js::after {\n\t\t\t\tfont-size: 100px;\n\t\t\t}\n\n\t\t\t/* Double tap or tap and hold elements for seeking on mobile */\n\t\t\t#goodTube_seekBackwards {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tbottom: 48px;\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 25%;\n\t\t\t}\n\n\t\t\t#goodTube_seekForwards {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 48px;\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 25%;\n\t\t\t}\n\n\t\t\t/* Desktop */\n\t\t\t#goodTube_playerWrapper {\n\t\t\t\tborder-radius: 12px;\n\t\t\t\tbackground: #ffffff;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tz-index: 999;\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t/* Mobile */\n\t\t\t#goodTube_playerWrapper.goodTube_mobile {\n\t\t\t\tposition: fixed;\n\t\t\t\tbackground: #000000;\n\t\t\t\tborder-radius: 0;\n\t\t\t\tz-index: 2;\n\t\t\t}\n\n\t\t\t/* Theater mode */\n\t\t\t#goodTube_playerWrapper.goodTube_theater {\n\t\t\t\tbackground: #000000;\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\n\t\t\t/* Miniplayer */\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer {\n\t\t\t\tz-index: 999 !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer .video-js {\n\t\t\t\tposition: fixed;\n\t\t\t\tbottom: 12px;\n\t\t\t\tright: 12px;\n\t\t\t\twidth: 400px;\n\t\t\t\tmax-width: calc(100% - 24px);\n\t\t\t\tmin-height: 0;\n\t\t\t\tpadding-top: 0;\n\t\t\t\tz-index: 999;\n\t\t\t\theight: auto;\n\t\t\t\tleft: auto;\n\t\t\t\taspect-ratio: 16 / 9;\n\t\t\t\ttop: auto;\n\t\t\t\toverflow: hidden;\n\t\t\t\tbackground: #000000;\n\t\t\t\tborder-radius: 12px;\n\t\t\t}\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer .video-js::before {\n\t\t\t\tcontent: none !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer.goodTube_mobile .video-js {\n\t\t\t\tbottom: 60px;\n\t\t\t}\n\n\t\t\tytd-watch-flexy.goodTube_miniplayer {\n\t\t\t\tdisplay: block !important;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tposition: fixed;\n\t\t\t\tz-index: 999;\n\t\t\t\ttop: -9999px;\n\t\t\t\tleft: -9999px;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-source-button,\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-autoplay-button,\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-miniplayer-button,\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-theater-button {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton {\n\t\t\t\tfont-family: VideoJS;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-style: normal;\n\t\t\t\tcursor: pointer;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\twidth: 48px;\n\t\t\t\theight: 48px;\n\t\t\t\tline-height: 48px;\n\t\t\t\ttext-align: center;\n\t\t\t\tz-index: 999;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .2s linear;\n\t\t\t}\n\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::after {\n\t\t\t\tcontent: 'Close';\n\t\t\t\tright: 12px;\n\t\t\t}\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::after {\n\t\t\t\tcontent: 'Expand';\n\t\t\t\tleft: 12px;\n\t\t\t}\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::after,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::after {\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: -24px;\n\t\t\t\tbackground: rgba(0, 0, 0, .75);\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tfont-weight: 700;\n\t\t\t\tpadding: 8px;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .1s;\n\t\t\t\tpointer-events: none;\n\t\t\t\ttext-shadow: none !important;\n\t\t\t\tz-index: 1;\n\t\t\t\tfont-family: 'MS Shell Dlg 2', sans-serif;\n\t\t\t\tline-height: initial;\n\t\t\t}\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton:hover::after,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton:hover::after {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton {\n\t\t\t\tright: 0;\n\t\t\t\tfont-size: 24px;\n\t\t\t}\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_closeButton::before {\n\t\t\t\tcontent: \"\\f119\";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton {\n\t\t\t\tleft: 0;\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js #goodTube_miniplayer_expandButton::before {\n\t\t\t\tcontent: \"\\f128\";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t}\n\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-paused:not(.vjs-user-inactive) #goodTube_miniplayer_expandButton,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-user-active #goodTube_miniplayer_expandButton,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-paused:not(.vjs-user-inactive) #goodTube_miniplayer_closeButton,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-user-active #goodTube_miniplayer_closeButton {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\t/* Mobile */\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile {\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control.vjs-play-control,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-control.vjs-play-control {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc(50% - 48px);\n\t\t\t\tleft: calc(50% - 32px);\n\t\t\t\twidth: 64px;\n\t\t\t\theight: 64px;\n\t\t\t\tbackground: rgba(0, 0, 0, .3);\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tmax-width: 999px !important;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-play-control .vjs-icon-placeholder::before,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-play-control .vjs-icon-placeholder::before {\n\t\t\t\tfont-size: 44px !important;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-prev-button,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-prev-button {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc(50% - 40px);\n\t\t\t\tleft: calc(50% - 104px);\n\t\t\t\twidth: 48px;\n\t\t\t\theight: 48px;\n\t\t\t\tbackground: rgba(0, 0, 0, .3);\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tmax-width: 999px !important;\n\t\t\t}\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-prev-button .vjs-icon-placeholder::before,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-prev-button .vjs-icon-placeholder::before {\n\t\t\t\tfont-size: 32px !important;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-next-button,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-next-button {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc(50% - 40px);\n\t\t\t\tleft: calc(50% + 56px);\n\t\t\t\twidth: 48px;\n\t\t\t\theight: 48px;\n\t\t\t\tbackground: rgba(0, 0, 0, .3);\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tmax-width: 999px !important;\n\t\t\t}\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-next-button .vjs-icon-placeholder::before,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-next-button .vjs-icon-placeholder::before {\n\t\t\t\tfont-size: 32px !important;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control-bar,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-control-bar {\n\t\t\t\tz-index: 1;\n\t\t\t\tposition: static;\n\t\t\t\tmargin-top: auto;\n\t\t\t\tjustify-content: space-around;\n\t\t\t}\n\n\t\t\tytd-watch-flexy:not([theater]) #primary {\n\t\t\t\tmin-width: 721px !important;\n\t\t\t}\n\n\t\t\t@media (max-width: 1100px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #primary {\n\t\t\t\t\tmin-width: 636px !important;\n\t\t\t\t}\n\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: .88;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 1016px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #primary {\n\t\t\t\t\tmin-width: 0 !important;\n\t\t\t\t}\n\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 786px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: .9;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 715px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: .85;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (max-width: 680px) {\n\t\t\t\tytd-watch-flexy:not([theater]) #goodTube_playerWrapper:not(.goodTube_mobile) .video-js .vjs-control-bar .vjs-button {\n\t\t\t\t\tzoom: .8;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js {\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-source-button,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-source-button {\n\t\t\t\tmargin-left: 0 !important;\n\t\t\t}\n\n\t\t\t@media (max-width: 480px) {\n\t\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-source-button .vjs-menu,\n\t\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-source-button .vjs-menu {\n\t\t\t\t\tleft: 60px !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js .vjs-loading-spinner,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-loading-spinner {\n\t\t\t\ttop: calc(50% - 16px);\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper .video-js.vjs-loading {\n\t\t\t\tbackground: #000000;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js::before,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js::before {\n\t\t\t\tcontent: '';\n\t\t\t\tbackground: transparent;\n\t\t\t\ttransition: background .2s ease-in-out;\n\t\t\t\tpointer-events: none;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js.vjs-paused::before,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-paused::before,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js.vjs-user-active::before,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-user-active::before {\n\t\t\t\tbackground: rgba(0,0,0,.6);\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper.goodTube_mobile .video-js.vjs-user-inactive:not(.vjs-paused) .vjs-control-bar,\n\t\t\thtml body #goodTube_playerWrapper.goodTube_miniplayer .video-js.vjs-user-inactive:not(.vjs-paused) .vjs-control-bar {\n\t\t\t\tvisibility: visible;\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-theater-button,\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-miniplayer-button {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t/* Video */\n\t\t\t#goodTube_player {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tbackground: transparent;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile #goodTube_player,\n\t\t\t#goodTube_player.vjs-loading {\n\t\t\t\tbackground: #000000;\n\t\t\t}\n\n\t\t\t#goodTube_player:focus {\n\t\t\t\toutline: 0;\n\t\t\t}\n\n\t\t\t/* Error */\n\t\t\t#goodTube_error {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 40px;\n\t\t\t\tright: 40px;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\ttext-align: center;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tfont-size: 20px;\n\t\t\t\tpadding: 16px;\n\t\t\t\tbackground: #000000;\n\t\t\t\tborder-radius: 8px;\n\t\t\t}\n\n\t\t\t#goodTube_error small {\n\t\t\t\tpadding-top: 8px;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t",document.head.appendChild(t);let l=document.createElement("div");l.id="goodTube_playerWrapper",Rt&&l.classList.add("goodTube_mobile"),Q(l),document.body.appendChild(l);let s=document.createElement("video");s.id="goodTube_player",s.classList.add("video-js"),s.controls=!0,s.setAttribute("tab-index","1"),l.appendChild(s),Ct=s,addEventListener("leavepictureinpicture",(t=>{void 0===Mt.v&&D(Ct),x=!1})),addEventListener("enterpictureinpicture",(t=>{x=!0})),function(){n&&console.log("[GoodTube] Loading player...");(function(){let t=document.createElement("style");t.textContent="\n\t\t\t.video-js {\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t.video-js *:focus {\n\t\t\t\toutline-color: transparent;\n\t\t\t\toutline-style: none;\n\t\t\t}\n\n\t\t\t.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {\n\t\t\t\ttransition: visibility .25s, opacity .25s !important;\n\t\t\t}\n\n\t\t\t.vjs-menu .vjs-menu-item-text {\n\t\t\t\ttext-transform: none !important;\n\t\t\t}\n\n\t\t\t.vjs-menu .vjs-menu-item-text:first-letter {\n\t\t\t\ttext-transform: uppercase !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-source-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-autoplay-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-quality-selector .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-prev-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-next-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-miniplayer-button .vjs-icon-placeholder,\n\t\t\t.video-js .vjs-theater-button .vjs-icon-placeholder {\n\t\t\t\tfont-family: VideoJS;\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-style: normal;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > button {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.video-js .vjs-prev-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f124\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-next-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f123\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f110\";\n\t\t\t}\n\n\n\n\t\t\t// Loading indicator for downloads\n\t\t\t.video-js .vjs-download-button {\n\t\t\t\tposition: relative;\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button .goodTube_spinner {\n\t\t\t\topacity: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t\ttransition: opacity .4s linear;\n\t\t\t}\n\t\t\t.video-js .vjs-download-button.goodTube_loading .goodTube_spinner {\n\t\t\t\topacity: 1;\n\t\t\t\ttransition: opacity .2s .2s linear;\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button .vjs-icon-placeholder:before {\n\t\t\t\topacity: 1;\n\t\t\t\ttransition: opacity .2s .2s linear;\n\t\t\t}\n\t\t\t.video-js .vjs-download-button.goodTube_loading .vjs-icon-placeholder:before {\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .2s linear;\n\t\t\t}\n\n\t\t\t.goodTube_spinner {\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t.goodTube_spinner,\n\t\t\t.goodTube_spinner div {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\t\t\t.goodTube_spinner {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tposition: relative;\n\t\t\t\twidth: 36px;\n\t\t\t\theight: 36px;\n\t\t\t}\n\t\t\t.goodTube_spinner div {\n\t\t\t\tposition: absolute;\n\t\t\t\tborder: 2px solid currentColor;\n\t\t\t\topacity: 1;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tanimation: goodTube_spinner 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;\n\t\t\t}\n\t\t\t.goodTube_spinner div:nth-child(2) {\n\t\t\t\tanimation-delay: -0.5s;\n\t\t\t}\n\t\t\t@keyframes goodTube_spinner {\n\t\t\t\t0% {\n\t\t\t\t\ttop: 16px;\n\t\t\t\t\tleft: 16px;\n\t\t\t\t\twidth: 4px;\n\t\t\t\t\theight: 4px;\n\t\t\t\t\topacity: .5;\n\t\t\t\t}\n\t\t\t\t4.9% {\n\t\t\t\t\ttop: 16px;\n\t\t\t\t\tleft: 16px;\n\t\t\t\t\twidth: 4px;\n\t\t\t\t\theight: 4px;\n\t\t\t\t\topacity: .5;\n\t\t\t\t}\n\t\t\t\t5% {\n\t\t\t\t\ttop: 16px;\n\t\t\t\t\tleft: 16px;\n\t\t\t\t\twidth: 4px;\n\t\t\t\t\theight: 4px;\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\t\t\t\t100% {\n\t\t\t\t\ttop: 0;\n\t\t\t\t\tleft: 0;\n\t\t\t\t\twidth: 36px;\n\t\t\t\t\theight: 36px;\n\t\t\t\t\topacity: 0;\n\t\t\t\t}\n\t\t\t}\n\n\n\n\t\t\t.video-js .vjs-source-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f10e\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-autoplay-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f102\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-quality-selector .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f114\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-source-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f10e\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-miniplayer-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f127\";\n\t\t\t}\n\n\t\t\t.video-js .vjs-theater-button .vjs-icon-placeholder:before {\n\t\t\t\tcontent: \"\\f115\";\n\t\t\t}\n\n\t\t\t/* Youtube player style */\n\t\t\t.vjs-slider-horizontal .vjs-volume-level:before {\n\t\t\t\tfont-size: 14px !important;\n\t\t\t}\n\n\t\t\t.vjs-volume-control {\n\t\t\t\twidth: auto !important;\n\t\t\t\tmargin-right: 0 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel.vjs-volume-panel-horizontal {\n\t\t\t\ttransition: width .25s !important;\n\t\t\t\tz-index: 999;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal {\n\t\t\t\ttransition: opacity .25s, width 1s !important;\n\t\t\t\tmin-width: 0 !important;\n\t\t\t\tpadding-right: 8px !important;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel {\n\t\t\t\tmargin-right: 6px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel.vjs-hover,\n\t\t\t.video-js .vjs-volume-panel.vjs-slider-active {\n\t\t\t\tmargin-right: 16px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal {\n\t\t\t\tpointer-events: all;\n\t\t\t}\n\n\t\t\t.vjs-volume-bar.vjs-slider-horizontal {\n\t\t\t\tmin-width: 52px !important;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-control-bar > .vjs-spacer {\n\t\t\t\tflex: 1;\n\t\t\t\torder: 2;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-play-progress .vjs-time-tooltip {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-play-progress::before {\n\t\t\t\tcolor: red;\n\t\t\t\tfont-size: 0.85em;\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-progress-holder:hover .vjs-play-progress::before {\n\t\t\t\tdisplay: unset;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-control-bar {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: row;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-big-play-button {\n\t\t\t\ttop: 50%;\n\t\t\t\tleft: 50%;\n\t\t\t\tmargin-top: -0.81666em;\n\t\t\t\tmargin-left: -1.5em;\n\t\t\t}\n\n\t\t\t.video-js.player-style-youtube .vjs-menu-button-popup .vjs-menu {\n\t\t\t\tmargin-bottom: 2em;\n\t\t\t}\n\n\t\t\t.video-js ul.vjs-menu-content::-webkit-scrollbar {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-user-inactive:not(.vjs-paused) {\n\t\t\t\tcursor: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-text-track-display > div > div > div {\n\t\t\t\tborder-radius: 0 !important;\n\t\t\t\tpadding: 4px 8px !important;\n\t\t\t\tline-height: calc(1.2em + 7px) !important;\n\t\t\t\twhite-space: break-spaces !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-play-control {\n\t\t\t\torder: 0;\n\t\t\t}\n\n\t\t\t.video-js .vjs-prev-button {\n\t\t\t\torder: 1;\n\t\t\t}\n\n\t\t\t.video-js .vjs-next-button {\n\t\t\t\torder: 2;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel {\n\t\t\t\torder: 3;\n\t\t\t}\n\n\t\t\t/* Time control */\n\t\t\thtml body #goodTube_playerWrapper .video-js .vjs-time-control {\n\t\t\t\tfont-family: \"YouTube Noto\", Roboto, Arial, Helvetica, sans-serif !important;\n\t\t\t\torder: 4;\n\t\t\t\tfont-size: 13.0691px !important;\n\t\t\t\tpadding-top: 4px !important;\n\t\t\t\tcolor: rgb(221, 221, 221) !important;\n\t\t\t\ttext-shadow: 0 0 2px rgba(0, 0, 0, .5) !important;\n\t\t\t\tmin-width: 0 !important;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\thtml body #goodTube_playerWrapper .video-js .vjs-time-control * {\n\t\t\t\tmin-width: 0 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-current-time {\n\t\t\t\tpadding-right: 4px !important;\n\t\t\t\tpadding-left: 0 !important;\n\t\t\t\tmargin-left: 0 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-duration {\n\t\t\t\tpadding-left: 4px !important;\n\t\t\t\tpadding-right: 5px !important;\n\t\t\t\tmargin-right: 0 !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-time-control {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc(100% - 98px);\n\t\t\t\tfont-weight: 500;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-current-time {\n\t\t\t\tcolor: #ffffff !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-source-button {\n\t\t\t\tmargin-left: auto !important;\n\t\t\t\torder: 5;\n\t\t\t}\n\n\t\t\t.video-js .vjs-download-button {\n\t\t\t\torder: 6;\n\t\t\t}\n\n\t\t\t.video-js .vjs-autoplay-button {\n\t\t\t\torder: 7;\n\t\t\t}\n\n\t\t\t.video-js .vjs-playback-rate {\n\t\t\t\torder: 8;\n\t\t\t}\n\n\t\t\t.video-js .vjs-subs-caps-button {\n\t\t\t\torder: 9;\n\t\t\t}\n\n\t\t\t.video-js .vjs-quality-selector {\n\t\t\t\torder: 10;\n\t\t\t}\n\n\t\t\t.video-js .vjs-miniplayer-button {\n\t\t\t\torder: 11;\n\t\t\t}\n\n\t\t\t.video-js .vjs-theater-button {\n\t\t\t\torder: 12;\n\t\t\t}\n\n\t\t\t.video-js .vjs-fullscreen-control {\n\t\t\t\torder: 13;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: row;\n\t\t\t\tscrollbar-width: none;\n\t\t\t\theight: 48px !important;\n\t\t\t\tbackground: transparent !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper:not(.goodTube_mobile) .video-js::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\theight: 25%;\n\t\t\t\tbackground: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD1CAYAAACRFp+GAAAAAXNSR0IArs4c6QAAASpJREFUOE9lyOlHGAAcxvHuY63Wta3WsdWqdaz7vtfduoyZSBLJmCSSSCaSSBJJJIkk0h+Z7/Pm59Hz4sP3SUh4tUSeIIkMkkmR4qSSIs1JJ4MMUmQ6b0iR5bwlg2xS5DjvSJHr5JFBPikKnEIyeE+KD85HUhQ5xWTwiRQlTikpypxyMvhMii9OBSkqna9kUEWKaqeGDL6RotapI0W900AG30nR6DSRotlpIYNWUrQ57aTocDrJoIsU3U4PKXqdPjLoJ8WAM0gGQ6QYdn6QYsQZJYMxUow7E6SYdKbIYJoUP50ZUsw6c2QwTy7AL/gNf2ARlmAZVmAV1mAd/sI/2IBN2IJt2IFd2IN9+A8HcAhHcAwncApncA4XcAlXcA03cAt3cA8P8AhP8PwCakcyvVVFagcAAAAASUVORK5CYII=\");\n\t\t\t\tbackground-size: cover;\n\t\t\t\tbackground-repeat: repeat-x;\n\t\t\t\tbackground-position: bottom;\n\t\t\t\tbackground-size: contain;\n\t\t\t\tpointer-events: none;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .1s linear;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper:not(.goodTube_mobile) .video-js.vjs-paused::before,\n\t\t\t#goodTube_playerWrapper:not(.goodTube_mobile) .video-js.vjs-user-active::before,\n\t\t\t#goodTube_playerWrapper:not(.goodTube_mobile) .video-js:hover::before {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control-bar::before {\n\t\t\t\tdisplay: none;\n\t\t\t\tcontent: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu .vjs-icon-placeholder {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu .vjs-menu-content > * {\n\t\t\t\tpadding-top: 8px !important;\n\t\t\t\tpadding-bottom: 8px !important;\n\t\t\t\tpadding-left: 12px !important;\n\t\t\t\tpadding-right: 12px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu {\n\t\t\t\theight: auto !important;\n\t\t\t\tbottom: 48px !important;\n\t\t\t\tpadding-bottom: 0 !important;\n\t\t\t\tmargin-bottom: 0 !important;\n\t\t\t\twidth: auto !important;\n\t\t\t\ttransform: translateX(-50%) !important;\n\t\t\t\tleft: 50% !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu .vjs-menu-content {\n\t\t\t\tposition: static !important;\n\t\t\t\tborder-radius: 4px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-control {\n\t\t\t\theight: 100% !important;\n\t\t\t\tdisplay: flex !important;\n\t\t\t\talign-items: center !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-vtt-thumbnail-display {\n\t\t\t\tbottom: calc(100% + 35px) !important;\n\t\t\t\tborder-radius: 12px !important;\n\t\t\t\toverflow: hidden !important;\n\t\t\t\tborder: 2px solid #ffffff !important;\n\t\t\t\tbackground-color: #000000 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar .vjs-icon-placeholder {\n\t\t\t\theight: 100%;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control {\n\t\t\t\tmin-width: 48px !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper:not(goodTube_mobile) .video-js .vjs-control-bar > .vjs-play-control {\n\t\t\t\tpadding-left: 8px;\n\t\t\t\tbox-sizing: content-box;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control:not(.vjs-progress-control) {\n\t\t\t\tmin-width: 0 !important;\n\t\t\t\tflex-grow: 1 !important;\n\t\t\t\tmax-width: 9999px !important;\n\t\t\t\tpadding-left: 0 !important;\n\t\t\t\tpadding-right: 0 !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control.vjs-volume-panel,\n\t\t\t#goodTube_playerWrapper.goodTube_miniplayer .video-js .vjs-control.vjs-volume-panel {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar .vjs-icon-placeholder::before {\n\t\t\t\theight: auto;\n\t\t\t\ttop: 50%;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tfont-size: 24px;\n\t\t\t\tline-height: 100%;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar *:not(.vjs-time-control) {\n\t\t\t\ttext-shadow: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-vtt-thumbnail-time {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-playback-rate .vjs-playback-rate-value {\n\t\t\t\tline-height: 48px;\n\t\t\t\tfont-size: 14px !important;\n\t\t\t\tfont-weight: 700;\n\t\t\t}\n\n\t\t\t.video-js .vjs-play-progress .vjs-time-tooltip {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-mouse-display .vjs-time-tooltip {\n\t\t\t\tbackground: none !important;\n\t\t\t\tfont-size: 12px !important;\n\t\t\t\ttop: -50px !important;\n\t\t\t\ttext-shadow: 0 0 10px rgba(0, 0, 0, .5) !important;\n\t\t\t\tfont-family: \"YouTube Noto\", Roboto, Arial, Helvetica, sans-serif !important;\n\t\t\t\tfont-weight: 500 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu-content {\n\t\t\t\tmax-height: calc(var(--ytd-watch-flexy-panel-max-height) - 72px) !important;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-menu-content {\n\t\t\t\tmax-height: 156px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar::-webkit-scrollbar {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js .vjs-icon-cog {\n\t\t\t\tfont-size: 18px;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar,\n\t\t\t.video-js .vjs-menu-button-popup .vjs-menu .vjs-menu-content {\n\t\t\t\tbackground-color: rgba(35, 35, 35, 0.75);\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li.vjs-menu-item:not(.vjs-selected) {\n\t\t\t\tbackground-color: transparent !important;\n\t\t\t\tcolor: #ffffff !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li.vjs-menu-item:not(.vjs-selected):hover {\n\t\t\t\tbackground-color: rgba(255, 255, 255, 0.75) !important;\n\t\t\t\tcolor: rgba(49, 49, 51, 0.75) !important;\n\t\t\t\tcolor: #ffffff !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li.vjs-selected,\n\t\t\t.video-js .vjs-menu li.vjs-selected:hover {\n\t\t\t\tbackground-color: #ffffff !important;\n\t\t\t\tcolor: #000000 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li {\n\t\t\t\twhite-space: nowrap !important;\n\t\t\t\tfont-size: 12px !important;\n\t\t\t\tfont-weight: 700 !important;\n\t\t\t\tmax-width: 9999px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-subs-caps-button .vjs-menu li {\n\t\t\t\twhite-space: normal !important;\n\t\t\t\tmin-width: 128px !important;\n\t\t\t}\n\n\t\t\t/* Progress Bar */\n\t\t\t.video-js .vjs-slider {\n\t\t\t\tbackground-color: rgba(15, 15, 15, 0.5);\n\t\t\t}\n\n\t\t\t.video-js .vjs-load-progress,\n\t\t\t.video-js .vjs-load-progress div {\n\t\t\t\tbackground: rgba(87, 87, 88, 1);\n\t\t\t}\n\n\t\t\t.video-js .vjs-slider:hover,\n\t\t\t.video-js button:hover {\n\t\t\t\tcolor: #ffffff;\n\t\t\t}\n\n\t\t\t/* Overlay */\n\t\t\t.video-js .vjs-overlay {\n\t\t\t\tbackground-color: rgba(35, 35, 35, 0.75) !important;\n\t\t\t}\n\t\t\t.video-js .vjs-overlay * {\n\t\t\t\tcolor: rgba(255, 255, 255, 1) !important;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\n\t\t\t/* ProgressBar marker */\n\t\t\t.video-js .vjs-marker {\n\t\t\t\tbackground-color: rgba(255, 255, 255, 1);\n\t\t\t\tz-index: 0;\n\t\t\t}\n\n\t\t\t/* Big \"Play\" Button */\n\t\t\t.video-js .vjs-big-play-button {\n\t\t\t\tbackground-color: rgba(35, 35, 35, 0.5);\n\t\t\t}\n\n\t\t\t.video-js:hover .vjs-big-play-button {\n\t\t\t\tbackground-color: rgba(35, 35, 35, 0.75);\n\t\t\t}\n\n\t\t\t.video-js .vjs-current-time,\n\t\t\t.video-js .vjs-time-divider,\n\t\t\t.video-js .vjs-duration {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.video-js .vjs-time-divider {\n\t\t\t\tmin-width: 0px;\n\t\t\t\tpadding-left: 0px;\n\t\t\t\tpadding-right: 0px;\n\t\t\t}\n\n\t\t\t.video-js .vjs-poster {\n\t\t\t\tbackground-size: cover;\n\t\t\t\tobject-fit: cover;\n\t\t\t}\n\n\t\t\t.video-js .player-dimensions.vjs-fluid {\n\t\t\t\tpadding-top: 82vh;\n\t\t\t}\n\n\t\t\tvideo.video-js {\n\t\t\t\tposition: absolute;\n\t\t\t\theight: 100%;\n\t\t\t}\n\n\t\t\t.video-js .mobile-operations-bar {\n\t\t\t\tdisplay: flex;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tright: 1px !important;\n\t\t\t\tleft: initial !important;\n\t\t\t\twidth: initial !important;\n\t\t\t}\n\n\t\t\t.video-js .mobile-operations-bar ul {\n\t\t\t\tposition: absolute !important;\n\t\t\t\tbottom: unset !important;\n\t\t\t\ttop: 1.5em;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu-button-popup .vjs-menu {\n\t\t\t\tborder: 0 !important;\n\t\t\t\tpadding-bottom: 12px !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu li.vjs-menu-item:not(.vjs-selected):hover,\n\t\t\t.video-js .vjs-menu li.vjs-menu-item.vjs-auto-selected {\n\t\t\t\tbackground-color: rgba(255, 255, 255, .2) !important;\n\t\t\t\tcolor: #ffffff !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu * {\n\t\t\t\tborder: 0 !important;\n\t\t\t}\n\n\t\t\t/* Tooltips\n\t\t\t------------------------------------------------------------------------------------------ */\n\t\t\t.video-js .vjs-control-bar > .vjs-prev-button::before {\n\t\t\t\tcontent: 'Previous video';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-next-button::before {\n\t\t\t\tcontent: 'Next video';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar .vjs-mute-control:not(.vjs-vol-0)::before {\n\t\t\t\tcontent: 'Mute (m)';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar .vjs-mute-control.vjs-vol-0::before {\n\t\t\t\tcontent: 'Unmute (m)';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-playback-rate > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Playback speed';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-subs-caps-button > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Subtitles';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-quality-selector > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Quality';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-download-button > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Download';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-autoplay-button > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Autoplay';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-source-button > .vjs-menu-button::before {\n\t\t\t\tcontent: 'Video source';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-miniplayer-button::before {\n\t\t\t\tcontent: 'Miniplayer (i)';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-theater-button::before {\n\t\t\t\tcontent: 'Theater mode (t)';\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar > .vjs-fullscreen-control::before {\n\t\t\t\tcontent: 'Fullscreen (f)';\n\t\t\t\tleft: auto !important;\n\t\t\t\tright: 12px !important;\n\t\t\t\ttransform: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar button.vjs-menu-button::before,\n\t\t\t.video-js .vjs-control-bar .vjs-button:not(.vjs-menu-button)::before {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: -40px;\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tbackground: rgba(0, 0, 0, .75);\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tfont-weight: 600;\n\t\t\t\tpadding: 8px;\n\t\t\t\twhite-space: nowrap;\n\t\t\t\topacity: 0;\n\t\t\t\ttransition: opacity .1s;\n\t\t\t\tpointer-events: none;\n\t\t\t\ttext-shadow: none !important;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control-bar button.vjs-menu-button::before,\n\t\t\t#goodTube_playerWrapper.goodTube_mobile .video-js .vjs-control-bar .vjs-button:not(.vjs-menu-button)::before {\n\t\t\t\tdisplay: none !important;\n\t\t\t\tcontent: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-control-bar div.vjs-menu-button:not(.vjs-menuOpen) button.vjs-menu-button:hover::before,\n\t\t\t.video-js .vjs-control-bar .vjs-button:not(.vjs-menu-button):hover::before {\n\t\t\t\topacity: 1;\n\t\t\t}\n\n\t\t\t.video-js div.vjs-menu-button:not(.vjs-menuOpen) .vjs-menu {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js div.vjs-menu-button.vjs-menuOpen .vjs-menu {\n\t\t\t\tdisplay: block !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-menu {\n\t\t\t\tz-index: 999 !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-big-play-button {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.video-js .vjs-volume-panel,\n\t\t\t.video-js .vjs-button {\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t.video-js .vjs-button.vjs-menuOpen {\n\t\t\t\tz-index: 999;\n\t\t\t}\n\n\t\t\t.video-js .vjs-error-display .vjs-modal-dialog-content {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\t.video-js:not(.vjs-has-started) .vjs-control-bar {\n\t\t\t\tdisplay: flex !important;\n\t\t\t}\n\n\t\t\t.vjs-track-settings-controls button:hover {\n\t\t\t\tcolor: #000000 !important;\n\t\t\t}\n\t\t",document.body.appendChild(t)})(),Mt=r();const t=videojs.getComponent("MenuItem"),l=videojs.getComponent("MenuButton");class s extends l{createItems(){const e=[],{myItems:o}=this.options_;return Array.isArray(o),o.forEach((({clickHandler:o,...n})=>{const r=new t(this.player(),n);o&&(r.handleClick=o),e.push(r)})),e}buildCSSClass(){return`${super.buildCSSClass()}`}}videojs.registerComponent("DownloadButton",s),videojs.registerComponent("SourceButton",s),videojs.registerComponent("AutoplayButton",s);const d=videojs.getComponent("Button");class u extends d{handleClick(t){t.stopImmediatePropagation(),Yt()}}videojs.registerComponent("PrevButton",u);class p extends d{handleClick(t){t.stopImmediatePropagation(),Xt(!0)}}videojs.registerComponent("NextButton",p);class c extends d{handleClick(t){t.stopImmediatePropagation(),at()}}videojs.registerComponent("MiniplayerButton",c);class y extends d{handleClick(t){t.stopImmediatePropagation(),function(t){let e=!1,o=!1,n=!1;if("next"===t)e="n",o=78,n=!0;else if("prev"===t)e="p",o=80,n=!0;else if("theater"===t){e="t",o=84,n=!1;let t=document.querySelector(".ytp-size-button");if(t)return void t.click()}else{if("fullscreen"!==t)return;e="f",o=70,n=!1}let r=!1;r=new window.KeyboardEvent("focus",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("keydown",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("beforeinput",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("keypress",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("input",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("change",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r),r=new window.KeyboardEvent("keyup",{bubbles:!0,key:e,keyCode:o,shiftKey:n,charCode:0}),document.dispatchEvent(r)}("theater")}}videojs.registerComponent("TheaterButton",y);let g=[];Ht.forEach((t=>{g.push({label:t.name,clickHandler(t){t.target.closest(".vjs-menu").querySelectorAll(".vjs-selected").forEach((t=>{t.classList.remove("vjs-selected")}));let e=t.target.closest(".vjs-menu-item");e.classList.add("vjs-selected"),"automatic"===e.getAttribute("api")&&(B=0),Ct.currentTime>0&&(b=Ct.currentTime),O(e.getAttribute("api"),!0)}})})),lt=videojs("goodTube_player",{inactivityTimeout:3e3,controls:!0,autoplay:!1,preload:"auto",width:"100%",height:"100%",playbackRates:[.25,.5,1,1.25,1.5,1.75,2],userActions:{doubleClick:!1},html5:{vhs:{overrideNative:!0},hls:{overrideNative:!0}},controlBar:{children:["playToggle","volumePanel","currentTimeDisplay","timeDivider","durationDisplay","progressControl","playbackRateMenuButton","subsCapsButton","qualitySelector","fullscreenToggle"],NextButton:{className:"vjs-next-button"},PrevButton:{className:"vjs-prev-button"},AutoplayButton:{controlText:"Autoplay",className:"vjs-autoplay-button",myItems:[{label:"Autoplay off",clickHandler(){let t=event.target.closest(".vjs-menu");t.querySelector(".vjs-selected")?.classList.remove("vjs-selected"),event.target.closest(".vjs-menu-item").classList.add("vjs-selected"),i("goodTube_autoplay","off")}},{label:"Autoplay on",clickHandler(){let t=event.target.closest(".vjs-menu");t.querySelector(".vjs-selected")?.classList.remove("vjs-selected"),event.target.closest(".vjs-menu-item").classList.add("vjs-selected"),i("goodTube_autoplay","on")}}]},SourceButton:{controlText:"Video source",className:"vjs-source-button",myItems:g},DownloadButton:{controlText:"Download",className:"vjs-download-button",myItems:[{className:"goodTube_downloadPlaylist_cancel",label:"CANCEL ALL DOWNLOADS",clickHandler(){!function(){if(!confirm("Are you sure you want to cancel all downloads?"))return;zt=[];for(let t in Qt)clearTimeout(Qt[t]),delete Qt[t];Lt(!0),n&&console.log("[GoodTube] Downloads cancelled")}()}},{label:"Download video",clickHandler(){zt[Mt.v]=!0,Zt(0,"video",Mt.v)}},{label:"Download audio",clickHandler(){zt[Mt.v]=!0,Zt(0,"audio",Mt.v)}},{className:"goodTube_downloadPlaylist_video",label:"Download playlist (video)",clickHandler(){$t("video")}},{className:"goodTube_downloadPlaylist_audio",label:"Download playlist (audio)",clickHandler(){$t("audio")}}]},MiniplayerButton:{className:"vjs-miniplayer-button"},TheaterButton:{className:"vjs-theater-button"}}}),videojs.log.level("off"),videojs.hook("error",(function(){void 0!==m.reloadVideo&&clearTimeout(m.reloadVideo),m.reloadVideo=setTimeout((function(){!function(t){if(void 0===Mt.v)return;void 0!==m.reloadVideo&&clearTimeout(m.reloadVideo);if(T>o)return void kt();let e=t.src;et(t),setTimeout((function(){t.setAttribute("src",e)}),0),T++}(Ct)}),e),ot(),wt()})),lt.on("ready",(function(){st=!0;let t=document.querySelector("#goodTube_player video");t&&(t.setAttribute("playsinline",""),t.setAttribute("webkit-playsinline","")),v(),yt=lt.hlsQualitySelector();let e=document.querySelector("#goodTube_player");if(e){let t=document.createElement("div");t.id="goodTube_miniplayer_closeButton",t.onclick=function(){at()},e.appendChild(t);let o=document.createElement("div");o.id="goodTube_miniplayer_expandButton",o.onclick=function(){k!==Mt.v?window.location.href="/watch?v="+k+"&t="+parseFloat(Ct.currentTime).toFixed(0)+"s":at()},e.appendChild(o)}if(n&&console.log("[GoodTube] Player loaded"),Ct=document.querySelector("#goodTube_player video"),Rt){let t=document.createElement("div");t.id="goodTube_seekBackwards",e.append(t),t.onclick=function(){var t=(new Date).getTime()-ct;t<400&&t>0?(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"),Ct.currentTime-=10):e.classList.contains("vjs-user-active")?(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive")):(e.classList.add("vjs-user-active"),e.classList.remove("vjs-user-inactive")),ct=(new Date).getTime()};let o=document.createElement("div");o.id="goodTube_seekForwards",e.append(o),o.onclick=function(){var t=(new Date).getTime()-vt;t<400&&t>0?(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"),Ct.currentTime+=5):e.classList.contains("vjs-user-active")?(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive")):(e.classList.add("vjs-user-active"),e.classList.remove("vjs-user-inactive")),vt=(new Date).getTime()},e.addEventListener("touchstart",(function(t){mt=setTimeout((function(){e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"),_t=Ct.playbackRate,Ct.playbackRate=2,bt=!0}),1e3)})),["touchmove","touchend"].forEach((t=>{e.addEventListener(t,(function(t){mt&&clearTimeout(mt),bt&&(Ct.playbackRate=_t,bt=!1)}))}))}Rt||e.addEventListener("dblclick",(function(t){t.target.closest(".vjs-progress-control")||t.target.closest(".vjs-menu-button")||t.target.closest(".vjs-control")||document.querySelector(".vjs-fullscreen-control")?.click()})),Rt&&setInterval((function(){let t=document.querySelector(".vjs-current-time"),e=document.querySelector(".vjs-time-divider"),o=document.querySelector(".vjs-duration");if(t&&e&&o){let n=16,r=4;t.style.left=n+"px",e.style.left=n+t.offsetWidth+r+"px",o.style.left=n+t.offsetWidth+e.offsetWidth+r+r+"px"}}),100),Rt||(e.addEventListener("mouseout",(function(t){e.classList.contains("vjs-user-active")&&!e.classList.contains("vjs-paused")&&(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"))})),e.addEventListener("mouseover",(function(t){e.classList.contains("vjs-user-inactive")&&!e.classList.contains("vjs-paused")&&(e.classList.add("vjs-user-active"),e.classList.remove("vjs-user-inactive"))})),e.addEventListener("click",(function(t){setTimeout((function(){e.classList.contains("vjs-user-inactive")&&!e.classList.contains("vjs-paused")&&(e.classList.add("vjs-user-active"),e.classList.remove("vjs-user-inactive"),window.goodTube_inactive_timeout=setTimeout((function(){e.classList.contains("vjs-user-active")&&!e.classList.contains("vjs-paused")&&(e.classList.remove("vjs-user-active"),e.classList.add("vjs-user-inactive"))}),3e3))}),1)})),e.addEventListener("mousemove",(function(t){void 0!==window.goodTube_inactive_timeout&&clearTimeout(window.goodTube_inactive_timeout)}))),document.querySelectorAll("#goodTube_player button").forEach((t=>{t.setAttribute("title","")}));let o=a("goodTube_volume");o&&o==parseFloat(o)&&I(Ct,o),a("goodTube_autoplay")||i("goodTube_autoplay","on");let r=document.querySelector(".vjs-autoplay-button");if(r){r.querySelector(".vjs-menu .vjs-selected")?.classList.remove("vjs-selected");let t=r.querySelectorAll(".vjs-menu .vjs-menu-item");"on"===a("goodTube_autoplay")?t[t.length-1].classList.add("vjs-selected"):t[0].classList.add("vjs-selected")}let l=document.querySelector(".vjs-mute-control");l&&(l.onmousedown=function(){Ct.muted?lt.muted(!1):lt.muted(!0)},l.ontouchstart=function(){Ct.muted?lt.muted(!1):lt.muted(!0)});let s=document.querySelector(".vjs-play-control");s&&(s.removeEventListener("click",xt,!1),s.addEventListener("click",xt,!1)),document.onmousedown=function(){if(!event.target.closest(".vjs-menu")&&!event.target.closest(".vjs-menu-button")){document.querySelectorAll(".vjs-menuOpen").forEach((t=>{t.classList.remove("vjs-menuOpen")}))}},document.ontouchstart=function(){if(!event.target.closest(".vjs-menu")&&!event.target.closest(".vjs-menu-button")){document.querySelectorAll(".vjs-menuOpen").forEach((t=>{t.classList.remove("vjs-menuOpen")}))}};let d=document.querySelector(".vjs-control-bar .vjs-play-control");d&&(d.onclick=function(){0===Ct.currentTime&&Ct.click()},d.ontouchstart=function(){0===Ct.currentTime&&Ct.click()});let u=document.querySelectorAll(".vjs-source-button .vjs-menu .vjs-menu-item");if(u){let t=0;u.forEach((e=>{e.setAttribute("api",Ht[t].url),t++}))}if(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document){let t=document.querySelector(".vjs-download-button");t&&t.remove()}O(a("goodTube_api_withauto"),!1),wt()})),lt.on("seeking",(function(){jt=!0})),lt.on("seeked",(function(){jt=!1,v()})),lt.on("waiting",(function(){if(gt&&clearTimeout(gt),ft&&clearTimeout(ft),!(Ct.currentTime<=0)&&(jt||(ft=setTimeout((function(){if(Tt++,Tt>=3)return gt&&clearTimeout(gt),ft&&clearTimeout(ft),n&&console.log("[GoodTube] Video buffering too often - selecting next video source..."),Tt=0,b=Ct.currentTime,void O("automatic",!0)}),1e3)),2===Ut||3===Ut)){let t=Ct.currentTime;gt=setTimeout((function(){Ct.currentTime===t&&(gt&&clearTimeout(gt),ft&&clearTimeout(ft),n&&console.log("[GoodTube] Video not loading fast enough - selecting next video source..."),b=Ct.currentTime,O("automatic",!0))}),15e3)}})),document.addEventListener("keydown",(function(t){if(27==t.keyCode){document.querySelectorAll(".vjs-menuOpen").forEach((t=>{t.classList.remove("vjs-menuOpen")}))}}),!0),lt.on("loadedmetadata",(function(){if(ht&&clearTimeout(ht),void 0!==Mt.t){let t=Mt.t.replace("s","");G(Ct,t)}b>0&&G(Ct,b),Ct.focus()})),lt.on("loadstart",(function(){if(ht&&clearTimeout(ht),ht=setTimeout((function(){n&&console.log("[GoodTube] Video not loading fast enough - selecting next video source..."),O("automatic",!0)}),15e3),Ct.classList.remove("goodTube_hidden"),1===Ut){let t="",e=document.querySelector(".vjs-quality-selector .vjs-menu .vjs-selected .vjs-menu-item-text");t=e?e.innerHTML:Ct.querySelector("source[selected=true]").getAttribute("label");let o=t.replace("p","").replace("hd","").replace(" ","").toLowerCase();parseFloat(L)!==parseFloat(o)&&(A=o,L=o);let r=document.querySelector("#goodTube_playerWrapper");"audio"===o?r.classList.contains("goodTube_audio")||r.classList.add("goodTube_audio"):r.classList.contains("goodTube_audio")&&r.classList.remove("goodTube_audio"),n&&T<=1&&console.log("[GoodTube] Loading quality "+t+"...")}else if(2===Ut||3===Ut){let t=document.querySelector("#goodTube_playerWrapper");t.classList.contains("goodTube_audio")&&t.classList.remove("goodTube_audio"),n&&T<=1&&console.log("[GoodTube] Loading qualities...")}})),lt.on("loadeddata",(function(){Tt=0,Ct.paused||P(Ct),T=1,void 0!==m.reloadVideo&&clearTimeout(m.reloadVideo),n&&(1===Ut?console.log("[GoodTube] Quality loaded"):2!==Ut&&3!==Ut||console.log("[GoodTube] Qualities loaded")),wt(),nt()})),lt.on("ended",(function(){_=!0,v(),Xt()})),lt.on("volumechange",(function(){let t=Ct.volume;Ct.muted&&(t=0),i("goodTube_volume",t)}))}(),function(){let t=document.createElement("div");t.classList.add("goodTube_defaultQualityModal"),t.innerHTML="\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
Select default quality
\n\t\t\t\t
\n\t\t\t\t\t
4320p
\n\t\t\t\t\t
2160p
\n\t\t\t\t\t
1440p
\n\t\t\t\t\t
1080p
\n\t\t\t\t\t
720p
\n\t\t\t\t\t
480p
\n\t\t\t\t\t
360p
\n\t\t\t\t\t
240p
\n\t\t\t\t\t
144p
\n\t\t\t\t\t
Auto
\n\t\t\t\t
\x3c!-- .goodTube_defaultQualityModal_inner --\x3e\n\t\t\t
\x3c!-- .goodTube_defaultQualityModal_options --\x3e\n\t\t",document.querySelector("#goodTube_playerWrapper .video-js").appendChild(t),document.querySelectorAll(".goodTube_defaultQualityModal .goodTube_defaultQualityModal_option").forEach((t=>{t.addEventListener("click",(function(){N(this.innerHTML.replace("p",""))}))})),document.querySelector(".goodTube_defaultQualityModal .goodTube_defaultQualityModal_overlay").addEventListener("click",(function(){let t=document.querySelector(".goodTube_defaultQualityModal");t.classList.contains("goodTube_defaultQualityModal_visible")&&t.classList.remove("goodTube_defaultQualityModal_visible")})),document.addEventListener("keydown",(function(t){if(27==t.keyCode){let t=document.querySelector(".goodTube_defaultQualityModal");t.classList.contains("goodTube_defaultQualityModal_visible")&&t.classList.remove("goodTube_defaultQualityModal_visible")}}),!0)}(),setInterval(v,1e4),document.addEventListener("keydown",(function(t){if(t.ctrlKey||void 0===Mt.v)return;let e=t.srcElement,o=!1,n=!1;if(e&&(void 0!==e.nodeName&&(o=e.nodeName.toLowerCase()),void 0!==e.getAttribute&&(n=e.getAttribute("id"))),!e||-1===o.indexOf("input")&&-1===o.indexOf("label")&&-1===o.indexOf("select")&&-1===o.indexOf("textarea")&&-1===o.indexOf("fieldset")&&-1===o.indexOf("legend")&&-1===o.indexOf("datalist")&&-1===o.indexOf("output")&&-1===o.indexOf("option")&&-1===o.indexOf("optgroup")&&"contenteditable-root"!==n){let o=t.key.toLowerCase();">"===o?.25==parseFloat(s.playbackRate)?s.playbackRate=.5:.5==parseFloat(s.playbackRate)?s.playbackRate=.75:.75==parseFloat(s.playbackRate)?s.playbackRate=1:1==parseFloat(s.playbackRate)?s.playbackRate=1.25:1.25==parseFloat(s.playbackRate)?s.playbackRate=1.5:1.5==parseFloat(s.playbackRate)?s.playbackRate=1.75:1.75==parseFloat(s.playbackRate)&&(s.playbackRate=2):"<"===o&&(.5==parseFloat(s.playbackRate)?s.playbackRate=.25:.75==parseFloat(s.playbackRate)?s.playbackRate=.5:1==parseFloat(s.playbackRate)?s.playbackRate=.75:1.25==parseFloat(s.playbackRate)?s.playbackRate=1:1.5==parseFloat(s.playbackRate)?s.playbackRate=1.25:1.75==parseFloat(s.playbackRate)?s.playbackRate=1.5:2==parseFloat(s.playbackRate)&&(s.playbackRate=1.75)),t.shiftKey||(e&&void 0!==e.closest&&e.closest("#goodTube_player")&&("arrowdown"===o&&(s.volume>=.05?s.volume-=.05:s.volume=0,t.preventDefault()),"arrowup"===o&&(s.volume<=.95?s.volume+=.05:s.volume=1,t.preventDefault()),"t"===o&&document.querySelector("body").focus()),"arrowleft"===o&&(s.currentTime-=5),"arrowright"===o&&(s.currentTime+=5)," "===o&&(s.paused||s.ended?s.play():s.pause()),"m"===o&&(s.muted||s.volume<=0?(s.muted=!1,s.volume<=0&&(s.volume=1)):s.muted=!0),"i"===o&&(t.stopImmediatePropagation(),at()),"f"===o?document.querySelector(".vjs-fullscreen-control")?.click():"j"===o?s.currentTime-=10:"l"===o?s.currentTime+=10:"home"===o?s.currentTime=0:"end"===o&&(s.currentTime+=s.duration),"0"===o?s.currentTime=0:"1"===o?s.currentTime=s.duration/100*10:"2"===o?s.currentTime=s.duration/100*20:"3"===o?s.currentTime=s.duration/100*30:"4"===o?s.currentTime=s.duration/100*40:"5"===o?s.currentTime=s.duration/100*50:"6"===o?s.currentTime=s.duration/100*60:"7"===o?s.currentTime=s.duration/100*70:"8"===o?s.currentTime=s.duration/100*80:"9"===o&&(s.currentTime=s.duration/100*90))}}),!0),Rt&&I(Ct,1)}function Q(t){if(void 0!==Mt.v)if(Rt){let e=document.getElementById("player");if(e&&e.offsetHeight>0){let o=e.getBoundingClientRect();t.style.top=o.top+"px",t.style.left=o.left+"px",t.style.width=e.offsetWidth+"px",t.style.height=e.offsetHeight+"px"}}else{let e=!1;if(document.querySelector("ytd-watch-flexy[theater]")?(e=document.getElementById("full-bleed-container"),t.classList.contains("goodTube_theater")||t.classList.add("goodTube_theater")):(e=document.getElementById("player"),t.classList.contains("goodTube_theater")&&t.classList.remove("goodTube_theater")),e&&e.offsetHeight>0){let o=e.getBoundingClientRect();t.style.top=o.top+window.scrollY+"px",t.style.left=o.left+window.scrollX+"px",t.style.width=e.offsetWidth+"px",t.style.height=e.offsetHeight+"px"}}window.requestAnimationFrame((function(){Q(t)}))}function z(){n&&console.log("[GoodTube] Loading player assets..."),f=0,R(y[g])}function R(t){f++,f>o?n&&console.log("[GoodTube] Player assets could not be loaded"):fetch(t).then((t=>t.text())).then((e=>{let o=!1;-1!==t.indexOf("/js/")?o=document.createElement("script"):-1!==t.indexOf("/css/")&&(o=document.createElement("style")),o.innerHTML=e,document.head.appendChild(o),g++,g>=y.length?n&&console.log("[GoodTube] Player assets loaded"):(f=0,R(y[g]))})).catch((o=>{void 0!==m.loadAsset&&clearTimeout(m.loadAsset),m.loadAsset=setTimeout((function(){R(t)}),e)}))}let B=0;function O(t,e){let o=document.querySelector(".vjs-source-button .vjs-menu");if(o.querySelectorAll(".vjs-selected").forEach((t=>{t.classList.remove("vjs-selected")})),"automatic"===t){if(B++,void 0===Ht[B])return void kt();Ut=Ht[B].type,Vt=Ht[B].proxy,Nt=Ht[B].url,Jt=Ht[B].name,i("goodTube_api_withauto",t);let e=document.querySelector("#goodTube_playerWrapper");e.classList.contains("goodTube_automaticServer")||e.classList.add("goodTube_automaticServer");let n=o.querySelector("ul li:first-child");n.classList.contains("vjs-selected")||n.classList.add("vjs-selected")}else{Ht.forEach((e=>{t==e.url&&(Ut=e.type,Vt=e.proxy,Nt=e.url,Jt=e.name,i("goodTube_api_withauto",t))}));let e=document.querySelector("#goodTube_playerWrapper");e.classList.contains("goodTube_automaticServer")&&e.classList.remove("goodTube_automaticServer"),B=0}o.querySelectorAll("ul li").forEach((t=>{t.getAttribute("api")==Nt&&t.classList.add("vjs-selected")})),e&&function(){n&&(console.log("\n-------------------------\n\n"),console.log("[GoodTube] Loading video data from "+Jt+"..."));let t=0;Rt&&(t=400);setTimeout((function(){h=0,F(Ct)}),t)}()}function D(t){t.pause()}function P(t){t.play()}function I(t,e){t.volume=e}function G(t,e){t.currentTime=e}function F(t){if(void 0===Mt.v)return void(dt=[]);if(T=1,void 0!==m.reloadVideo&&clearTimeout(m.reloadVideo),void 0!==m.loadVideoData&&clearTimeout(m.loadVideoData),et(t),ot(),h++,h>o)return void kt();t.querySelectorAll("source").forEach((t=>{t.remove()}));let r=!1;1===Ut||2===Ut?r=Nt+"/api/v1/videos/"+Mt.v:3===Ut&&(r=Nt+"/streams/"+Mt.v),fetch(r,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((o=>{ot();let r=JSON.parse(o),i=!1,a=!1,l=!1,s=!1,d=!1,u=!1,p=!1;if(1===Ut?void 0===r.formatStreams?p=!0:(i=r.formatStreams,a=r.captions,l=r.storyboards,d=r.description,u=r.lengthSeconds,s=!1):2===Ut?void 0===r.dashUrl&&void 0===r.hlsUrl?p=!0:(i=!1,a=r.captions,l=r.storyboards,d=r.description,u=r.lengthSeconds,s=!1):3===Ut&&(void 0===r.hls&&void 0===r.dash?p=!0:(a=!1,l=!1,d=r.description.replace(/
/g,"\r\n").replace(/<[^>]*>?/gm,""),u=r.duration,void 0!==r.chapters&&r.chapters.length&&r.chapters.length>0&&(s=[],r.chapters.forEach((t=>{s.push({time:parseFloat(t.start),title:t.title})}))))),p)return void 0!==m.loadVideoData&&clearTimeout(m.loadVideoData),m.loadVideoData=setTimeout((function(){F(t)}),e),void ot();if(n&&console.log("[GoodTube] Video data loaded"),1===Ut){A&&t.querySelector(".goodTube_source_"+A)?(t.querySelector(".goodTube_source_"+A).setAttribute("selected",!0),L=A):(t.querySelector(".goodTube_source_"+S)?.setAttribute("selected",!0),L=S);let e=document.createElement("source");e.setAttribute("src",Nt+"/watch?v="+Mt.v+"&raw=1&listen=1"),e.setAttribute("type","audio/mp3"),e.setAttribute("label","Audio"),e.setAttribute("video",!0),e.setAttribute("class","goodTube_source_audio"),t.appendChild(e);let o=0;S=!1,i.forEach((e=>{let n=!1,r=!1,i=!1,a=!1;if(n=Nt+"/latest_version?id="+Mt.v+"&itag="+e.itag,Vt&&(n+="&local=true"),r=e.type,i=parseFloat(e.resolution.replace("p","").replace("hd",""))+"p",a=parseFloat(e.resolution.replace("p","").replace("hd","")),n&&r&&i&&-1!==r.toLowerCase().indexOf("video")){let e=document.createElement("source");e.setAttribute("src",n),e.setAttribute("type",r),e.setAttribute("label",i),e.setAttribute("video",!0),e.setAttribute("class","goodTube_source_"+a),t.appendChild(e),(!S||a>S)&&(S=a)}o++})),A&&t.querySelector(".goodTube_source_"+A)?(t.querySelector(".goodTube_source_"+A).setAttribute("selected",!0),L=A):(t.querySelector(".goodTube_source_"+S)?.setAttribute("selected",!0),L=S);let n=[];t.querySelectorAll("source[video=true]").forEach((t=>{n.push({src:t.getAttribute("src"),type:t.getAttribute("type"),label:t.getAttribute("label"),selected:t.getAttribute("selected")})})),lt.src(n);let r=document.querySelectorAll(".vjs-quality-selector");2===r.length&&(r[1].style.display="none",r[0].style.display="block")}else if(2===Ut){let t=!1,e=!1,o="false";Vt&&(o="true"),void 0!==r.hlsUrl&&r.hlsUrl?(t=r.hlsUrl+"?local="+o+"&unique_res=1",e="application/x-mpegURL"):void 0!==r.dashUrl&&r.dashUrl&&(t=r.dashUrl+"?local="+o+"&unique_res=1",e="application/dash+xml"),t&&"/"===t[0]&&(t=Nt+t),lt.src({src:t,type:e}),H()}else if(3===Ut){let t=!1,e=!1,o="false";Vt&&(o="true"),void 0!==r.hls&&r.hls?(t=r.hls,e="application/x-mpegURL"):void 0!==r.dash&&r.dash&&(t=r.dash,e="application/dash+xml"),t&&"/"===t[0]&&(t=Nt+t),lt.src({src:t,type:e}),H()}setTimeout((function(){P(t)}),1),function(t,e){(!e||e.length>0)&&(n&&console.log("[GoodTube] Loading subtitles..."),Ot=e?0:1,X(t,e,Nt))}(t,a),n&&console.log("[GoodTube] Loading chapters..."),K(t,d,u,s),Rt||(n&&console.log("[GoodTube] Loading storyboard..."),$(t,l,0))})).catch((o=>{void 0!==m.loadVideoData&&clearTimeout(m.loadVideoData),m.loadVideoData=setTimeout((function(){F(t)}),e),ot()}))}function H(){C&&clearTimeout(C);let t=document.querySelectorAll(".vjs-quality-selector");if(!t||void 0===t[1])return C&&clearTimeout(C),void(C=setTimeout(H,100));if(2===t.length){t[0].style.display="none",t[1].style.display="block";let e=t[1].querySelector("ul"),o=e.querySelector("li.vjs-menu-item:first-child .vjs-menu-item-text");if(!o)return C&&clearTimeout(C),void(C=setTimeout(H,100));let n=o;if("Select default quality"!==o.innerHTML){n=document.createElement("li"),n.classList.add("vjs-menu-item"),n.classList.add("select-default"),n.innerHTML='\n\t\t\t\t\t\tSelect default quality\n\t\t\t\t\t\t\n\t\t\t\t\t',n.addEventListener("click",U),e.prepend(n),e.querySelectorAll("li.vjs-menu-item:not(.select-default)").forEach((t=>{t.addEventListener("click",J),t.addEventListener("touchstart",J)}))}let r=a("goodTube_selectDefaultNew");r||(i("goodTube_selectDefaultNew","1080"),r="1080"),N(r)}}function U(){let t=document.querySelector(".goodTube_defaultQualityModal");t.classList.contains("goodTube_defaultQualityModal_visible")||t.classList.add("goodTube_defaultQualityModal_visible")}let V=!1;function N(t){i("goodTube_selectDefaultNew",t);let e=document.querySelector(".goodTube_defaultQualityModal");e.classList.contains("goodTube_defaultQualityModal_visible")&&e.classList.remove("goodTube_defaultQualityModal_visible"),document.querySelector(".goodTube_defaultQualityModal_selected")?.classList.remove("goodTube_defaultQualityModal_selected"),document.querySelector("#goodTube_defaultQualityModal_option_"+t.toLowerCase())?.classList.add("goodTube_defaultQualityModal_selected");let o=!1;document.querySelectorAll(".vjs-quality-selector li.vjs-menu-item").forEach((e=>{let n=e.querySelector(".vjs-menu-item-text").innerHTML.replace("p","");("auto"===n.toLowerCase()&&"auto"===t.toLowerCase()||parseFloat(n)<=parseFloat(t)&&!o)&&(o=e)})),o&&(V=!0,o.click(),n&&("auto"===t.toLowerCase()?console.log("[GoodTube] Setting default quality to "+t[0].toUpperCase()+t.slice(1)):console.log("[GoodTube] Selecting nearest default quality to "+t+"p ("+o.querySelector(".vjs-menu-item-text").innerHTML+")")))}function J(){if(V)return void(V=!1);let t=document.querySelectorAll(".vjs-quality-selector")[1],e=t.querySelector("li.select-default");e.classList.contains("vjs-selected")&&e.classList.remove("vjs-selected");let o=t.querySelector("li.vjs-auto-selected");o&&o.classList.remove("vjs-auto-selected")}function K(t,e,o,r){Y();let i=[];if(r)i=r;else{let n=e.split("\n"),r=/(\d{0,2}:?\d{1,2}:\d{2})/g;for(let t of n){const e=t.match(r);if(e){let o=e[0],n=t.split(" ").filter((t=>!t.includes(o))).join(" ");i.push({time:o,title:n})}}if((!i.length||i.length<=0||i[0].time.split(":").reduce(((t,e)=>60*t+ +e))>0)&&(i=[]),(!i.length||i.length<=0)&&!Rt){let n=Array.from(document.querySelectorAll("#panels ytd-engagement-panel-section-list-renderer:nth-child(2) #content ytd-macro-markers-list-renderer #contents ytd-macro-markers-list-item-renderer #endpoint #details"));E&&clearInterval(E);let r=JSON.stringify(document.querySelectorAll("#panels ytd-engagement-panel-section-list-renderer:nth-child(2) #content ytd-macro-markers-list-renderer #contents ytd-macro-markers-list-item-renderer #endpoint #details"));E=setInterval((function(){let n=JSON.stringify(document.querySelectorAll("#panels ytd-engagement-panel-section-list-renderer:nth-child(2) #content ytd-macro-markers-list-renderer #contents ytd-macro-markers-list-item-renderer #endpoint #details"));n!==r&&(r=n,K(t,e,o))}),1e3);let a=n.map((t=>({title:t.querySelector(".macro-markers")?.textContent,time:t.querySelector("#time")?.textContent}))).filter((t=>void 0!==t.title&&null!==t.title&&void 0!==t.time&&null!==t.time));i=[...new Map(a.map((t=>[t.time,t]))).values()]}}let a=0;i.length&&i.length>0&&(a=i[0].time,"number"!=typeof a&&(a=a.split(":").reduce(((t,e)=>60*t+ +e)))),(!i.length||i.length<=0||a>0)&&(i=[]),i.length>0?function(t,e,o){let r=document.createElement("div");r.classList.add("goodTube_chapters");let i=document.createElement("div");i.classList.add("goodTube_markers");let a=0;e.forEach((t=>{let n=document.createElement("div");n.classList.add("goodTube_chapter"),void 0!==e[a+1]&&("number"==typeof e[a+1].time?n.setAttribute("chapter-time",e[a+1].time):n.setAttribute("chapter-time",e[a+1].time.split(":").reduce(((t,e)=>60*t+ +e))));let l=document.createElement("div");l.classList.add("goodTube_marker"),void 0!==e[a+1]&&("number"==typeof e[a+1].time?l.setAttribute("marker-time",e[a+1].time):l.setAttribute("marker-time",e[a+1].time.split(":").reduce(((t,e)=>60*t+ +e)))),Rt||n.addEventListener("mouseover",(function(){document.querySelector("#goodTube_playerWrapper .vjs-progress-control .vjs-mouse-display .vjs-time-tooltip")?.setAttribute("chapter-title",t.title)}));let s=0;s="number"==typeof t.time?t.time:t.time.split(":").reduce(((t,e)=>60*t+ +e));let d=s/o*100;n.style.left=d+"%";let u=o;void 0!==e[a+1]&&(u="number"==typeof e[a+1].time?e[a+1].time:e[a+1].time.split(":").reduce(((t,e)=>60*t+ +e)));let p=u/o*100;n.style.width=p-d+"%",l.style.left=p+"%",r.appendChild(n),i.appendChild(l),a++})),Rt&&(q=setInterval((function(){let o=parseFloat(t.currentTime),n=!1;e.forEach((t=>{let e=!1;e="number"==typeof t.time?t.time:t.time.split(":").reduce(((t,e)=>60*t+ +e)),parseFloat(o)>=parseFloat(e)&&(n=t.title)})),n&&document.querySelector("#goodTube_playerWrapper .vjs-time-control .vjs-duration-display")?.setAttribute("chapter-title","· "+n)}),10));document.querySelector("#goodTube_playerWrapper .vjs-progress-control")?.appendChild(r),document.querySelector("#goodTube_playerWrapper .vjs-progress-control .vjs-play-progress")?.appendChild(i),document.querySelector("#goodTube_playerWrapper").classList.contains("goodTube_hasChapters")||document.querySelector("#goodTube_playerWrapper").classList.add("goodTube_hasChapters");W=setInterval((function(){document.querySelectorAll(".goodTube_markers .goodTube_marker").forEach((e=>{e.getAttribute("marker-time")&&(parseFloat(t.currentTime)>=parseFloat(e.getAttribute("marker-time"))?e.classList.contains("goodTube_showMarker")||e.classList.add("goodTube_showMarker"):e.classList.contains("goodTube_showMarker")&&e.classList.remove("goodTube_showMarker"))})),document.querySelectorAll(".goodTube_chapters .goodTube_chapter").forEach((e=>{e.getAttribute("chapter-time")&&(parseFloat(t.currentTime)>=parseFloat(e.getAttribute("chapter-time"))?e.classList.contains("goodTube_redChapter")||e.classList.add("goodTube_redChapter"):e.classList.contains("goodTube_redChapter")&&e.classList.remove("goodTube_redChapter"))}))}),10),n&&console.log("[GoodTube] Chapters loaded")}(t,i,o):n&&console.log("[GoodTube] No chapters found")}function Y(){W&&(clearInterval(W),W=!1),q&&(clearInterval(q),q=!1),E&&(clearInterval(E),E=!1),document.querySelector("#goodTube_playerWrapper .vjs-time-control .vjs-duration-display")?.setAttribute("chapter-title",""),document.querySelector(".goodTube_chapters")?.remove(),document.querySelector(".goodTube_markers")?.remove(),document.querySelector("#goodTube_playerWrapper").classList.contains("goodTube_hasChapters")&&document.querySelector("#goodTube_playerWrapper").classList.remove("goodTube_hasChapters")}function X(t,e,o){if(Ot>0){if(void 0===Pt[Ot-1])return void(n&&console.log("[GoodTube] Subtitles could not be loaded"));o=Pt[Ot-1],fetch(o+"/api/v1/videos/"+Mt.v,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((e=>{let r=JSON.parse(e).captions;r&&r.length>0?fetch(o+r[0].url,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((e=>{"WEBVTT"!==e.substr(0,6)?X(t,r,o):Z(t,r,o)})).catch((e=>{X(t,r,o)})):n&&console.log("[GoodTube] This video does not have subtitles")})).catch((n=>{X(t,e,o)}))}else fetch(o+e[0].url,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((n=>{"WEBVTT"!==n.substr(0,6)?X(t,e,o):Z(t,e,o)})).catch((n=>{X(t,e,o)}));Ot++}function Z(t,e,o){let r=!1;e.forEach((t=>{let e=!1,n=!1;e=o+t.url,n=t.label,e&&n&&n!==r&&(r=n,n=n[0].toUpperCase()+n.slice(1),lt.addRemoteTextTrack({kind:"captions",language:n,src:e},!1))})),n&&console.log("[GoodTube] Subtitles loaded")}function $(t,e,o){if(void 0!==Pt[o])if(3===Ut){let n=Pt[o]+"/api/v1/videos/"+Mt.v;fetch(n,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((n=>{let r=JSON.parse(n);void 0===r.storyboards?(o++,$(t,e,o)):(e=r.storyboards,tt(t,e,Pt[o]))})).catch((n=>{o++,$(t,e,o)}))}else Dt=0,tt(t,e,Nt);else n&&console.log("[GoodTube] Storyboard could not be loaded")}function tt(t,e,o){if(Dt>0){if(void 0===Pt[Dt-1])return void(n&&console.log("[GoodTube] Storyboard could not be loaded"));o=Pt[Dt-1]}Dt++,!e.length||e.length<=0?tt(t,e,o):fetch(o+e[0].url,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((r=>{if("WEBVTT"!==r.substr(0,6))tt(t,e,o);else{let i=!1,a=!1,l=r.split("\n\n");if(l.length&&l.length>1){let t=l[1].split("\n");t.length&&t.length>1&&(a=t[1],-1!==a.indexOf("https")&&(i=!0))}i?fetch(a,{signal:AbortSignal.timeout(5e3)}).then((t=>t.text())).then((r=>{-1===r.indexOf("{t.width>i&&(r=t.url,i=parseFloat(t.width))})),r&&("function"==typeof lt.vttThumbnails&&(j=lt.vttThumbnails),lt.vttThumbnails=j,lt.vttThumbnails({src:o+r}),n&&console.log("[GoodTube] Storyboard loaded"))}(0,e,o):tt(t,e,o)})).catch((n=>{tt(t,e,o)})):tt(t,e,o)}})).catch((n=>{tt(t,e,o)}))}function et(t){_=!1,function(){let t=document.querySelector("#goodTube_error");t&&t.remove()}(),t.classList.add("goodTube_hidden"),t.currentTime=0,t.pause(),Y(),document.querySelector(".vjs-vtt-thumbnail-display")?.remove();let e=lt.remoteTextTracks();void 0!==e.tracks_&&e.tracks_.forEach((t=>{lt.removeRemoteTextTrack(t)}));let o=document.querySelectorAll(".vjs-quality-selector");if(o&&void 0!==o[1]){let t=o[1].querySelector("ul");t&&(t.innerHTML="")}}function ot(){let t=document.getElementById("goodTube_player");t.classList.contains("vjs-loading")||t.classList.add("vjs-loading"),t.classList.contains("vjs-waiting")||t.classList.add("vjs-waiting")}function nt(){let t=document.getElementById("goodTube_player");t.classList.contains("vjs-loading")&&t.classList.remove("vjs-loading"),t.classList.contains("vjs-waiting")&&t.classList.remove("vjs-waiting")}function rt(){"mediaSession"in navigator&&(navigator.mediaSession.setActionHandler("play",(()=>{P(Ct)})),navigator.mediaSession.setActionHandler("pause",(()=>{D(Ct)})),pt?navigator.mediaSession.setActionHandler("nexttrack",(()=>{Xt(!0)})):navigator.mediaSession.setActionHandler("nexttrack",null),ut?navigator.mediaSession.setActionHandler("previoustrack",(()=>{Yt()})):navigator.mediaSession.setActionHandler("previoustrack",null))}function it(){if(!Rt){let t=document.querySelector("ytd-watch-flexy");t&&(void 0!==Mt.v?t.classList.remove("goodTube_miniplayer"):t.classList.add("goodTube_miniplayer"))}void 0!==Mt.v&&(k=Mt.v)}function at(){if(document.pictureInPictureEnabled)return void(x?(document.exitPictureInPicture(),x=!1):(Ct.requestPictureInPicture(),x=!0,w&&at()));let t=document.querySelector("#goodTube_playerWrapper");w?(t.classList.remove("goodTube_miniplayer"),w=!1,void 0===Mt.v&&et(Ct)):(t.classList.add("goodTube_miniplayer"),w=!0,k=Mt.v)}let lt=!1,st=!1,dt=[],ut=!1,pt=!0,ct=!1,vt=!1,mt=!1,bt=!1,yt=!1,gt=!1,ft=!1,ht=!1,jt=!1,Tt=0,_t=1;function xt(){document.querySelector(".vjs-play-control").classList.contains("vjs-playing")?P(Ct):D(Ct)}function wt(){document.querySelectorAll(".vjs-control-bar button").forEach((t=>{t.onclick=function(){document.querySelectorAll(".vjs-menuOpen").forEach((e=>{e!=t.closest("div.vjs-menu-button")&&e.classList.remove("vjs-menuOpen")}));let e=t.closest("div.vjs-menu-button");e&&(e.classList.contains("vjs-menuOpen")?e.classList.remove("vjs-menuOpen"):e.classList.add("vjs-menuOpen"))},t.ontouchstart=function(){document.querySelectorAll(".vjs-menuOpen").forEach((e=>{e!=t.closest("div.vjs-menu-button")&&e.classList.remove("vjs-menuOpen")}));let e=t.closest("div.vjs-menu-button");e&&(e.classList.contains("vjs-menuOpen")?e.classList.remove("vjs-menuOpen"):e.classList.add("vjs-menuOpen"))}}));if(document.querySelectorAll(".vjs-menu-item").forEach((t=>{((t,e)=>{let o=!1;t.addEventListener("touchstart",(function(){o=!1})),t.addEventListener("touchmove",(function(){o=!0})),t.addEventListener("touchend",(function(t){o||e(t)})),t.addEventListener("click",(function(t){e(t)}))})(t,(t=>{let e=0;Rt&&(e=400),setTimeout((function(){document.querySelectorAll(".vjs-menuOpen").forEach((t=>{t.classList.remove("vjs-menuOpen")}))}),e)}))})),!Rt&&!document.querySelector(".goodTube_hoverBar")){let t=document.createElement("div");t.classList.add("goodTube_hoverBar"),document.querySelector(".video-js .vjs-progress-control").appendChild(t),document.querySelector(".video-js .vjs-progress-control").addEventListener("mousemove",(function(e){window.requestAnimationFrame((function(){t.style.width=document.querySelector(".video-js .vjs-progress-control .vjs-mouse-display").style.left}))}))}}function kt(){gt&&clearTimeout(gt),ft&&clearTimeout(ft),ht&&clearTimeout(ht);let t=a("goodTube_api_withauto"),e=!1;if(void 0===Ht[B]&&(e=!0),"automatic"===t&&e){let t=document.querySelector("#goodTube_player");nt(),et(Ct);let e=document.createElement("div");e.setAttribute("id","goodTube_error"),e.innerHTML="Video could not be loaded. The servers are not responding :(
Please refresh the page / try again soon!",t.appendChild(e)}else"automatic"===t?(n&&console.log("[GoodTube] Video could not be loaded - selecting next video source..."),Ct.currentTime>0&&(b=Ct.currentTime),O("automatic",!0)):(n&&console.log("[GoodTube] Video could not be loaded - selecting next video source..."),Ct.currentTime>0&&(b=Ct.currentTime),B=0,O("automatic",!0))}function St(){let t=document.querySelector(".vjs-download-button");if(!document.querySelector(".vjs-download-button .goodTube_spinner")){let e=document.createElement("div");e.classList.add("goodTube_spinner"),e.innerHTML="
",t.append(e)}t&&!t.classList.contains("goodTube_loading")&&t.classList.add("goodTube_loading")}function Lt(t){if(Reflect.ownKeys(zt).length>1)return;let e=document.querySelector(".vjs-download-button");e&&e.classList.contains("goodTube_loading")&&e.classList.remove("goodTube_loading"),i("goodTube_lastDownloadTimeSeconds",(new Date).getTime()/1e3),n&&void 0===t&&console.log("[GoodTube] Downloads finished")}function At(){let t=document.querySelector(".goodTube_downloadPlaylist_cancel"),e=document.querySelector(".goodTube_downloadPlaylist_video"),o=document.querySelector(".goodTube_downloadPlaylist_audio");t&&e&&o&&(void 0!==Mt.i||void 0!==Mt.index||void 0!==Mt.list?(d(e),d(o)):(l(e),l(o)),Reflect.ownKeys(zt).length>1?d(t):l(t))}function Wt(){if(ut=!1,pt=!0,(w||x)&&void 0===Mt.v)ut=!1,pt=!1;else if(void 0!==Mt.i||void 0!==Mt.index||void 0!==Mt.list){let t=document.querySelectorAll("#goodTube_playlistContainer a");if(!t||!t.length)return;t[0].classList.contains("goodTube_selected")||(ut=!0)}else dt[dt.length-2]&&dt[dt.length-2]!==window.location.href&&(ut=!0);let t=document.querySelector(".vjs-prev-button");t&&(ut?d(t):l(t));let e=document.querySelector(".vjs-next-button");e&&(pt?d(e):l(e))}let qt=!1,Et=!1,Ct=!1,Mt=!1,Qt=[],zt=[],Rt=!1,Bt=!1,Ot=0,Dt=0,Pt=["https://yt.artemislena.eu","https://invidious.perennialte.ch","https://invidious.private.coffee","https://invidious.drgns.space","https://inv.nadeko.net","https://invidious.projectsegfau.lt","https://invidious.jing.rocks","https://invidious.incogniweb.net","https://invidious.privacyredirect.com","https://invidious.fdn.fr","https://iv.datura.network","https://pipedapi-libre.kavin.rocks","https://pipedapi.syncpundit.io","https://invidious.protokolla.fi","https://iv.melmac.space"],It=["https://dl01.yt-dl.click","https://dl02.yt-dl.click","https://dl03.yt-dl.click","https://apicloud9.filsfkwtlfjas.xyz","https://apicloud3.filsfkwtlfjas.xyz","https://apicloud8.filsfkwtlfjas.xyz","https://apicloud4.filsfkwtlfjas.xyz","https://apicloud5.filsfkwtlfjas.xyz"],Gt=["https://sea-downloadapi.stuff.solutions","https://ca.haloz.at","https://cobalt.wither.ing","https://capi.tieren.men","https://co.tskau.team","https://apicb.tigaultraman.com","https://api-cobalt.boykisser.systems","https://cobalt.decrystalfan.app","https://wukko.wolfdo.gg","https://capi.oak.li","https://cb.nyoom.fun","https://dl.khyernet.xyz","https://cobalt-api.alexagirl.studio","https://nyc1.coapi.ggtyler.dev","https://api.dl.ixhby.dev","https://co.eepy.today","https://downloadapi.stuff.solutions","https://cobalt-api.ayo.tf","https://api.sacreations.me","https://apicloud2.filsfkwtlfjas.xyz","https://dl01.yt-dl.click"],Ft=Gt.length;for(;0!=Ft;){let t=Math.floor(Math.random()*Ft);Ft--,[Gt[Ft],Gt[t]]=[Gt[t],Gt[Ft]]}It=It.concat(Gt);let Ht=[{name:"Automatic",type:!1,proxy:!0,url:"automatic"},{name:"Acid (US)",type:2,proxy:!0,url:"https://invidious.incogniweb.net"},{name:"Anubis (DE)",type:3,proxy:!0,url:"https://pipedapi.r4fo.com"},{name:"Phoenix (US)",type:3,proxy:!0,url:"https://pipedapi.drgns.space"},{name:"Nymph (AT)",type:2,proxy:!0,url:"https://invidious.private.coffee"},{name:"Serpent (US)",type:2,proxy:!0,url:"https://invidious.darkness.services"},{name:"Sphere (US)",type:3,proxy:!0,url:"https://pipedapi.darkness.services"},{name:"Sapphire (IN)",type:3,proxy:!0,url:"https://pipedapi.in.projectsegfau.lt"},{name:"Sphynx (JP)",type:2,proxy:!0,url:"https://invidious.jing.rocks"},{name:"Orchid (DE)",type:3,proxy:!0,url:"https://api.piped.yt"},{name:"Emerald (DE)",type:3,proxy:!0,url:"https://pipedapi.phoenixthrush.com"},{name:"420 (FI)",type:2,proxy:!0,url:"https://invidious.privacyredirect.com"},{name:"Onyx (FR)",type:2,proxy:!0,url:"https://invidious.fdn.fr"},{name:"360p - Amethyst (DE)",type:1,proxy:!0,url:"https://yt.artemislena.eu"},{name:"360p - Goblin (AU)",type:1,proxy:!1,url:"https://invidious.perennialte.ch"},{name:"360p - Raptor (US)",type:1,proxy:!0,url:"https://invidious.drgns.space"}],Ut=Ht[0].type,Vt=Ht[0].proxy,Nt=Ht[0].url,Jt=Ht[0].name;function Kt(){let t=document.getElementById("goodTube_playlistContainer");if(t||(t=document.createElement("div"),t.setAttribute("id","goodTube_playlistContainer"),t.style.display="none",document.body.appendChild(t)),t.innerHTML="",void 0===Mt.i&&void 0===Mt.index&&void 0===Mt.list)return;document.getElementById("movie_player");let e=!1,o=!1;Rt?(e=document.querySelectorAll("ytm-playlist-panel-renderer a.compact-media-item-image"),o=document.querySelectorAll("ytm-playlist-panel-renderer .compact-media-item-headline span")):(e=document.querySelectorAll("#playlist-items > a"),o=document.querySelectorAll("#playlist-items #video-title")),e&&e.length||setTimeout(Kt,100);let n=0;e.forEach((e=>{let r=document.createElement("a");r.href=e.href,r.innerHTML=o[n].innerHTML.trim(),-1!==e.href.indexOf(Mt.v)&&r.classList.add("goodTube_selected"),t.appendChild(r),n++}))}function Yt(){let t=!1;if(void 0!==Mt.i||void 0!==Mt.index||void 0!==Mt.list){let e=document.querySelectorAll("#goodTube_playlistContainer a"),o=!1;for(let n=e.length-1;n>=0;n--){let r=e[n];if(o){let e="/watch"+r.href.split("/watch")[1];if(Rt?(t=!0,document.querySelector('ytm-playlist-panel-renderer a.compact-media-item-image[href="'+e+'"]')?.click()):(t=!0,document.querySelector('#playlist-items > a[href="'+e+'"]')?.click()),t){if(t=!0,!document.querySelector("ytm-playlist-panel-renderer")){let t=document.querySelector("ytm-playlist-panel-entry-point");return void(t&&!Bt&&(Bt=!0,t.click(),setTimeout(Yt,500)))}Bt=!1,document.querySelector('ytm-playlist-panel-renderer a.compact-media-item-image[href="'+e+'"]')?.click()}}o=!!r.classList.contains("goodTube_selected")}}!t&&dt[dt.length-2]&&dt[dt.length-2]!==window.location.href&&(n&&console.log("[GoodTube] Playing previous video..."),i("goodTube_previous","true"),window.history.go(-1))}function Xt(t=!1){let e=a("goodTube_autoplay"),o=!1;if(void 0!==Mt.i||void 0!==Mt.index||void 0!==Mt.list){let t=document.querySelectorAll("#goodTube_playlistContainer a"),e=!1;t.forEach((t=>{if(e){let e="/watch"+t.href.split("/watch")[1];if(Rt){if(o=!0,!document.querySelector("ytm-playlist-panel-renderer")){let t=document.querySelector("ytm-playlist-panel-entry-point");return void(t&&!Bt&&(Bt=!0,t.click(),setTimeout(Xt,500)))}Bt=!1,document.querySelector('ytm-playlist-panel-renderer a.compact-media-item-image[href="'+e+'"]')?.click()}else o=!0,document.querySelector('#playlist-items > a[href="'+e+'"]')?.click();o&&n&&console.log("[GoodTube] Playing next video in playlist...")}e=!!t.classList.contains("goodTube_selected")}))}if(!o&&("off"!==e||t)){document.getElementById("movie_player").nextVideo(),n&&console.log("[GoodTube] Autoplaying next video...")}}function Zt(t,o,r,l,s){if(void 0===l&&(l=""),void 0===zt[r])return;if(void 0===It[t])return void 0!==zt[r]&&delete zt[r],n&&(void 0!==l?(alert("[GoodTube] "+o.charAt(0).toUpperCase()+o.slice(1)+" - "+l+" could not be downloaded. Please try again soon."),console.log("[GoodTube] "+o.charAt(0).toUpperCase()+o.slice(1)+" - "+l+" could not be downloaded. Please try again soon.")):(alert("[GoodTube] "+o.charAt(0).toUpperCase()+o.slice(1)+" could not be downloaded. Please try again soon."),console.log("[GoodTube] "+o.charAt(0).toUpperCase()+o.slice(1)+" could not be downloaded. Please try again soon."))),void Lt();St();let d=0,u=(new Date).getTime()/1e3,p=parseFloat(a("goodTube_lastDownloadTimeSeconds"));p&&(d=3-(u-p),d<0&&(d=0)),i("goodTube_lastDownloadTimeSeconds",u+d),Qt[r]=setTimeout((function(){n&&(""!==l?console.log("[GoodTube] Downloading "+o+" - "+l+"..."):console.log("[GoodTube] Downloading "+o+"..."));let i="vp9";Rt&&(i="h264"),void 0!==s&&(i=s);let a=!1;"audio"===o&&(a=!0);let d=JSON.stringify({url:"https://www.youtube.com/watch?v="+r,vCodec:i,vQuality:"max",filenamePattern:"basic",isAudioOnly:a});fetch(It[t]+"/api/json",{signal:AbortSignal.timeout(1e4),method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:d}).then((t=>t.text())).then((a=>{if(void 0!==zt[r]){if(void 0!==(a=JSON.parse(a)).status&&"rate-limit"===a.status)return void 0!==m["download_"+r]&&clearTimeout(m["download_"+r]),void(m["download_"+r]=setTimeout((function(){Zt(t,o,r,l)}),e));if(void 0!==a.status&&"error"===a.status){let s=!1;return void 0!==a.text&&-1!==a.text.toLowerCase().indexOf("settings")?(Rt||("vp9"===i?s="av1":"av1"===i&&(s="h264")),Rt&&("h264"===i?s="av1":"av1"===i&&(s="vp9")),s?(void 0!==m["download_"+r]&&clearTimeout(m["download_"+r]),void(m["download_"+r]=setTimeout((function(){Zt(t,o,r,l,s)}),e))):(n&&console.log("[GoodTube] Could not download "+o+" - "+l),void 0!==zt[r]&&delete zt[r],void setTimeout((function(){Lt()}),1e3))):(void 0!==m["download_"+r]&&clearTimeout(m["download_"+r]),t++,void(m["download_"+r]=setTimeout((function(){Zt(t,o,r,l)}),e)))}void 0!==a.status&&void 0!==a.url&&function(t,o,r,i,a){if(void 0===zt[i])return;St();let l=".mp4";"audio"===o&&(l=".mp3");Rt||""===r?(window.open(t,"_self"),n&&(""!==r?console.log("[GoodTube] Downloaded "+o+" - "+r):console.log("[GoodTube] Downloaded "+o)),void 0!==zt[i]&&delete zt[i],setTimeout((function(){Lt()}),1e3)):fetch(t).then((t=>t.blob())).then((t=>{if(void 0===zt[i])return;let e=URL.createObjectURL(t),a=document.createElement("a");a.style.display="none",a.href=e,a.download=r+l,document.body.appendChild(a),a.click(),window.URL.revokeObjectURL(e),a.remove(),n&&console.log("[GoodTube] Downloaded "+o+" - "+r),void 0!==zt[i]&&delete zt[i],Lt()})).catch((t=>{void 0!==m["download_"+i]&&clearTimeout(m["download_"+i]),a++,m["download_"+i]=setTimeout((function(){Zt(a,o,i,r)}),e)}))}(a.url,o,l,r,t)}})).catch((n=>{void 0!==m["download_"+r]&&clearTimeout(m["download_"+r]),t++,m["download_"+r]=setTimeout((function(){Zt(t,o,r,l)}),e)}))}),1e3*d)}function $t(t,e){if(void 0===e&&!confirm("Are you sure you want to download this playlist ("+t+")?\r\rYou can keep playing and downloading other videos, just don't close the tab :)"))return;n&&void 0===e&&console.log("[GoodTube] Downloading "+t+" playlist...");let o=document.querySelectorAll("#goodTube_playlistContainer a");if(o.length<=0)return void(n&&console.log("[GoodTube] Downloading failed, could not find playlist data."));let r=0;o.forEach((e=>{let o=function(t,e){for(t=t.toString();t.length{s(t)})),document.querySelectorAll("#full-bleed-container").forEach((t=>{s(t)})),document.querySelectorAll("#player-control-container").forEach((t=>{l(t)})),document.querySelectorAll("ytd-miniplayer").forEach((t=>{l(t)}));let t=!1;Rt?(t=document.querySelector('.ytm-autonav-toggle-button-container[aria-pressed="true"]'),t?t.click():(document.querySelector("#player .html5-video-player")?.click(),document.querySelector("#player")?.click(),document.querySelector(".ytp-unmute")?.click())):(t=document.querySelector('.ytp-autonav-toggle-button[aria-checked="true"]'),t&&t.click())}(),function(){let t=document.getElementById("movie_player");if(t&&"function"==typeof t.setPlaybackQualityRange&&"function"==typeof t.getAvailableQualityData&&"function"==typeof t.getPlaybackQuality){let e=t.getAvailableQualityData(),o=t.getPlaybackQuality();if(e.length&&o){let n=e[e.length-1].quality;o!=n&&t.setPlaybackQualityRange(n,n)}}}(),function(){if(-1!==window.location.href.indexOf("@"))return;document.querySelectorAll("a:not(.goodTube_hidden)").forEach((t=>{-1!==t.href.indexOf("shorts/")&&(l(t),l(t.closest("ytd-video-renderer")),l(t.closest("ytd-compact-video-renderer")),l(t.closest("ytd-rich-grid-media")))}))}(),document.querySelectorAll("tp-yt-paper-dialog #confirm-button:not(.goodTube_clicked)").forEach((t=>{t.classList.add("goodTube_clicked"),t.click(),setTimeout((function(){t.classList.remove("goodTube_clicked")}),1e3)})),document.querySelectorAll("#description a, ytd-comments .yt-core-attributed-string a, ytm-expandable-video-description-body-renderer a, .comment-content a").forEach((t=>{!t.classList.contains("goodTube_timestampLink")&&t.getAttribute("href")&&-1!==t.getAttribute("href").indexOf(Mt.v)&&-1!==t.getAttribute("href").indexOf("t=")&&(t.classList.add("goodTube_timestampLink"),t.addEventListener("click",(function(){let e=t.getAttribute("href").split("t=");if(void 0!==e[1]){let t=e[1].replace("s","");G(Ct,t)}})))}));let t=Ct;if(g>=y.length&&st){let e=qt;e&&(e=e.split("#")[0]);let o=window.location.href.split("#")[0];if(o&&(o=o.split("#")[0]),e!==o){if(Mt=r(),void 0!==Mt.v){Rt&&function(t){d(t.closest("#goodTube_playerWrapper"))}(t),n&&console.log("\n-------------------------\n\n"),"true"===a("goodTube_previous")?(dt.pop(),i("goodTube_previous","false")):dt.push(window.location.href),h=0,b=0;let e=Et,o=!1;void 0!==Mt.list&&(o=Mt.list),"automatic"===a("goodTube_api_withauto")&&(o&&e===o?B>0&&B--:B=0,O("automatic",!1)),n&&console.log("[GoodTube] Loading video data from "+Jt+"..."),Kt(),F(t),fetch("https://api.counterapi.dev/v1/goodtube/videos/up/")}else if(!w&&!x){et(Ct),Rt&&function(t){l(t.closest("#goodTube_playerWrapper"))}(t),dt=[];for(let t in m)m.hasOwnProperty(t)&&clearTimeout(m[t])}Et=void 0!==Mt.list&&Mt.list,qt=window.location.href}}}!function(){-1!==window.location.href.indexOf("m.youtube")&&(Rt=!0);let t=a("goodTube_api_withauto");t&&Ht.forEach((e=>{e.url===t&&(Ut=e.type,Vt=e.proxy,Nt=e.url,Jt=e.name)})),window.addEventListener("beforeunload",(t=>{i("goodTube_lastDownloadTimeSeconds",(new Date).getTime()/1e3)})),setInterval(u,1),setInterval(te,1),setInterval(Wt,100),setInterval(At,100),setInterval(rt,100),setInterval(it,100),function(){let t=document.createElement("style");t.textContent="\n\t\t\tytd-shelf-renderer,\n\t\t\tytd-reel-shelf-renderer,\n\t\t\tytd-merch-shelf-renderer,\n\t\t\tytd-action-companion-ad-renderer,\n\t\t\tytd-display-ad-renderer,\n\t\t\tytd-rich-section-renderer,\n\t\t\tytd-video-masthead-ad-advertiser-info-renderer,\n\t\t\tytd-video-masthead-ad-primary-video-renderer,\n\t\t\tytd-in-feed-ad-layout-renderer,\n\t\t\tytd-ad-slot-renderer,\n\t\t\tytd-statement-banner-renderer,\n\t\t\tytd-banner-promo-renderer-background\n\t\t\tytd-ad-slot-renderer,\n\t\t\tytd-in-feed-ad-layout-renderer,\n\t\t\tytd-engagement-panel-section-list-renderer:not(.ytd-popup-container),\n\t\t\tytd-compact-video-renderer:has(.goodTube_hidden),\n\t\t\tytd-rich-item-renderer:has(> #content > ytd-ad-slot-renderer)\n\t\t\t.ytd-video-masthead-ad-v3-renderer,\n\t\t\tdiv#root.style-scope.ytd-display-ad-renderer.yt-simple-endpoint,\n\t\t\tdiv#sparkles-container.style-scope.ytd-promoted-sparkles-web-renderer,\n\t\t\tdiv#main-container.style-scope.ytd-promoted-video-renderer,\n\t\t\tdiv#player-ads.style-scope.ytd-watch-flexy,\n\n\t\t\tytm-rich-shelf-renderer,\n\t\t\tytm-shelf-renderer,\n\t\t\tytm-button-renderer.icon-avatar_logged_out,\n\t\t\tytm-companion-slot,\n\t\t\tytm-shelf-renderer,\n\t\t\tytm-reel-shelf-renderer,\n\t\t\tytm-merch-shelf-renderer,\n\t\t\tytm-action-companion-ad-renderer,\n\t\t\tytm-display-ad-renderer,\n\t\t\tytm-rich-section-renderer,\n\t\t\tytm-video-masthead-ad-advertiser-info-renderer,\n\t\t\tytm-video-masthead-ad-primary-video-renderer,\n\t\t\tytm-in-feed-ad-layout-renderer,\n\t\t\tytm-ad-slot-renderer,\n\t\t\tytm-statement-banner-renderer,\n\t\t\tytm-banner-promo-renderer-background\n\t\t\tytm-ad-slot-renderer,\n\t\t\tytm-in-feed-ad-layout-renderer,\n\t\t\tytm-compact-video-renderer:has(.goodTube_hidden),\n\t\t\tytm-rich-item-renderer:has(> #content > ytm-ad-slot-renderer)\n\t\t\t.ytm-video-masthead-ad-v3-renderer,\n\t\t\tdiv#root.style-scope.ytm-display-ad-renderer.yt-simple-endpoint,\n\t\t\tdiv#sparkles-container.style-scope.ytm-promoted-sparkles-web-renderer,\n\t\t\tdiv#main-container.style-scope.ytm-promoted-video-renderer,\n\t\t\tdiv#player-ads.style-scope.ytm-watch-flexy,\n\t\t\tytm-pivot-bar-item-renderer:has(> .pivot-shorts),\n\t\t\tytd-compact-movie-renderer,\n\n\t\t\tyt-about-this-ad-renderer,\n\t\t\tmasthead-ad,\n\t\t\tad-slot-renderer,\n\t\t\tyt-mealbar-promo-renderer,\n\t\t\tstatement-banner-style-type-compact,\n\t\t\tytm-promoted-sparkles-web-renderer,\n\t\t\ttp-yt-iron-overlay-backdrop,\n\t\t\t#masthead-ad\n\t\t\t {\n\t\t\t\tdisplay: none !important;\n\t\t\t}\n\n\t\t\t.style-scope[page-subtype='channels'] ytd-shelf-renderer,\n\t\t\t.style-scope[page-subtype='channels'] ytm-shelf-renderer {\n\t\t\t\tdisplay: block !important;\n\t\t\t}\n\t\t",document.head.appendChild(t),n&&console.log("[GoodTube] Ads removed")}(),function(){let t=document.createElement("style");t.textContent="\n\t\t\t.goodTube_hidden {\n\t\t\t\tposition: fixed !important;\n\t\t\t\ttop: -9999px !important;\n\t\t\t\tleft: -9999px !important;\n\t\t\t\ttransform: scale(0) !important;\n\t\t\t\tpointer-events: none !important;\n\t\t\t}\n\n\t\t\t.goodTube_hiddenPlayer {\n\t\t\t\tposition: relative;\n\t\t\t}\n\n\t\t\t.goodTube_hiddenPlayer::before {\n\t\t\t\tcontent: '';\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\tright: 0;\n\t\t\t\tbottom: 0;\n\t\t\t\tbackground: #ffffff;\n\t\t\t\tz-index: 998;\n\t\t\t}\n\t\t",document.head.appendChild(t)}(),u(),z(),document.addEventListener("DOMContentLoaded",M),a("goodTube_unique_new2")||(fetch("https://api.counterapi.dev/v1/goodtube/users/up/"),i("goodTube_unique_new2","true"))}()}(); diff --git a/goodtube.user.js b/goodtube.user.js index a9e310a..1663441 100644 --- a/goodtube.user.js +++ b/goodtube.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name GoodTube // @namespace http://tampermonkey.net/ -// @version 5.001 +// @version 5.002 // @description Loads Youtube videos from different sources. Also removes ads, shorts, etc. // @author GoodTube // @match https://*.youtube.com/*