From 768b513303de1f5366fa80d98472e584000fbd09 Mon Sep 17 00:00:00 2001 From: goodtube4u Date: Sun, 16 Nov 2025 15:27:59 +1000 Subject: [PATCH] Phantom play bug fix, sort of --- goodtube.js | 12 ++++++++---- goodtube.min.js | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/goodtube.js b/goodtube.js index 2ef0c2f..95c0e58 100644 --- a/goodtube.js +++ b/goodtube.js @@ -1013,8 +1013,10 @@ goodTube_player_syncStartingTime(); } - // Play the video (this solves some edge cases) - goodTube_player_play(); + // Play the video (this solves some edge cases in Firefox) + if (navigator.userAgent.toLowerCase().indexOf('firefox') !== -1) { + goodTube_player_play(); + } } // Sync the starting time @@ -1976,8 +1978,10 @@ // Sync the autoplay goodTube_hideAndMuteAdsFallback_syncAutoplay(); - // Play the video (this solves some edge cases) - goodTube_player_play(); + // Play the video (this solves some edge cases in Firefox) + if (navigator.userAgent.toLowerCase().indexOf('firefox') !== -1) { + goodTube_player_play(); + } // If we're in fullscreen already if (document.fullscreenElement) { diff --git a/goodtube.min.js b/goodtube.min.js index bde9d90..8e56c61 100644 --- a/goodtube.min.js +++ b/goodtube.min.js @@ -134,7 +134,7 @@ max-width: calc(177.77777778vh - var(--ytd-watch-flexy-masthead-height) * 1.7777777778 - var(--ytd-margin-6x) * 1.7777777778 - var(--ytd-watch-flexy-space-below-player) * 1.7777777778) !important; min-width: calc(var(--ytd-watch-flexy-min-player-height) * 1.7777777778) !important; } - `,document.head.appendChild(i);let n=document.createElement("div");n.id="goodTube_playerWrapper",n.classList.add("goodTube_hidden"),document.body.appendChild(n);let l=document.createElement("iframe");l.src="https://wikipedia.org/wiki/Bruce_Lee?goodTubeProxy=1",l.setAttribute("width","100%"),l.setAttribute("height","100%"),l.setAttribute("frameborder","0"),l.setAttribute("scrolling","yes"),l.setAttribute("allow","accelerometer *; autoplay *; clipboard-write *; encrypted-media *; gyroscope *; picture-in-picture *; web-share *;"),l.setAttribute("referrerpolicy","strict-origin-when-cross-origin"),l.setAttribute("allowfullscreen",!0),l.style.display="none",n.appendChild(l),re=n,B=l,ti(),setInterval(ti,100)}let Kt=!1;function Dn(){if(y)Kt||(ft(!0),Kt=!0);else{Kt=!1;let e=document.querySelector("#player.ytd-watch-flexy");if((!e||e.offsetHeight<=0)&&(e=document.querySelector("#ytd-player")),(!e||e.offsetHeight<=0)&&(e=document.querySelector(".player-size")),(!e||e.offsetHeight<=0)&&(e=document.querySelector(".html5-video-player")),e&&e.offsetHeight>0){let t=e.getBoundingClientRect();re.style.top=t.top+window.scrollY+"px",re.style.left=t.left+window.scrollX+"px",re.style.width=e.offsetWidth+"px",re.style.height=e.offsetHeight+"px",at(re)}}}let xe=setTimeout(()=>{},0);function We(){d=document.getElementById("movie_player");let e=!1,t=!1;if(d&&typeof d.getVideoData=="function"&&(e=d.getVideoData(),t=e.video_id),!e||t!==T.v){clearTimeout(xe),xe=setTimeout(We,100);return}if(d&&typeof d.getPlaylist=="function"&&typeof d.getPlaylistIndex=="function"){if(te=d.getPlaylist(),Ye=d.getPlaylistIndex(),!te){clearTimeout(xe),xe=setTimeout(We,100);return}}else{clearTimeout(xe),xe=setTimeout(We,100);return}}let Qo=setTimeout(()=>{},0);function qo(){if(de="",Cn(),!Fo){clearTimeout(Qo),Qo=setTimeout(qo,100);return}let e=0;je==="false"&&typeof T.t<"u"&&(e=parseFloat(T.t.replace("s","")));let t="false";if(typeof T.i<"u"||typeof T.index<"u"||typeof T.list<"u"?(t="true",We()):(te=!1,Ye=0),zo){z()||ft();let i="";e>0&&(i="&start="+e),B.contentWindow.postMessage("goodTube_src_https://www.youtube.com/embed/"+T.v+"?goodTubeEmbed=1&autoplay=1&goodTube_playlist="+t+"&goodTube_autoplay="+Z+"&goodTube_playbackSpeed="+Te+"&goodTube_hideInfoCards="+Ge+"&goodTube_hideEndScreen="+Qe+i,"*"),zo=!1}else B.contentWindow.postMessage("goodTube_load_"+T.v+"|||"+e+"|||"+t,"*");je==="false"&&Jt(),gt()}let pt=setTimeout(()=>{},0);function Jt(){if(!jt){clearTimeout(pt),pt=setTimeout(Jt,100);return}d=document.getElementById("movie_player");let e=!1,t=!1;if(d&&typeof d.getVideoData=="function"&&typeof d.getCurrentTime=="function"&&(e=d.getVideoData(),t=e.video_id),!e||!t||t!==T.v){clearTimeout(pt),pt=setTimeout(Jt,100);return}let i=Math.floor(d.getCurrentTime());i>=10&&jo(i,t)}function ft(e=!1){He||(e?(d=document.getElementById("movie_player"),d&&typeof d.pauseVideo=="function"&&typeof d.mute=="function"&&(d.pauseVideo(),d.mute())):B.contentWindow.postMessage("goodTube_stopVideo","*")),j(re)}function jo(e,t=""){B.contentWindow.postMessage("goodTube_skipTo_"+e+"|||"+t,"*")}function Cn(){B.contentWindow.postMessage("goodTube_pause","*")}let mt=setTimeout(()=>{},0);function gt(){if(!Wt||!jt){clearTimeout(mt),mt=setTimeout(gt,100);return}if(!y)B.contentWindow.postMessage("goodTube_play|||"+T.v,"*");else{d=document.getElementById("movie_player");let e=!1;if(d&&typeof d.getVideoData=="function"&&(e=d.getVideoData()),!e||T.v!==e.video_id){clearTimeout(mt),mt=setTimeout(gt,100);return}let t=document.querySelector("#movie_player video");if(t&&t.currentTime>=t.duration)return;d&&typeof d.playVideo=="function"&&setTimeout(()=>{d.playVideo()},100)}}function Rn(){document.addEventListener("keydown",Wo,!0),document.addEventListener("keyup",Wo,!0)}function Wo(e){if(!z()||y)return;let t=[{key:">",code:!1,ctrl:!1,shift:!0,alt:!1},{key:"<",code:!1,ctrl:!1,shift:!0,alt:!1},{key:",",code:!1,ctrl:!1,shift:!1,alt:!1},{key:".",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"arrowleft",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"arrowright",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"j",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"l",code:!1,ctrl:!1,shift:!1,alt:!1},{key:" ",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"k",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"mediaplaypause",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"m",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"f",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"c",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"o",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"w",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"=",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"-",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"w",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"a",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"s",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"d",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"[",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"]",code:!1,ctrl:!1,shift:!1,alt:!1},{key:!1,code:"numpadadd",ctrl:!1,shift:!1,alt:!1},{key:!1,code:"numpadsubtract",ctrl:!1,shift:!1,alt:!1},{key:"0",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"1",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"2",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"3",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"4",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"5",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"6",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"7",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"8",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"9",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"i",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"arrowleft",code:!1,ctrl:!0,shift:!1,alt:!1},{key:"arrowright",code:!1,ctrl:!0,shift:!1,alt:!1}],i=e.key.toLowerCase(),n=e.code.toLowerCase(),l=e.ctrlKey;e.metaKey&&(l=e.metaKey);let u=e.shiftKey,m=e.altKey,k=!1;if(t.forEach(x=>{(i===x.key||n===x.code)&&l===x.ctrl&&u===x.shift&&m===x.alt&&(k=!0)}),k){let x=e.srcElement,w=!1,ie=!1;if(x&&(typeof x.nodeName<"u"&&(w=x.nodeName.toLowerCase()),typeof x.getAttribute<"u"&&(ie=x.getAttribute("id"))),!x||w.indexOf("input")===-1&&w.indexOf("label")===-1&&w.indexOf("select")===-1&&w.indexOf("textarea")===-1&&w.indexOf("fieldset")===-1&&w.indexOf("legend")===-1&&w.indexOf("datalist")===-1&&w.indexOf("output")===-1&&w.indexOf("option")===-1&&w.indexOf("optgroup")===-1&&ie!=="contenteditable-root"){e.preventDefault(),e.stopImmediatePropagation();let pe=e.key,fe=e.keyCode;i==="mediaplaypause"&&(pe=" ",fe=32),B.contentWindow.postMessage("goodTube_shortcut_"+e.type+"_"+pe+"_"+fe+"_"+e.ctrlKey+"_"+e.metaKey+"_"+e.shiftKey+"_"+e.altKey,"*")}}}function Xt(e=!1){d=document.getElementById("movie_player"),d&&typeof d.nextVideo=="function"&&d.nextVideo(),console.log("[GoodTube] Playing next video...")}function On(){d=document.getElementById("movie_player"),d&&typeof d.previousVideo=="function"&&d.previousVideo(),console.log("[GoodTube] Playing previous video...")}let Zo=setTimeout(()=>{},0);function Ko(){if(Z==="true")Xt();else if(te){if(We(),!te||!Ye){clearTimeout(Zo),Zo=setTimeout(Ko,100);return}Ye{},0);function $o(e=!1){e||(window.top===window.self&&(console.log(` + `,document.head.appendChild(i);let n=document.createElement("div");n.id="goodTube_playerWrapper",n.classList.add("goodTube_hidden"),document.body.appendChild(n);let l=document.createElement("iframe");l.src="https://wikipedia.org/wiki/Bruce_Lee?goodTubeProxy=1",l.setAttribute("width","100%"),l.setAttribute("height","100%"),l.setAttribute("frameborder","0"),l.setAttribute("scrolling","yes"),l.setAttribute("allow","accelerometer *; autoplay *; clipboard-write *; encrypted-media *; gyroscope *; picture-in-picture *; web-share *;"),l.setAttribute("referrerpolicy","strict-origin-when-cross-origin"),l.setAttribute("allowfullscreen",!0),l.style.display="none",n.appendChild(l),re=n,B=l,ti(),setInterval(ti,100)}let Kt=!1;function Dn(){if(y)Kt||(ft(!0),Kt=!0);else{Kt=!1;let e=document.querySelector("#player.ytd-watch-flexy");if((!e||e.offsetHeight<=0)&&(e=document.querySelector("#ytd-player")),(!e||e.offsetHeight<=0)&&(e=document.querySelector(".player-size")),(!e||e.offsetHeight<=0)&&(e=document.querySelector(".html5-video-player")),e&&e.offsetHeight>0){let t=e.getBoundingClientRect();re.style.top=t.top+window.scrollY+"px",re.style.left=t.left+window.scrollX+"px",re.style.width=e.offsetWidth+"px",re.style.height=e.offsetHeight+"px",at(re)}}}let xe=setTimeout(()=>{},0);function We(){d=document.getElementById("movie_player");let e=!1,t=!1;if(d&&typeof d.getVideoData=="function"&&(e=d.getVideoData(),t=e.video_id),!e||t!==T.v){clearTimeout(xe),xe=setTimeout(We,100);return}if(d&&typeof d.getPlaylist=="function"&&typeof d.getPlaylistIndex=="function"){if(te=d.getPlaylist(),Ye=d.getPlaylistIndex(),!te){clearTimeout(xe),xe=setTimeout(We,100);return}}else{clearTimeout(xe),xe=setTimeout(We,100);return}}let Qo=setTimeout(()=>{},0);function qo(){if(de="",Cn(),!Fo){clearTimeout(Qo),Qo=setTimeout(qo,100);return}let e=0;je==="false"&&typeof T.t<"u"&&(e=parseFloat(T.t.replace("s","")));let t="false";if(typeof T.i<"u"||typeof T.index<"u"||typeof T.list<"u"?(t="true",We()):(te=!1,Ye=0),zo){z()||ft();let i="";e>0&&(i="&start="+e),B.contentWindow.postMessage("goodTube_src_https://www.youtube.com/embed/"+T.v+"?goodTubeEmbed=1&autoplay=1&goodTube_playlist="+t+"&goodTube_autoplay="+Z+"&goodTube_playbackSpeed="+Te+"&goodTube_hideInfoCards="+Ge+"&goodTube_hideEndScreen="+Qe+i,"*"),zo=!1}else B.contentWindow.postMessage("goodTube_load_"+T.v+"|||"+e+"|||"+t,"*");je==="false"&&Jt(),navigator.userAgent.toLowerCase().indexOf("firefox")!==-1&>()}let pt=setTimeout(()=>{},0);function Jt(){if(!jt){clearTimeout(pt),pt=setTimeout(Jt,100);return}d=document.getElementById("movie_player");let e=!1,t=!1;if(d&&typeof d.getVideoData=="function"&&typeof d.getCurrentTime=="function"&&(e=d.getVideoData(),t=e.video_id),!e||!t||t!==T.v){clearTimeout(pt),pt=setTimeout(Jt,100);return}let i=Math.floor(d.getCurrentTime());i>=10&&jo(i,t)}function ft(e=!1){He||(e?(d=document.getElementById("movie_player"),d&&typeof d.pauseVideo=="function"&&typeof d.mute=="function"&&(d.pauseVideo(),d.mute())):B.contentWindow.postMessage("goodTube_stopVideo","*")),j(re)}function jo(e,t=""){B.contentWindow.postMessage("goodTube_skipTo_"+e+"|||"+t,"*")}function Cn(){B.contentWindow.postMessage("goodTube_pause","*")}let mt=setTimeout(()=>{},0);function gt(){if(!Wt||!jt){clearTimeout(mt),mt=setTimeout(gt,100);return}if(!y)B.contentWindow.postMessage("goodTube_play|||"+T.v,"*");else{d=document.getElementById("movie_player");let e=!1;if(d&&typeof d.getVideoData=="function"&&(e=d.getVideoData()),!e||T.v!==e.video_id){clearTimeout(mt),mt=setTimeout(gt,100);return}let t=document.querySelector("#movie_player video");if(t&&t.currentTime>=t.duration)return;d&&typeof d.playVideo=="function"&&setTimeout(()=>{d.playVideo()},100)}}function Rn(){document.addEventListener("keydown",Wo,!0),document.addEventListener("keyup",Wo,!0)}function Wo(e){if(!z()||y)return;let t=[{key:">",code:!1,ctrl:!1,shift:!0,alt:!1},{key:"<",code:!1,ctrl:!1,shift:!0,alt:!1},{key:",",code:!1,ctrl:!1,shift:!1,alt:!1},{key:".",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"arrowleft",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"arrowright",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"j",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"l",code:!1,ctrl:!1,shift:!1,alt:!1},{key:" ",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"k",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"mediaplaypause",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"m",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"f",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"c",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"o",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"w",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"=",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"-",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"w",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"a",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"s",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"d",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"[",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"]",code:!1,ctrl:!1,shift:!1,alt:!1},{key:!1,code:"numpadadd",ctrl:!1,shift:!1,alt:!1},{key:!1,code:"numpadsubtract",ctrl:!1,shift:!1,alt:!1},{key:"0",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"1",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"2",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"3",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"4",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"5",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"6",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"7",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"8",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"9",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"i",code:!1,ctrl:!1,shift:!1,alt:!1},{key:"arrowleft",code:!1,ctrl:!0,shift:!1,alt:!1},{key:"arrowright",code:!1,ctrl:!0,shift:!1,alt:!1}],i=e.key.toLowerCase(),n=e.code.toLowerCase(),l=e.ctrlKey;e.metaKey&&(l=e.metaKey);let u=e.shiftKey,m=e.altKey,k=!1;if(t.forEach(x=>{(i===x.key||n===x.code)&&l===x.ctrl&&u===x.shift&&m===x.alt&&(k=!0)}),k){let x=e.srcElement,w=!1,ie=!1;if(x&&(typeof x.nodeName<"u"&&(w=x.nodeName.toLowerCase()),typeof x.getAttribute<"u"&&(ie=x.getAttribute("id"))),!x||w.indexOf("input")===-1&&w.indexOf("label")===-1&&w.indexOf("select")===-1&&w.indexOf("textarea")===-1&&w.indexOf("fieldset")===-1&&w.indexOf("legend")===-1&&w.indexOf("datalist")===-1&&w.indexOf("output")===-1&&w.indexOf("option")===-1&&w.indexOf("optgroup")===-1&&ie!=="contenteditable-root"){e.preventDefault(),e.stopImmediatePropagation();let pe=e.key,fe=e.keyCode;i==="mediaplaypause"&&(pe=" ",fe=32),B.contentWindow.postMessage("goodTube_shortcut_"+e.type+"_"+pe+"_"+fe+"_"+e.ctrlKey+"_"+e.metaKey+"_"+e.shiftKey+"_"+e.altKey,"*")}}}function Xt(e=!1){d=document.getElementById("movie_player"),d&&typeof d.nextVideo=="function"&&d.nextVideo(),console.log("[GoodTube] Playing next video...")}function On(){d=document.getElementById("movie_player"),d&&typeof d.previousVideo=="function"&&d.previousVideo(),console.log("[GoodTube] Playing previous video...")}let Zo=setTimeout(()=>{},0);function Ko(){if(Z==="true")Xt();else if(te){if(We(),!te||!Ye){clearTimeout(Zo),Zo=setTimeout(Ko,100);return}Ye{},0);function $o(e=!1){e||(window.top===window.self&&(console.log(` ================================================== ______ ________ __ / ____/___ ____ ____/ /_ __/_ __/ /_ ___ @@ -142,7 +142,7 @@ / /_/ / /_/ / /_/ / /_/ / / / / /_/ / /_/ / __/ \\____/\\____/\\____/\\____/ /_/ \\____/_____/\\___/ -==================================================`),console.log("[GoodTube] Initiating...")),window.addEventListener("message",ei),Zt(),document.addEventListener("DOMContentLoaded",$t),(document.readyState==="interactive"||document.readyState==="complete")&&$t()),!document.body||!document.head?(clearTimeout(Xo),Xo=setTimeout(()=>{$o(!0)},1)):$t()}function $t(){Jo||(Jo=!0,zn(),xn(),kn(),Go(),Fn(),Pn(),Rn(),Vn())}let bt=setTimeout(()=>{},0);function ei(e){if(typeof e.data=="string"){if(!document.body||!document.head?(clearTimeout(bt),bt=setTimeout(()=>{ei(e)},100)):e.data==="goodTube_proxyIframe_loaded"?Fo=!0:e.data==="goodTube_playerIframe_loaded"&&(jt=!0,B.style.display="block"),e.data.indexOf("goodTube_pip_")!==-1)e.data.replace("goodTube_pip_","")==="true"?He=!0:(He=!1,typeof T.v>"u"&&ft());else if(e.data.indexOf("goodTube_playbackSpeed_")!==-1)p("goodTube_playbackSpeed",e.data.replace("goodTube_playbackSpeed_","")),Te=e.data.replace("goodTube_playbackSpeed_","");else if(e.data==="goodTube_prevVideo")On();else if(e.data==="goodTube_nextVideo")Xt();else if(e.data==="goodTube_videoEnded")Ko();else if(e.data==="goodTube_theater"&&!document.fullscreenElement){let t=document.querySelector(".ytp-size-button");t&&q(t)}else if(e.data==="goodTube_autoplay_false")p("goodTube_autoplay","false"),Z="false";else if(e.data==="goodTube_autoplay_true")p("goodTube_autoplay","true"),Z="true";else if(e.data.indexOf("goodTube_syncMainPlayer_")!==-1&&z()&&!y){let t=parseFloat(e.data.replace("goodTube_syncMainPlayer_","")),i=document.querySelector("#movie_player video");if(d=document.getElementById("movie_player"),!d||typeof d.seekTo!="function"||typeof d.playVideo!="function"||typeof d.mute!="function"||typeof d.setVolume!="function")return;i&&Math.floor(i.currentTime)!==Math.floor(t)&&!Qt()&&(qt=!0,d.playVideo(),d.seekTo(t-.5),d.mute(),d.setVolume(0),i.volume=0,i.muted=!0,clearTimeout(bt),bt=setTimeout(()=>{qt=!1},1e3))}else if(e.data==="goodTube_fallback_enable")y=!0,document.body&&!document.body.classList.contains("goodTube_fallback")&&document.body.classList.add("goodTube_fallback"),Mn(),ai(),gt(),document.fullscreenElement&&(document.exitFullscreen(),window.setTimeout(()=>{let t=document.querySelector(".ytp-fullscreen-button");t&&q(t)},100));else if(e.data==="goodTube_fallback_disable")y=!1,document.body&&document.body.classList.contains("goodTube_fallback")&&document.body.classList.remove("goodTube_fallback"),document.fullscreenElement&&(document.exitFullscreen(),window.setTimeout(()=>{B.contentWindow.postMessage("goodTube_fullscreen","*")},100));else if(e.data.indexOf("goodTube_syncAspectRatio_")!==-1){let t=e.data.replace("goodTube_syncAspectRatio_","").split("_");Ln(t[0],t[1])}}}function ti(){let e=Po;e&&(e=e.split("#")[0],e=e.split("index=")[0]);let t=window.location.href;t&&(t=t.split("#")[0],t=t.split("index=")[0]),e!==t&&(T=No(),z()?(qo(),Bn()):ft(),Po=window.location.href),z()&&(Nn(),En(),y||Sn(),In(),Dn(),Un()),An(),qe==="true"&&wn()}function Vn(){let e=document.createElement("div");document.body.appendChild(e);let t=" checked";he==="true"&&(t="");let i="";Ge==="true"&&(i=" checked");let n="";Qe==="true"&&(n=" checked");let l="";dt==="true"&&(l=" checked");let u="";lt==="true"&&(u=" checked");let m="";st==="true"&&(m=" checked");let k="";qe==="true"&&(k=" checked");let x="";je==="true"&&(x=" checked");let w="";ut==="true"&&(w=" checked");let ie="",pe="",fe="",me="",ne="",vt="";ie==="default"?ie=" selected":W==="2"?pe=" selected":W==="3"?fe=" selected":W==="4"?me=" selected":W==="5"?ne=" selected":W==="6"&&(vt=" selected"),rt(e,` +==================================================`),console.log("[GoodTube] Initiating...")),window.addEventListener("message",ei),Zt(),document.addEventListener("DOMContentLoaded",$t),(document.readyState==="interactive"||document.readyState==="complete")&&$t()),!document.body||!document.head?(clearTimeout(Xo),Xo=setTimeout(()=>{$o(!0)},1)):$t()}function $t(){Jo||(Jo=!0,zn(),xn(),kn(),Go(),Fn(),Pn(),Rn(),Vn())}let bt=setTimeout(()=>{},0);function ei(e){if(typeof e.data=="string"){if(!document.body||!document.head?(clearTimeout(bt),bt=setTimeout(()=>{ei(e)},100)):e.data==="goodTube_proxyIframe_loaded"?Fo=!0:e.data==="goodTube_playerIframe_loaded"&&(jt=!0,B.style.display="block"),e.data.indexOf("goodTube_pip_")!==-1)e.data.replace("goodTube_pip_","")==="true"?He=!0:(He=!1,typeof T.v>"u"&&ft());else if(e.data.indexOf("goodTube_playbackSpeed_")!==-1)p("goodTube_playbackSpeed",e.data.replace("goodTube_playbackSpeed_","")),Te=e.data.replace("goodTube_playbackSpeed_","");else if(e.data==="goodTube_prevVideo")On();else if(e.data==="goodTube_nextVideo")Xt();else if(e.data==="goodTube_videoEnded")Ko();else if(e.data==="goodTube_theater"&&!document.fullscreenElement){let t=document.querySelector(".ytp-size-button");t&&q(t)}else if(e.data==="goodTube_autoplay_false")p("goodTube_autoplay","false"),Z="false";else if(e.data==="goodTube_autoplay_true")p("goodTube_autoplay","true"),Z="true";else if(e.data.indexOf("goodTube_syncMainPlayer_")!==-1&&z()&&!y){let t=parseFloat(e.data.replace("goodTube_syncMainPlayer_","")),i=document.querySelector("#movie_player video");if(d=document.getElementById("movie_player"),!d||typeof d.seekTo!="function"||typeof d.playVideo!="function"||typeof d.mute!="function"||typeof d.setVolume!="function")return;i&&Math.floor(i.currentTime)!==Math.floor(t)&&!Qt()&&(qt=!0,d.playVideo(),d.seekTo(t-.5),d.mute(),d.setVolume(0),i.volume=0,i.muted=!0,clearTimeout(bt),bt=setTimeout(()=>{qt=!1},1e3))}else if(e.data==="goodTube_fallback_enable")y=!0,document.body&&!document.body.classList.contains("goodTube_fallback")&&document.body.classList.add("goodTube_fallback"),Mn(),ai(),navigator.userAgent.toLowerCase().indexOf("firefox")!==-1&>(),document.fullscreenElement&&(document.exitFullscreen(),window.setTimeout(()=>{let t=document.querySelector(".ytp-fullscreen-button");t&&q(t)},100));else if(e.data==="goodTube_fallback_disable")y=!1,document.body&&document.body.classList.contains("goodTube_fallback")&&document.body.classList.remove("goodTube_fallback"),document.fullscreenElement&&(document.exitFullscreen(),window.setTimeout(()=>{B.contentWindow.postMessage("goodTube_fullscreen","*")},100));else if(e.data.indexOf("goodTube_syncAspectRatio_")!==-1){let t=e.data.replace("goodTube_syncAspectRatio_","").split("_");Ln(t[0],t[1])}}}function ti(){let e=Po;e&&(e=e.split("#")[0],e=e.split("index=")[0]);let t=window.location.href;t&&(t=t.split("#")[0],t=t.split("index=")[0]),e!==t&&(T=No(),z()?(qo(),Bn()):ft(),Po=window.location.href),z()&&(Nn(),En(),y||Sn(),In(),Dn(),Un()),An(),qe==="true"&&wn()}function Vn(){let e=document.createElement("div");document.body.appendChild(e);let t=" checked";he==="true"&&(t="");let i="";Ge==="true"&&(i=" checked");let n="";Qe==="true"&&(n=" checked");let l="";dt==="true"&&(l=" checked");let u="";lt==="true"&&(u=" checked");let m="";st==="true"&&(m=" checked");let k="";qe==="true"&&(k=" checked");let x="";je==="true"&&(x=" checked");let w="";ut==="true"&&(w=" checked");let ie="",pe="",fe="",me="",ne="",vt="";ie==="default"?ie=" selected":W==="2"?pe=" selected":W==="3"?fe=" selected":W==="4"?me=" selected":W==="5"?ne=" selected":W==="6"&&(vt=" selected"),rt(e,`