From b4be924cc96c9e8c1e51a8c6996f8c149d0097fa Mon Sep 17 00:00:00 2001 From: goodtube4u Date: Wed, 19 Nov 2025 08:51:47 +1000 Subject: [PATCH] Better detection evasion and video management --- goodtube.js | 129 +++++++++++++++++++++++++++++++++++++++++------- goodtube.min.js | 26 +++++----- 2 files changed, 123 insertions(+), 32 deletions(-) diff --git a/goodtube.js b/goodtube.js index f1122c2..9a5adb2 100644 --- a/goodtube.js +++ b/goodtube.js @@ -170,6 +170,88 @@ element.insertAdjacentHTML(position, html); } + // Trigger a keyboard shortcut + function goodTube_helper_shortcut(shortcut) { + let theKey = false; + let keyCode = false; + let shiftKey = false; + + if (shortcut === 'next') { + theKey = 'n'; + keyCode = 78; + shiftKey = true; + } + else if (shortcut === 'previous') { + theKey = 'p'; + keyCode = 80; + shiftKey = true; + } + + let e = false; + e = new window.KeyboardEvent('focus', { + bubbles: true, + key: theKey, + keyCode: keyCode, + shiftKey: shiftKey, + charCode: 0, + }); + document.dispatchEvent(e); + + e = new window.KeyboardEvent('keydown', { + bubbles: true, + key: theKey, + keyCode: keyCode, + shiftKey: shiftKey, + charCode: 0, + }); + document.dispatchEvent(e); + + e = new window.KeyboardEvent('beforeinput', { + bubbles: true, + key: theKey, + keyCode: keyCode, + shiftKey: shiftKey, + charCode: 0, + }); + document.dispatchEvent(e); + + e = new window.KeyboardEvent('keypress', { + bubbles: true, + key: theKey, + keyCode: keyCode, + shiftKey: shiftKey, + charCode: 0, + }); + document.dispatchEvent(e); + + e = new window.KeyboardEvent('input', { + bubbles: true, + key: theKey, + keyCode: keyCode, + shiftKey: shiftKey, + charCode: 0, + }); + document.dispatchEvent(e); + + e = new window.KeyboardEvent('change', { + bubbles: true, + key: theKey, + keyCode: keyCode, + shiftKey: shiftKey, + charCode: 0, + }); + document.dispatchEvent(e); + + e = new window.KeyboardEvent('keyup', { + bubbles: true, + key: theKey, + keyCode: keyCode, + shiftKey: shiftKey, + charCode: 0, + }); + document.dispatchEvent(e); + } + /* Global variables ------------------------------------------------------------------------------------------ */ @@ -609,14 +691,17 @@ } // Otherwise, the "hide and mute" ads fallback is inactive else { - // IF (the video is playing) - // AND (we're not syncing the main player OR it's not the main player OR we're not watching a video) - if (!video.paused && (!goodTube_syncingPlayer || !video.closest('#movie_player') || !goodTube_helper_watchingVideo())) { + if ( + !video.paused && + (!goodTube_syncingPlayer && video.closest('#movie_player')) + && + !video.closest('#inline_player') + ) { // Mute the video video.muted = true; video.volume = 0; - // If ads are not showing OR it's not the main player + // If ads are not showing OR it's not the main player AND not the inline player if (!goodTube_helper_adsShowing() || !video.closest('#movie_player')) { // Pause the video video.pause(); @@ -1570,15 +1655,18 @@ /* Navigation ------------------------------------------------------------------------------------------ */ // Play the next video - function goodTube_nav_next(shuffleLoopMethod = false) { - // Re fetch the page API - goodTube_page_api = document.getElementById('movie_player'); + function goodTube_nav_next() { + // // Re fetch the page API + // goodTube_page_api = document.getElementById('movie_player'); - // Make sure it exists - if (goodTube_page_api && typeof goodTube_page_api.nextVideo === 'function') { - // Play the previous video - goodTube_page_api.nextVideo(); - } + // // Make sure it exists + // if (goodTube_page_api && typeof goodTube_page_api.nextVideo === 'function') { + // // Play the previous video + // goodTube_page_api.nextVideo(); + // } + + // Let's try this, see if we can evade detection better + goodTube_helper_shortcut('next'); // Debug message console.log('[GoodTube] Playing next video...'); @@ -1586,14 +1674,17 @@ // Play the previous video function goodTube_nav_prev() { - // Re fetch the page API - goodTube_page_api = document.getElementById('movie_player'); + // // Re fetch the page API + // goodTube_page_api = document.getElementById('movie_player'); - // Make sure it exists - if (goodTube_page_api && typeof goodTube_page_api.previousVideo === 'function') { - // Play the previous video - goodTube_page_api.previousVideo(); - } + // // Make sure it exists + // if (goodTube_page_api && typeof goodTube_page_api.previousVideo === 'function') { + // // Play the previous video + // goodTube_page_api.previousVideo(); + // } + + // Let's try this, see if we can evade detection better + goodTube_helper_shortcut('previous'); // Debug message console.log('[GoodTube] Playing previous video...'); diff --git a/goodtube.min.js b/goodtube.min.js index f4cbb39..495bfc2 100644 --- a/goodtube.min.js +++ b/goodtube.min.js @@ -1,8 +1,8 @@ -(()=>{(function(){"use strict";var en=Object.defineProperty,f=(e,t)=>en(e,"name",{value:t,configurable:!0}),{entries:wo,setPrototypeOf:ko,isFrozen:tn,getPrototypeOf:on,getOwnPropertyDescriptor:nn}=Object,{freeze:N,seal:F,create:Bt}=Object,{apply:Vt,construct:Ft}=typeof Reflect<"u"&&Reflect;N||(N=f(function(e){return e},"freeze")),F||(F=f(function(e){return e},"seal")),Vt||(Vt=f(function(e,t){for(var i=arguments.length,n=new Array(i>2?i-2:0),l=2;l1?t-1:0),n=1;n1?i-1:0),l=1;l2&&arguments[2]!==void 0?arguments[2]:tt;ko&&ko(e,null);let n=t.length;for(;n--;){let l=t[n];if(typeof l=="string"){let u=i(l);u!==l&&(tn(t)||(t[n]=u),l=u)}e[l]=!0}return e}f(c,"addToSet");function So(e){for(let t=0;t/gm),fn=F(/\$\{[\w\W]*/gm),mn=F(/^data-[\-\w.\u00B7-\uFFFF]+$/),gn=F(/^aria-[\-\w]+$/),Co=F(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),bn=F(/^(?:\w+script|data):/i),yn=F(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ro=F(/^html$/i),_n=F(/^[a-z][.\w]*(-[.\w]+)+$/i),Oo=Object.freeze({__proto__:null,ARIA_ATTR:gn,ATTR_WHITESPACE:yn,CUSTOM_ELEMENT:_n,DATA_ATTR:mn,DOCTYPE_NAME:Ro,ERB_EXPR:pn,IS_ALLOWED_URI:Co,IS_SCRIPT_OR_DATA:bn,MUSTACHE_EXPR:cn,TMPLIT_EXPR:fn}),Ve={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},hn=f(function(){return typeof window>"u"?null:window},"getGlobal"),Tn=f(function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let i=null,n="data-tt-policy-suffix";t&&t.hasAttribute(n)&&(i=t.getAttribute(n));let l="dompurify"+(i?"#"+i:"");try{return e.createPolicy(l,{createHTML(u){return u},createScriptURL(u){return u}})}catch{return console.warn("TrustedTypes policy "+l+" could not be created."),null}},"_createTrustedTypesPolicy"),No=f(function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},"_createHooksMap");function jt(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:hn(),t=f(o=>jt(o),"DOMPurify");if(t.version="3.3.0",t.removed=[],!e||!e.document||e.document.nodeType!==Ve.document||!e.Element)return t.isSupported=!1,t;let{document:i}=e,n=i,l=n.currentScript,{DocumentFragment:u,HTMLTemplateElement:m,Node:w,Element:x,NodeFilter:k,NamedNodeMap:ie=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:pe,DOMParser:fe,trustedTypes:me}=e,ne=x.prototype,ht=_e(ne,"cloneNode"),Tt=_e(ne,"remove"),xt=_e(ne,"nextSibling"),vt=_e(ne,"childNodes"),ae=_e(ne,"parentNode");if(typeof m=="function"){let o=i.createElement("template");o.content&&o.content.ownerDocument&&(i=o.content.ownerDocument)}let A,L="",{implementation:Se,createNodeIterator:wt,createDocumentFragment:kt,getElementsByTagName:We}=i,{importNode:At}=n,y=No();t.isSupported=typeof wo=="function"&&typeof ae=="function"&&Se&&Se.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:Y,ERB_EXPR:G,TMPLIT_EXPR:H,DATA_ATTR:Et,ARIA_ATTR:St,IS_SCRIPT_OR_DATA:It,ATTR_WHITESPACE:Ze,CUSTOM_ELEMENT:Mt}=Oo,{IS_ALLOWED_URI:Ke}=Oo,S=null,Ci=c({},[...Io,...Ut,...Yt,...Gt,...Mo]),D=null,Ri=c({},[...Lo,...Qt,...Do,...ot]),v=Object.seal(Bt(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Je=null,po=null,Ie=Object.seal(Bt(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Oi=!0,fo=!0,Ni=!1,Pi=!0,Me=!1,Lt=!0,ge=!1,mo=!1,go=!1,Le=!1,Dt=!1,Ct=!1,Bi=!0,Vi=!1,na="user-content-",bo=!0,Xe=!1,De={},Ce=null,Fi=c({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),zi=null,Hi=c({},["audio","video","img","source","image","track"]),yo=null,Ui=c({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Rt="http://www.w3.org/1998/Math/MathML",Ot="http://www.w3.org/2000/svg",$="http://www.w3.org/1999/xhtml",Re=$,_o=!1,ho=null,aa=c({},[Rt,Ot,$],zt),Nt=c({},["mi","mo","mn","ms","mtext"]),Pt=c({},["annotation-xml"]),ra=c({},["title","style","font","a","script"]),$e=null,da=["application/xhtml+xml","text/html"],la="text/html",I=null,Oe=null,sa=i.createElement("form"),Yi=f(function(o){return o instanceof RegExp||o instanceof Function},"isRegexOrFunction"),To=f(function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Oe&&Oe===o)){if((!o||typeof o!="object")&&(o={}),o=q(o),$e=da.indexOf(o.PARSER_MEDIA_TYPE)===-1?la:o.PARSER_MEDIA_TYPE,I=$e==="application/xhtml+xml"?zt:tt,S=U(o,"ALLOWED_TAGS")?c({},o.ALLOWED_TAGS,I):Ci,D=U(o,"ALLOWED_ATTR")?c({},o.ALLOWED_ATTR,I):Ri,ho=U(o,"ALLOWED_NAMESPACES")?c({},o.ALLOWED_NAMESPACES,zt):aa,yo=U(o,"ADD_URI_SAFE_ATTR")?c(q(Ui),o.ADD_URI_SAFE_ATTR,I):Ui,zi=U(o,"ADD_DATA_URI_TAGS")?c(q(Hi),o.ADD_DATA_URI_TAGS,I):Hi,Ce=U(o,"FORBID_CONTENTS")?c({},o.FORBID_CONTENTS,I):Fi,Je=U(o,"FORBID_TAGS")?c({},o.FORBID_TAGS,I):q({}),po=U(o,"FORBID_ATTR")?c({},o.FORBID_ATTR,I):q({}),De=U(o,"USE_PROFILES")?o.USE_PROFILES:!1,Oi=o.ALLOW_ARIA_ATTR!==!1,fo=o.ALLOW_DATA_ATTR!==!1,Ni=o.ALLOW_UNKNOWN_PROTOCOLS||!1,Pi=o.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Me=o.SAFE_FOR_TEMPLATES||!1,Lt=o.SAFE_FOR_XML!==!1,ge=o.WHOLE_DOCUMENT||!1,Le=o.RETURN_DOM||!1,Dt=o.RETURN_DOM_FRAGMENT||!1,Ct=o.RETURN_TRUSTED_TYPE||!1,go=o.FORCE_BODY||!1,Bi=o.SANITIZE_DOM!==!1,Vi=o.SANITIZE_NAMED_PROPS||!1,bo=o.KEEP_CONTENT!==!1,Xe=o.IN_PLACE||!1,Ke=o.ALLOWED_URI_REGEXP||Co,Re=o.NAMESPACE||$,Nt=o.MATHML_TEXT_INTEGRATION_POINTS||Nt,Pt=o.HTML_INTEGRATION_POINTS||Pt,v=o.CUSTOM_ELEMENT_HANDLING||{},o.CUSTOM_ELEMENT_HANDLING&&Yi(o.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(v.tagNameCheck=o.CUSTOM_ELEMENT_HANDLING.tagNameCheck),o.CUSTOM_ELEMENT_HANDLING&&Yi(o.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(v.attributeNameCheck=o.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),o.CUSTOM_ELEMENT_HANDLING&&typeof o.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(v.allowCustomizedBuiltInElements=o.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Me&&(fo=!1),Dt&&(Le=!0),De&&(S=c({},Mo),D=[],De.html===!0&&(c(S,Io),c(D,Lo)),De.svg===!0&&(c(S,Ut),c(D,Qt),c(D,ot)),De.svgFilters===!0&&(c(S,Yt),c(D,Qt),c(D,ot)),De.mathMl===!0&&(c(S,Gt),c(D,Do),c(D,ot))),o.ADD_TAGS&&(typeof o.ADD_TAGS=="function"?Ie.tagCheck=o.ADD_TAGS:(S===Ci&&(S=q(S)),c(S,o.ADD_TAGS,I))),o.ADD_ATTR&&(typeof o.ADD_ATTR=="function"?Ie.attributeCheck=o.ADD_ATTR:(D===Ri&&(D=q(D)),c(D,o.ADD_ATTR,I))),o.ADD_URI_SAFE_ATTR&&c(yo,o.ADD_URI_SAFE_ATTR,I),o.FORBID_CONTENTS&&(Ce===Fi&&(Ce=q(Ce)),c(Ce,o.FORBID_CONTENTS,I)),bo&&(S["#text"]=!0),ge&&c(S,["html","head","body"]),S.table&&(c(S,["tbody"]),delete Je.tbody),o.TRUSTED_TYPES_POLICY){if(typeof o.TRUSTED_TYPES_POLICY.createHTML!="function")throw Be('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof o.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Be('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');A=o.TRUSTED_TYPES_POLICY,L=A.createHTML("")}else A===void 0&&(A=Tn(me,l)),A!==null&&typeof L=="string"&&(L=A.createHTML(""));N&&N(o),Oe=o}},"_parseConfig"),Gi=c({},[...Ut,...Yt,...sn]),Qi=c({},[...Gt,...un]),ua=f(function(o){let r=ae(o);(!r||!r.tagName)&&(r={namespaceURI:Re,tagName:"template"});let a=tt(o.tagName),b=tt(r.tagName);return ho[o.namespaceURI]?o.namespaceURI===Ot?r.namespaceURI===$?a==="svg":r.namespaceURI===Rt?a==="svg"&&(b==="annotation-xml"||Nt[b]):!!Gi[a]:o.namespaceURI===Rt?r.namespaceURI===$?a==="math":r.namespaceURI===Ot?a==="math"&&Pt[b]:!!Qi[a]:o.namespaceURI===$?r.namespaceURI===Ot&&!Pt[b]||r.namespaceURI===Rt&&!Nt[b]?!1:!Qi[a]&&(ra[a]||!Gi[a]):!!($e==="application/xhtml+xml"&&ho[o.namespaceURI]):!1},"_checkValidNamespace"),be=f(function(o){Ne(t.removed,{element:o});try{ae(o).removeChild(o)}catch{Tt(o)}},"_forceRemove"),ye=f(function(o,r){try{Ne(t.removed,{attribute:r.getAttributeNode(o),from:r})}catch{Ne(t.removed,{attribute:null,from:r})}if(r.removeAttribute(o),o==="is")if(Le||Dt)try{be(r)}catch{}else try{r.setAttribute(o,"")}catch{}},"_removeAttribute"),ji=f(function(o){let r=null,a=null;if(go)o=""+o;else{let h=Ht(o,/^[\r\n\t ]+/);a=h&&h[0]}$e==="application/xhtml+xml"&&Re===$&&(o=''+o+"");let b=A?A.createHTML(o):o;if(Re===$)try{r=new fe().parseFromString(b,$e)}catch{}if(!r||!r.documentElement){r=Se.createDocument(Re,"template",null);try{r.documentElement.innerHTML=_o?L:b}catch{}}let C=r.body||r.documentElement;return o&&a&&C.insertBefore(i.createTextNode(a),C.childNodes[0]||null),Re===$?We.call(r,ge?"html":"body")[0]:ge?r.documentElement:C},"_initDocument"),qi=f(function(o){return wt.call(o.ownerDocument||o,o,k.SHOW_ELEMENT|k.SHOW_COMMENT|k.SHOW_TEXT|k.SHOW_PROCESSING_INSTRUCTION|k.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),xo=f(function(o){return o instanceof pe&&(typeof o.nodeName!="string"||typeof o.textContent!="string"||typeof o.removeChild!="function"||!(o.attributes instanceof ie)||typeof o.removeAttribute!="function"||typeof o.setAttribute!="function"||typeof o.namespaceURI!="string"||typeof o.insertBefore!="function"||typeof o.hasChildNodes!="function")},"_isClobbered"),Wi=f(function(o){return typeof w=="function"&&o instanceof w},"_isNode");function X(o,r,a){et(o,b=>{b.call(t,r,a,Oe)})}f(X,"_executeHooks");let Zi=f(function(o){let r=null;if(X(y.beforeSanitizeElements,o,null),xo(o))return be(o),!0;let a=I(o.nodeName);if(X(y.uponSanitizeElement,o,{tagName:a,allowedTags:S}),Lt&&o.hasChildNodes()&&!Wi(o.firstElementChild)&&P(/<[/\w!]/g,o.innerHTML)&&P(/<[/\w!]/g,o.textContent)||o.nodeType===Ve.progressingInstruction||Lt&&o.nodeType===Ve.comment&&P(/<[/\w]/g,o.data))return be(o),!0;if(!(Ie.tagCheck instanceof Function&&Ie.tagCheck(a))&&(!S[a]||Je[a])){if(!Je[a]&&Ji(a)&&(v.tagNameCheck instanceof RegExp&&P(v.tagNameCheck,a)||v.tagNameCheck instanceof Function&&v.tagNameCheck(a)))return!1;if(bo&&!Ce[a]){let b=ae(o)||o.parentNode,C=vt(o)||o.childNodes;if(C&&b){let h=C.length;for(let ee=h-1;ee>=0;--ee){let Q=ht(C[ee],!0);Q.__removalCount=(o.__removalCount||0)+1,b.insertBefore(Q,xt(o))}}}return be(o),!0}return o instanceof x&&!ua(o)||(a==="noscript"||a==="noembed"||a==="noframes")&&P(/<\/no(script|embed|frames)/i,o.innerHTML)?(be(o),!0):(Me&&o.nodeType===Ve.text&&(r=o.textContent,et([Y,G,H],b=>{r=Pe(r,b," ")}),o.textContent!==r&&(Ne(t.removed,{element:o.cloneNode()}),o.textContent=r)),X(y.afterSanitizeElements,o,null),!1)},"_sanitizeElements"),Ki=f(function(o,r,a){if(Bi&&(r==="id"||r==="name")&&(a in i||a in sa))return!1;if(!(fo&&!po[r]&&P(Et,r))&&!(Oi&&P(St,r))&&!(Ie.attributeCheck instanceof Function&&Ie.attributeCheck(r,o))){if(!D[r]||po[r]){if(!(Ji(o)&&(v.tagNameCheck instanceof RegExp&&P(v.tagNameCheck,o)||v.tagNameCheck instanceof Function&&v.tagNameCheck(o))&&(v.attributeNameCheck instanceof RegExp&&P(v.attributeNameCheck,r)||v.attributeNameCheck instanceof Function&&v.attributeNameCheck(r,o))||r==="is"&&v.allowCustomizedBuiltInElements&&(v.tagNameCheck instanceof RegExp&&P(v.tagNameCheck,a)||v.tagNameCheck instanceof Function&&v.tagNameCheck(a))))return!1}else if(!yo[r]&&!P(Ke,Pe(a,Ze,""))&&!((r==="src"||r==="xlink:href"||r==="href")&&o!=="script"&&dn(a,"data:")===0&&zi[o])&&!(Ni&&!P(It,Pe(a,Ze,"")))&&a)return!1}return!0},"_isValidAttribute"),Ji=f(function(o){return o!=="annotation-xml"&&Ht(o,Mt)},"_isBasicCustomElement"),Xi=f(function(o){X(y.beforeSanitizeAttributes,o,null);let{attributes:r}=o;if(!r||xo(o))return;let a={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:D,forceKeepAttr:void 0},b=r.length;for(;b--;){let C=r[b],{name:h,namespaceURI:ee,value:Q}=C,j=I(h),vo=Q,R=h==="value"?vo:ln(vo);if(a.attrName=j,a.attrValue=R,a.keepAttr=!0,a.forceKeepAttr=void 0,X(y.uponSanitizeAttribute,o,a),R=a.attrValue,Vi&&(j==="id"||j==="name")&&(ye(h,o),R=na+R),Lt&&P(/((--!?|])>)|<\/(style|title|textarea)/i,R)){ye(h,o);continue}if(j==="attributename"&&Ht(R,"href")){ye(h,o);continue}if(a.forceKeepAttr)continue;if(!a.keepAttr){ye(h,o);continue}if(!Pi&&P(/\/>/i,R)){ye(h,o);continue}Me&&et([Y,G,H],pa=>{R=Pe(R,pa," ")});let $i=I(o.nodeName);if(!Ki($i,j,R)){ye(h,o);continue}if(A&&typeof me=="object"&&typeof me.getAttributeType=="function"&&!ee)switch(me.getAttributeType($i,j)){case"TrustedHTML":{R=A.createHTML(R);break}case"TrustedScriptURL":{R=A.createScriptURL(R);break}}if(R!==vo)try{ee?o.setAttributeNS(ee,h,R):o.setAttribute(h,R),xo(o)?be(o):Ao(t.removed)}catch{ye(h,o)}}X(y.afterSanitizeAttributes,o,null)},"_sanitizeAttributes"),ca=f(function o(r){let a=null,b=qi(r);for(X(y.beforeSanitizeShadowDOM,r,null);a=b.nextNode();)X(y.uponSanitizeShadowNode,a,null),Zi(a),Xi(a),a.content instanceof u&&o(a.content);X(y.afterSanitizeShadowDOM,r,null)},"_sanitizeShadowDOM");return t.sanitize=function(o){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=null,b=null,C=null,h=null;if(_o=!o,_o&&(o=""),typeof o!="string"&&!Wi(o))if(typeof o.toString=="function"){if(o=o.toString(),typeof o!="string")throw Be("dirty is not a string, aborting")}else throw Be("toString is not a function");if(!t.isSupported)return o;if(mo||To(r),t.removed=[],typeof o=="string"&&(Xe=!1),Xe){if(o.nodeName){let j=I(o.nodeName);if(!S[j]||Je[j])throw Be("root node is forbidden and cannot be sanitized in-place")}}else if(o instanceof w)a=ji(""),b=a.ownerDocument.importNode(o,!0),b.nodeType===Ve.element&&b.nodeName==="BODY"||b.nodeName==="HTML"?a=b:a.appendChild(b);else{if(!Le&&!Me&&!ge&&o.indexOf("<")===-1)return A&&Ct?A.createHTML(o):o;if(a=ji(o),!a)return Le?null:Ct?L:""}a&&go&&be(a.firstChild);let ee=qi(Xe?o:a);for(;C=ee.nextNode();)Zi(C),Xi(C),C.content instanceof u&&ca(C.content);if(Xe)return o;if(Le){if(Dt)for(h=kt.call(a.ownerDocument);a.firstChild;)h.appendChild(a.firstChild);else h=a;return(D.shadowroot||D.shadowrootmode)&&(h=At.call(n,h,!0)),h}let Q=ge?a.outerHTML:a.innerHTML;return ge&&S["!doctype"]&&a.ownerDocument&&a.ownerDocument.doctype&&a.ownerDocument.doctype.name&&P(Ro,a.ownerDocument.doctype.name)&&(Q=""+Q),Me&&et([Y,G,H],j=>{Q=Pe(Q,j," ")}),A&&Ct?A.createHTML(Q):Q},t.setConfig=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};To(o),mo=!0},t.clearConfig=function(){Oe=null,mo=!1},t.isValidAttribute=function(o,r,a){Oe||To({});let b=I(o),C=I(r);return Ki(b,C,a)},t.addHook=function(o,r){typeof r=="function"&&Ne(y[o],r)},t.removeHook=function(o,r){if(r!==void 0){let a=an(y[o],r);return a===-1?void 0:rn(y[o],a,1)[0]}return Ao(y[o])},t.removeHooks=function(o){y[o]=[]},t.removeAllHooks=function(){y=No()},t}f(jt,"createDOMPurify");var Po=jt();let Fe=!1;window.trustedTypes&&window.trustedTypes.createPolicy&&Po&&(Fe=window.trustedTypes.createPolicy("GoodTubePolicy",{createHTML:e=>Po.sanitize(e,{RETURN_TRUSTED_TYPE:!0})}));function Bo(){let e={};if(document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g,function(){function t(i){return decodeURIComponent(i.split("+").join(" "))}e[t(arguments[1])]=t(arguments[2])}),z()&&typeof e.v>"u"){let t="";window.location.href.indexOf("/watch/")!==-1?t="/watch/":t="/live/";let i=window.location.href.split(t);if(i.length===2){let n=i[1].split("?");e.v=n[n.length-1]}}return e}function p(e,t,i=399){e=e+"_new",document.cookie=e+"="+encodeURIComponent(t)+";SameSite=Lax;path=/;max-age="+i*24*60*60}function B(e){e=e+"_new";let t=document.cookie.split(";");for(let i=0;i{(function(){"use strict";var tn=Object.defineProperty,f=(e,t)=>tn(e,"name",{value:t,configurable:!0}),{entries:wo,setPrototypeOf:ko,isFrozen:on,getPrototypeOf:nn,getOwnPropertyDescriptor:an}=Object,{freeze:N,seal:F,create:Bt}=Object,{apply:Vt,construct:Ft}=typeof Reflect<"u"&&Reflect;N||(N=f(function(e){return e},"freeze")),F||(F=f(function(e){return e},"seal")),Vt||(Vt=f(function(e,t){for(var i=arguments.length,n=new Array(i>2?i-2:0),r=2;r1?t-1:0),n=1;n1?i-1:0),r=1;r2&&arguments[2]!==void 0?arguments[2]:tt;ko&&ko(e,null);let n=t.length;for(;n--;){let r=t[n];if(typeof r=="string"){let u=i(r);u!==r&&(on(t)||(t[n]=u),r=u)}e[r]=!0}return e}f(c,"addToSet");function So(e){for(let t=0;t/gm),mn=F(/\$\{[\w\W]*/gm),bn=F(/^data-[\-\w.\u00B7-\uFFFF]+$/),gn=F(/^aria-[\-\w]+$/),Do=F(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),yn=F(/^(?:\w+script|data):/i),_n=F(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ro=F(/^html$/i),hn=F(/^[a-z][.\w]*(-[.\w]+)+$/i),Oo=Object.freeze({__proto__:null,ARIA_ATTR:gn,ATTR_WHITESPACE:_n,CUSTOM_ELEMENT:hn,DATA_ATTR:bn,DOCTYPE_NAME:Ro,ERB_EXPR:fn,IS_ALLOWED_URI:Do,IS_SCRIPT_OR_DATA:yn,MUSTACHE_EXPR:pn,TMPLIT_EXPR:mn}),Ve={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Tn=f(function(){return typeof window>"u"?null:window},"getGlobal"),xn=f(function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let i=null,n="data-tt-policy-suffix";t&&t.hasAttribute(n)&&(i=t.getAttribute(n));let r="dompurify"+(i?"#"+i:"");try{return e.createPolicy(r,{createHTML(u){return u},createScriptURL(u){return u}})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}},"_createTrustedTypesPolicy"),No=f(function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},"_createHooksMap");function jt(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Tn(),t=f(o=>jt(o),"DOMPurify");if(t.version="3.3.0",t.removed=[],!e||!e.document||e.document.nodeType!==Ve.document||!e.Element)return t.isSupported=!1,t;let{document:i}=e,n=i,r=n.currentScript,{DocumentFragment:u,HTMLTemplateElement:m,Node:w,Element:x,NodeFilter:k,NamedNodeMap:ie=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:pe,DOMParser:fe,trustedTypes:me}=e,ne=x.prototype,ht=_e(ne,"cloneNode"),Tt=_e(ne,"remove"),xt=_e(ne,"nextSibling"),vt=_e(ne,"childNodes"),ae=_e(ne,"parentNode");if(typeof m=="function"){let o=i.createElement("template");o.content&&o.content.ownerDocument&&(i=o.content.ownerDocument)}let A,C="",{implementation:Se,createNodeIterator:wt,createDocumentFragment:kt,getElementsByTagName:We}=i,{importNode:At}=n,y=No();t.isSupported=typeof wo=="function"&&typeof ae=="function"&&Se&&Se.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:Y,ERB_EXPR:G,TMPLIT_EXPR:z,DATA_ATTR:Et,ARIA_ATTR:St,IS_SCRIPT_OR_DATA:It,ATTR_WHITESPACE:Ze,CUSTOM_ELEMENT:Mt}=Oo,{IS_ALLOWED_URI:Ke}=Oo,S=null,Ri=c({},[...Io,...Ut,...Yt,...Gt,...Mo]),L=null,Oi=c({},[...Co,...Qt,...Lo,...ot]),v=Object.seal(Bt(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Je=null,po=null,Ie=Object.seal(Bt(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Ni=!0,fo=!0,Pi=!1,Bi=!0,Me=!1,Ct=!0,be=!1,mo=!1,bo=!1,Ce=!1,Lt=!1,Dt=!1,Vi=!0,Fi=!1,aa="user-content-",go=!0,Xe=!1,Le={},De=null,zi=c({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Hi=null,Ui=c({},["audio","video","img","source","image","track"]),yo=null,Yi=c({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Rt="http://www.w3.org/1998/Math/MathML",Ot="http://www.w3.org/2000/svg",$="http://www.w3.org/1999/xhtml",Re=$,_o=!1,ho=null,ra=c({},[Rt,Ot,$],zt),Nt=c({},["mi","mo","mn","ms","mtext"]),Pt=c({},["annotation-xml"]),da=c({},["title","style","font","a","script"]),$e=null,la=["application/xhtml+xml","text/html"],sa="text/html",I=null,Oe=null,ua=i.createElement("form"),Gi=f(function(o){return o instanceof RegExp||o instanceof Function},"isRegexOrFunction"),To=f(function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Oe&&Oe===o)){if((!o||typeof o!="object")&&(o={}),o=q(o),$e=la.indexOf(o.PARSER_MEDIA_TYPE)===-1?sa:o.PARSER_MEDIA_TYPE,I=$e==="application/xhtml+xml"?zt:tt,S=H(o,"ALLOWED_TAGS")?c({},o.ALLOWED_TAGS,I):Ri,L=H(o,"ALLOWED_ATTR")?c({},o.ALLOWED_ATTR,I):Oi,ho=H(o,"ALLOWED_NAMESPACES")?c({},o.ALLOWED_NAMESPACES,zt):ra,yo=H(o,"ADD_URI_SAFE_ATTR")?c(q(Yi),o.ADD_URI_SAFE_ATTR,I):Yi,Hi=H(o,"ADD_DATA_URI_TAGS")?c(q(Ui),o.ADD_DATA_URI_TAGS,I):Ui,De=H(o,"FORBID_CONTENTS")?c({},o.FORBID_CONTENTS,I):zi,Je=H(o,"FORBID_TAGS")?c({},o.FORBID_TAGS,I):q({}),po=H(o,"FORBID_ATTR")?c({},o.FORBID_ATTR,I):q({}),Le=H(o,"USE_PROFILES")?o.USE_PROFILES:!1,Ni=o.ALLOW_ARIA_ATTR!==!1,fo=o.ALLOW_DATA_ATTR!==!1,Pi=o.ALLOW_UNKNOWN_PROTOCOLS||!1,Bi=o.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Me=o.SAFE_FOR_TEMPLATES||!1,Ct=o.SAFE_FOR_XML!==!1,be=o.WHOLE_DOCUMENT||!1,Ce=o.RETURN_DOM||!1,Lt=o.RETURN_DOM_FRAGMENT||!1,Dt=o.RETURN_TRUSTED_TYPE||!1,bo=o.FORCE_BODY||!1,Vi=o.SANITIZE_DOM!==!1,Fi=o.SANITIZE_NAMED_PROPS||!1,go=o.KEEP_CONTENT!==!1,Xe=o.IN_PLACE||!1,Ke=o.ALLOWED_URI_REGEXP||Do,Re=o.NAMESPACE||$,Nt=o.MATHML_TEXT_INTEGRATION_POINTS||Nt,Pt=o.HTML_INTEGRATION_POINTS||Pt,v=o.CUSTOM_ELEMENT_HANDLING||{},o.CUSTOM_ELEMENT_HANDLING&&Gi(o.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(v.tagNameCheck=o.CUSTOM_ELEMENT_HANDLING.tagNameCheck),o.CUSTOM_ELEMENT_HANDLING&&Gi(o.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(v.attributeNameCheck=o.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),o.CUSTOM_ELEMENT_HANDLING&&typeof o.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(v.allowCustomizedBuiltInElements=o.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Me&&(fo=!1),Lt&&(Ce=!0),Le&&(S=c({},Mo),L=[],Le.html===!0&&(c(S,Io),c(L,Co)),Le.svg===!0&&(c(S,Ut),c(L,Qt),c(L,ot)),Le.svgFilters===!0&&(c(S,Yt),c(L,Qt),c(L,ot)),Le.mathMl===!0&&(c(S,Gt),c(L,Lo),c(L,ot))),o.ADD_TAGS&&(typeof o.ADD_TAGS=="function"?Ie.tagCheck=o.ADD_TAGS:(S===Ri&&(S=q(S)),c(S,o.ADD_TAGS,I))),o.ADD_ATTR&&(typeof o.ADD_ATTR=="function"?Ie.attributeCheck=o.ADD_ATTR:(L===Oi&&(L=q(L)),c(L,o.ADD_ATTR,I))),o.ADD_URI_SAFE_ATTR&&c(yo,o.ADD_URI_SAFE_ATTR,I),o.FORBID_CONTENTS&&(De===zi&&(De=q(De)),c(De,o.FORBID_CONTENTS,I)),go&&(S["#text"]=!0),be&&c(S,["html","head","body"]),S.table&&(c(S,["tbody"]),delete Je.tbody),o.TRUSTED_TYPES_POLICY){if(typeof o.TRUSTED_TYPES_POLICY.createHTML!="function")throw Be('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof o.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Be('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');A=o.TRUSTED_TYPES_POLICY,C=A.createHTML("")}else A===void 0&&(A=xn(me,r)),A!==null&&typeof C=="string"&&(C=A.createHTML(""));N&&N(o),Oe=o}},"_parseConfig"),Qi=c({},[...Ut,...Yt,...un]),ji=c({},[...Gt,...cn]),ca=f(function(o){let d=ae(o);(!d||!d.tagName)&&(d={namespaceURI:Re,tagName:"template"});let a=tt(o.tagName),g=tt(d.tagName);return ho[o.namespaceURI]?o.namespaceURI===Ot?d.namespaceURI===$?a==="svg":d.namespaceURI===Rt?a==="svg"&&(g==="annotation-xml"||Nt[g]):!!Qi[a]:o.namespaceURI===Rt?d.namespaceURI===$?a==="math":d.namespaceURI===Ot?a==="math"&&Pt[g]:!!ji[a]:o.namespaceURI===$?d.namespaceURI===Ot&&!Pt[g]||d.namespaceURI===Rt&&!Nt[g]?!1:!ji[a]&&(da[a]||!Qi[a]):!!($e==="application/xhtml+xml"&&ho[o.namespaceURI]):!1},"_checkValidNamespace"),ge=f(function(o){Ne(t.removed,{element:o});try{ae(o).removeChild(o)}catch{Tt(o)}},"_forceRemove"),ye=f(function(o,d){try{Ne(t.removed,{attribute:d.getAttributeNode(o),from:d})}catch{Ne(t.removed,{attribute:null,from:d})}if(d.removeAttribute(o),o==="is")if(Ce||Lt)try{ge(d)}catch{}else try{d.setAttribute(o,"")}catch{}},"_removeAttribute"),qi=f(function(o){let d=null,a=null;if(bo)o=""+o;else{let h=Ht(o,/^[\r\n\t ]+/);a=h&&h[0]}$e==="application/xhtml+xml"&&Re===$&&(o=''+o+"");let g=A?A.createHTML(o):o;if(Re===$)try{d=new fe().parseFromString(g,$e)}catch{}if(!d||!d.documentElement){d=Se.createDocument(Re,"template",null);try{d.documentElement.innerHTML=_o?C:g}catch{}}let D=d.body||d.documentElement;return o&&a&&D.insertBefore(i.createTextNode(a),D.childNodes[0]||null),Re===$?We.call(d,be?"html":"body")[0]:be?d.documentElement:D},"_initDocument"),Wi=f(function(o){return wt.call(o.ownerDocument||o,o,k.SHOW_ELEMENT|k.SHOW_COMMENT|k.SHOW_TEXT|k.SHOW_PROCESSING_INSTRUCTION|k.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),xo=f(function(o){return o instanceof pe&&(typeof o.nodeName!="string"||typeof o.textContent!="string"||typeof o.removeChild!="function"||!(o.attributes instanceof ie)||typeof o.removeAttribute!="function"||typeof o.setAttribute!="function"||typeof o.namespaceURI!="string"||typeof o.insertBefore!="function"||typeof o.hasChildNodes!="function")},"_isClobbered"),Zi=f(function(o){return typeof w=="function"&&o instanceof w},"_isNode");function X(o,d,a){et(o,g=>{g.call(t,d,a,Oe)})}f(X,"_executeHooks");let Ki=f(function(o){let d=null;if(X(y.beforeSanitizeElements,o,null),xo(o))return ge(o),!0;let a=I(o.nodeName);if(X(y.uponSanitizeElement,o,{tagName:a,allowedTags:S}),Ct&&o.hasChildNodes()&&!Zi(o.firstElementChild)&&P(/<[/\w!]/g,o.innerHTML)&&P(/<[/\w!]/g,o.textContent)||o.nodeType===Ve.progressingInstruction||Ct&&o.nodeType===Ve.comment&&P(/<[/\w]/g,o.data))return ge(o),!0;if(!(Ie.tagCheck instanceof Function&&Ie.tagCheck(a))&&(!S[a]||Je[a])){if(!Je[a]&&Xi(a)&&(v.tagNameCheck instanceof RegExp&&P(v.tagNameCheck,a)||v.tagNameCheck instanceof Function&&v.tagNameCheck(a)))return!1;if(go&&!De[a]){let g=ae(o)||o.parentNode,D=vt(o)||o.childNodes;if(D&&g){let h=D.length;for(let ee=h-1;ee>=0;--ee){let Q=ht(D[ee],!0);Q.__removalCount=(o.__removalCount||0)+1,g.insertBefore(Q,xt(o))}}}return ge(o),!0}return o instanceof x&&!ca(o)||(a==="noscript"||a==="noembed"||a==="noframes")&&P(/<\/no(script|embed|frames)/i,o.innerHTML)?(ge(o),!0):(Me&&o.nodeType===Ve.text&&(d=o.textContent,et([Y,G,z],g=>{d=Pe(d,g," ")}),o.textContent!==d&&(Ne(t.removed,{element:o.cloneNode()}),o.textContent=d)),X(y.afterSanitizeElements,o,null),!1)},"_sanitizeElements"),Ji=f(function(o,d,a){if(Vi&&(d==="id"||d==="name")&&(a in i||a in ua))return!1;if(!(fo&&!po[d]&&P(Et,d))&&!(Ni&&P(St,d))&&!(Ie.attributeCheck instanceof Function&&Ie.attributeCheck(d,o))){if(!L[d]||po[d]){if(!(Xi(o)&&(v.tagNameCheck instanceof RegExp&&P(v.tagNameCheck,o)||v.tagNameCheck instanceof Function&&v.tagNameCheck(o))&&(v.attributeNameCheck instanceof RegExp&&P(v.attributeNameCheck,d)||v.attributeNameCheck instanceof Function&&v.attributeNameCheck(d,o))||d==="is"&&v.allowCustomizedBuiltInElements&&(v.tagNameCheck instanceof RegExp&&P(v.tagNameCheck,a)||v.tagNameCheck instanceof Function&&v.tagNameCheck(a))))return!1}else if(!yo[d]&&!P(Ke,Pe(a,Ze,""))&&!((d==="src"||d==="xlink:href"||d==="href")&&o!=="script"&&ln(a,"data:")===0&&Hi[o])&&!(Pi&&!P(It,Pe(a,Ze,"")))&&a)return!1}return!0},"_isValidAttribute"),Xi=f(function(o){return o!=="annotation-xml"&&Ht(o,Mt)},"_isBasicCustomElement"),$i=f(function(o){X(y.beforeSanitizeAttributes,o,null);let{attributes:d}=o;if(!d||xo(o))return;let a={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:L,forceKeepAttr:void 0},g=d.length;for(;g--;){let D=d[g],{name:h,namespaceURI:ee,value:Q}=D,j=I(h),vo=Q,R=h==="value"?vo:sn(vo);if(a.attrName=j,a.attrValue=R,a.keepAttr=!0,a.forceKeepAttr=void 0,X(y.uponSanitizeAttribute,o,a),R=a.attrValue,Fi&&(j==="id"||j==="name")&&(ye(h,o),R=aa+R),Ct&&P(/((--!?|])>)|<\/(style|title|textarea)/i,R)){ye(h,o);continue}if(j==="attributename"&&Ht(R,"href")){ye(h,o);continue}if(a.forceKeepAttr)continue;if(!a.keepAttr){ye(h,o);continue}if(!Bi&&P(/\/>/i,R)){ye(h,o);continue}Me&&et([Y,G,z],fa=>{R=Pe(R,fa," ")});let en=I(o.nodeName);if(!Ji(en,j,R)){ye(h,o);continue}if(A&&typeof me=="object"&&typeof me.getAttributeType=="function"&&!ee)switch(me.getAttributeType(en,j)){case"TrustedHTML":{R=A.createHTML(R);break}case"TrustedScriptURL":{R=A.createScriptURL(R);break}}if(R!==vo)try{ee?o.setAttributeNS(ee,h,R):o.setAttribute(h,R),xo(o)?ge(o):Ao(t.removed)}catch{ye(h,o)}}X(y.afterSanitizeAttributes,o,null)},"_sanitizeAttributes"),pa=f(function o(d){let a=null,g=Wi(d);for(X(y.beforeSanitizeShadowDOM,d,null);a=g.nextNode();)X(y.uponSanitizeShadowNode,a,null),Ki(a),$i(a),a.content instanceof u&&o(a.content);X(y.afterSanitizeShadowDOM,d,null)},"_sanitizeShadowDOM");return t.sanitize=function(o){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=null,g=null,D=null,h=null;if(_o=!o,_o&&(o=""),typeof o!="string"&&!Zi(o))if(typeof o.toString=="function"){if(o=o.toString(),typeof o!="string")throw Be("dirty is not a string, aborting")}else throw Be("toString is not a function");if(!t.isSupported)return o;if(mo||To(d),t.removed=[],typeof o=="string"&&(Xe=!1),Xe){if(o.nodeName){let j=I(o.nodeName);if(!S[j]||Je[j])throw Be("root node is forbidden and cannot be sanitized in-place")}}else if(o instanceof w)a=qi(""),g=a.ownerDocument.importNode(o,!0),g.nodeType===Ve.element&&g.nodeName==="BODY"||g.nodeName==="HTML"?a=g:a.appendChild(g);else{if(!Ce&&!Me&&!be&&o.indexOf("<")===-1)return A&&Dt?A.createHTML(o):o;if(a=qi(o),!a)return Ce?null:Dt?C:""}a&&bo&&ge(a.firstChild);let ee=Wi(Xe?o:a);for(;D=ee.nextNode();)Ki(D),$i(D),D.content instanceof u&&pa(D.content);if(Xe)return o;if(Ce){if(Lt)for(h=kt.call(a.ownerDocument);a.firstChild;)h.appendChild(a.firstChild);else h=a;return(L.shadowroot||L.shadowrootmode)&&(h=At.call(n,h,!0)),h}let Q=be?a.outerHTML:a.innerHTML;return be&&S["!doctype"]&&a.ownerDocument&&a.ownerDocument.doctype&&a.ownerDocument.doctype.name&&P(Ro,a.ownerDocument.doctype.name)&&(Q=""+Q),Me&&et([Y,G,z],j=>{Q=Pe(Q,j," ")}),A&&Dt?A.createHTML(Q):Q},t.setConfig=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};To(o),mo=!0},t.clearConfig=function(){Oe=null,mo=!1},t.isValidAttribute=function(o,d,a){Oe||To({});let g=I(o),D=I(d);return Ji(g,D,a)},t.addHook=function(o,d){typeof d=="function"&&Ne(y[o],d)},t.removeHook=function(o,d){if(d!==void 0){let a=rn(y[o],d);return a===-1?void 0:dn(y[o],a,1)[0]}return Ao(y[o])},t.removeHooks=function(o){y[o]=[]},t.removeAllHooks=function(){y=No()},t}f(jt,"createDOMPurify");var Po=jt();let Fe=!1;window.trustedTypes&&window.trustedTypes.createPolicy&&Po&&(Fe=window.trustedTypes.createPolicy("GoodTubePolicy",{createHTML:e=>Po.sanitize(e,{RETURN_TRUSTED_TYPE:!0})}));function Bo(){let e={};if(document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g,function(){function t(i){return decodeURIComponent(i.split("+").join(" "))}e[t(arguments[1])]=t(arguments[2])}),U()&&typeof e.v>"u"){let t="";window.location.href.indexOf("/watch/")!==-1?t="/watch/":t="/live/";let i=window.location.href.split(t);if(i.length===2){let n=i[1].split("?");e.v=n[n.length-1]}}return e}function p(e,t,i=399){e=e+"_new",document.cookie=e+"="+encodeURIComponent(t)+";SameSite=Lax;path=/;max-age="+i*24*60*60}function B(e){e=e+"_new";let t=document.cookie.split(";");for(let i=0;i{t.innerHTML.toLowerCase().indexOf("members only")!==-1&&Z(t),t.classList.add("goodTube_checked")})}function An(){if(he==="true")return;window.location.href.indexOf("/shorts")!==-1&&!zo&&(window.location.href="https://youtube.com",zo=!0),document.querySelectorAll("a:not(.goodTube_hidden)").forEach(i=>{i.href.indexOf("shorts/")!==-1&&(Z(i),Z(i.closest("ytd-video-renderer")),Z(i.closest("ytd-compact-video-renderer")),Z(i.closest("ytd-rich-grid-media")))}),document.querySelectorAll("yt-chip-cloud-chip-renderer:not(.goodTube_hidden):not(.goodTube_checked), yt-tab-shape:not(.goodTube_hidden):not(.goodTube_checked), ytd-guide-entry-renderer:not(.goodTube_checked)").forEach(i=>{i.innerHTML.toLowerCase().indexOf("shorts")!==-1&&Z(i),i.classList.add("goodTube_checked")})}function En(){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")&&t.getAttribute("href").indexOf(T.v)!==-1&&(t.classList.add("goodTube_timestampLink"),t.addEventListener("click",function(){let i=0,n=t.getAttribute("href").split("t=");typeof n[1]<"u"&&(i=parseFloat(n[1].replace("s",""))),Wo(i)}))})}let st=setTimeout(()=>{},0);function Jt(){if(he==="true"&&window.location.href.indexOf("/shorts")!==-1){clearTimeout(st),st=setTimeout(Jt,100);return}document.querySelectorAll("video").forEach(t=>{_?!t.paused&&!t.closest("#movie_player")&&(t.muted=!0,t.volume=0,t.pause()):!t.paused&&(!Wt||!t.closest("#movie_player")||!z())&&(t.muted=!0,t.volume=0,!qt()||!t.closest("#movie_player")?(t.pause(),t.playbackRate=Te):(t.play(),t.playbackRate=2))}),clearTimeout(st),st=setTimeout(Jt,100)}function Sn(){if(Fo)return;let e=document.querySelector("#movie_player .ytp-autonav-toggle-button");e&&(e.getAttribute("aria-checked")==="true"&&W(e),Fo=!0)}function In(){document.querySelectorAll("yt-confirm-dialog-renderer").forEach(t=>{if(t.innerHTML.indexOf("Video paused. Continue watching?")!==-1){let i=t.querySelector("#confirm-button");i&&W(i)}})}function Mn(e,t){if(!e||!t)return;let i=document.querySelector("ytd-watch-flexy");i&&z()&&!_&&(i.style.setProperty("--ytd-watch-flexy-width-ratio",e),i.style.setProperty("--ytd-watch-flexy-height-ratio",t))}function Yo(){let e=document.querySelector("ytd-watch-flexy");e&&(e.style.removeProperty("--ytd-watch-flexy-width-ratio"),e.style.removeProperty("--ytd-watch-flexy-height-ratio"))}let Go=setTimeout(()=>{},0);function Qo(){d=document.getElementById("movie_player");let e=!1;if(d&&typeof d.getVideoData=="function"&&(e=d.getVideoData()),!e){clearTimeout(Go),Go=setTimeout(Qo,100);return}let t="transparent";lt==="true"&&(t="#000000");let i=document.createElement("style");i.textContent=` + `}let t=document.createElement("style");t.textContent=e,document.head.appendChild(t)}function An(){document.querySelectorAll("ytd-rich-item-renderer:not(.goodTube_checked)").forEach(t=>{t.innerHTML.toLowerCase().indexOf("members only")!==-1&&Z(t),t.classList.add("goodTube_checked")})}function En(){if(he==="true")return;window.location.href.indexOf("/shorts")!==-1&&!Ho&&(window.location.href="https://youtube.com",Ho=!0),document.querySelectorAll("a:not(.goodTube_hidden)").forEach(i=>{i.href.indexOf("shorts/")!==-1&&(Z(i),Z(i.closest("ytd-video-renderer")),Z(i.closest("ytd-compact-video-renderer")),Z(i.closest("ytd-rich-grid-media")))}),document.querySelectorAll("yt-chip-cloud-chip-renderer:not(.goodTube_hidden):not(.goodTube_checked), yt-tab-shape:not(.goodTube_hidden):not(.goodTube_checked), ytd-guide-entry-renderer:not(.goodTube_checked)").forEach(i=>{i.innerHTML.toLowerCase().indexOf("shorts")!==-1&&Z(i),i.classList.add("goodTube_checked")})}function Sn(){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")&&t.getAttribute("href").indexOf(T.v)!==-1&&(t.classList.add("goodTube_timestampLink"),t.addEventListener("click",function(){let i=0,n=t.getAttribute("href").split("t=");typeof n[1]<"u"&&(i=parseFloat(n[1].replace("s",""))),Zo(i)}))})}let st=setTimeout(()=>{},0);function Jt(){if(he==="true"&&window.location.href.indexOf("/shorts")!==-1){clearTimeout(st),st=setTimeout(Jt,100);return}document.querySelectorAll("video").forEach(t=>{_?!t.paused&&!t.closest("#movie_player")&&(t.muted=!0,t.volume=0,t.pause()):!t.paused&&!Wt&&t.closest("#movie_player")&&!t.closest("#inline_player")&&(t.muted=!0,t.volume=0,!qt()||!t.closest("#movie_player")?(t.pause(),t.playbackRate=Te):(t.play(),t.playbackRate=2))}),clearTimeout(st),st=setTimeout(Jt,100)}function In(){if(zo)return;let e=document.querySelector("#movie_player .ytp-autonav-toggle-button");e&&(e.getAttribute("aria-checked")==="true"&&W(e),zo=!0)}function Mn(){document.querySelectorAll("yt-confirm-dialog-renderer").forEach(t=>{if(t.innerHTML.indexOf("Video paused. Continue watching?")!==-1){let i=t.querySelector("#confirm-button");i&&W(i)}})}function Cn(e,t){if(!e||!t)return;let i=document.querySelector("ytd-watch-flexy");i&&U()&&!_&&(i.style.setProperty("--ytd-watch-flexy-width-ratio",e),i.style.setProperty("--ytd-watch-flexy-height-ratio",t))}function Go(){let e=document.querySelector("ytd-watch-flexy");e&&(e.style.removeProperty("--ytd-watch-flexy-width-ratio"),e.style.removeProperty("--ytd-watch-flexy-height-ratio"))}let Qo=setTimeout(()=>{},0);function jo(){l=document.getElementById("movie_player");let e=!1;if(l&&typeof l.getVideoData=="function"&&(e=l.getVideoData()),!e){clearTimeout(Qo),Qo=setTimeout(jo,100);return}let t="transparent";lt==="true"&&(t="#000000");let i=document.createElement("style");i.textContent=` /* Player wrapper */ #goodTube_playerWrapper { border-radius: 12px; @@ -150,7 +150,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,V=l,oi(),setInterval(oi,100)}let Xt=!1;function Ln(){if(_)Xt||(ct(!0),Xt=!0);else{Xt=!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",it(re)}}}let xe=setTimeout(()=>{},0);function je(){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(je,100);return}if(d&&typeof d.getPlaylist=="function"&&typeof d.getPlaylistIndex=="function"){if(te=d.getPlaylist(),He=d.getPlaylistIndex(),!te){clearTimeout(xe),xe=setTimeout(je,100);return}}else{clearTimeout(xe),xe=setTimeout(je,100);return}}let jo=setTimeout(()=>{},0);function qo(){if(de="",Dn(),!Uo){clearTimeout(jo),jo=setTimeout(qo,100);return}let e=0;Qe==="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",je()):(te=!1,He=0),Ho){z()||ct();let i="";e>0&&(i="&start="+e),V.contentWindow.postMessage("goodTube_src_https://www.youtube.com/embed/"+T.v+"?goodTubeEmbed=1&autoplay=1&goodTube_playlist="+t+"&goodTube_autoplay="+K+"&goodTube_playbackSpeed="+Te+"&goodTube_hideInfoCards="+Ue+"&goodTube_hideEndScreen="+Ye+i,"*"),Ho=!1}else V.contentWindow.postMessage("goodTube_load_"+T.v+"|||"+e+"|||"+t,"*");Qe==="false"&&$t(),navigator.userAgent.toLowerCase().indexOf("firefox")!==-1&&pt()}let ut=setTimeout(()=>{},0);function $t(){if(!Zt){clearTimeout(ut),ut=setTimeout($t,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(ut),ut=setTimeout($t,100);return}let i=Math.floor(d.getCurrentTime());i>=10&&Wo(i,t)}function ct(e=!1){ze||(e?(d=document.getElementById("movie_player"),d&&typeof d.pauseVideo=="function"&&typeof d.mute=="function"&&(d.pauseVideo(),d.mute())):V.contentWindow.postMessage("goodTube_stopVideo","*")),Z(re)}function Wo(e,t=""){V.contentWindow.postMessage("goodTube_skipTo_"+e+"|||"+t,"*")}function Dn(){V.contentWindow.postMessage("goodTube_pause","*")}let qe=setTimeout(()=>{},0);function pt(){if(!Kt||!Zt){clearTimeout(qe),qe=setTimeout(pt,100);return}if(!_)V.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(qe),qe=setTimeout(pt,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 Cn(){document.addEventListener("keydown",Zo,!0),document.addEventListener("keyup",Zo,!0)}function Zo(e){if(!z()||_)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,w=!1;if(t.forEach(x=>{(i===x.key||n===x.code)&&l===x.ctrl&&u===x.shift&&m===x.alt&&(w=!0)}),w){let x=e.srcElement,k=!1,ie=!1;if(x&&(typeof x.nodeName<"u"&&(k=x.nodeName.toLowerCase()),typeof x.getAttribute<"u"&&(ie=x.getAttribute("id"))),!x||k.indexOf("input")===-1&&k.indexOf("label")===-1&&k.indexOf("select")===-1&&k.indexOf("textarea")===-1&&k.indexOf("fieldset")===-1&&k.indexOf("legend")===-1&&k.indexOf("datalist")===-1&&k.indexOf("output")===-1&&k.indexOf("option")===-1&&k.indexOf("optgroup")===-1&&ie!=="contenteditable-root"){e.preventDefault(),e.stopImmediatePropagation();let pe=e.key,fe=e.keyCode;i==="mediaplaypause"&&(pe=" ",fe=32),V.contentWindow.postMessage("goodTube_shortcut_"+e.type+"_"+pe+"_"+fe+"_"+e.ctrlKey+"_"+e.metaKey+"_"+e.shiftKey+"_"+e.altKey,"*")}}}function eo(e=!1){d=document.getElementById("movie_player"),d&&typeof d.nextVideo=="function"&&d.nextVideo(),console.log("[GoodTube] Playing next video...")}function Rn(){d=document.getElementById("movie_player"),d&&typeof d.previousVideo=="function"&&d.previousVideo(),console.log("[GoodTube] Playing previous video...")}let Ko=setTimeout(()=>{},0);function Jo(){if(K==="true")eo();else if(te){if(je(),!te||!He){clearTimeout(Ko),Ko=setTimeout(Jo,100);return}He{},0);function ei(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 r=document.createElement("iframe");r.src="https://wikipedia.org/wiki/Bruce_Lee?goodTubeProxy=1",r.setAttribute("width","100%"),r.setAttribute("height","100%"),r.setAttribute("frameborder","0"),r.setAttribute("scrolling","yes"),r.setAttribute("allow","accelerometer *; autoplay *; clipboard-write *; encrypted-media *; gyroscope *; picture-in-picture *; web-share *;"),r.setAttribute("referrerpolicy","strict-origin-when-cross-origin"),r.setAttribute("allowfullscreen",!0),r.style.display="none",n.appendChild(r),re=n,V=r,ii(),setInterval(ii,100)}let Xt=!1;function Ln(){if(_)Xt||(ct(!0),Xt=!0);else{Xt=!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",it(re)}}}let xe=setTimeout(()=>{},0);function je(){l=document.getElementById("movie_player");let e=!1,t=!1;if(l&&typeof l.getVideoData=="function"&&(e=l.getVideoData(),t=e.video_id),!e||t!==T.v){clearTimeout(xe),xe=setTimeout(je,100);return}if(l&&typeof l.getPlaylist=="function"&&typeof l.getPlaylistIndex=="function"){if(te=l.getPlaylist(),He=l.getPlaylistIndex(),!te){clearTimeout(xe),xe=setTimeout(je,100);return}}else{clearTimeout(xe),xe=setTimeout(je,100);return}}let qo=setTimeout(()=>{},0);function Wo(){if(de="",Dn(),!Yo){clearTimeout(qo),qo=setTimeout(Wo,100);return}let e=0;Qe==="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",je()):(te=!1,He=0),Uo){U()||ct();let i="";e>0&&(i="&start="+e),V.contentWindow.postMessage("goodTube_src_https://www.youtube.com/embed/"+T.v+"?goodTubeEmbed=1&autoplay=1&goodTube_playlist="+t+"&goodTube_autoplay="+K+"&goodTube_playbackSpeed="+Te+"&goodTube_hideInfoCards="+Ue+"&goodTube_hideEndScreen="+Ye+i,"*"),Uo=!1}else V.contentWindow.postMessage("goodTube_load_"+T.v+"|||"+e+"|||"+t,"*");Qe==="false"&&$t(),navigator.userAgent.toLowerCase().indexOf("firefox")!==-1&&pt()}let ut=setTimeout(()=>{},0);function $t(){if(!Zt){clearTimeout(ut),ut=setTimeout($t,100);return}l=document.getElementById("movie_player");let e=!1,t=!1;if(l&&typeof l.getVideoData=="function"&&typeof l.getCurrentTime=="function"&&(e=l.getVideoData(),t=e.video_id),!e||!t||t!==T.v){clearTimeout(ut),ut=setTimeout($t,100);return}let i=Math.floor(l.getCurrentTime());i>=10&&Zo(i,t)}function ct(e=!1){ze||(e?(l=document.getElementById("movie_player"),l&&typeof l.pauseVideo=="function"&&typeof l.mute=="function"&&(l.pauseVideo(),l.mute())):V.contentWindow.postMessage("goodTube_stopVideo","*")),Z(re)}function Zo(e,t=""){V.contentWindow.postMessage("goodTube_skipTo_"+e+"|||"+t,"*")}function Dn(){V.contentWindow.postMessage("goodTube_pause","*")}let qe=setTimeout(()=>{},0);function pt(){if(!Kt||!Zt){clearTimeout(qe),qe=setTimeout(pt,100);return}if(!_)V.contentWindow.postMessage("goodTube_play|||"+T.v,"*");else{l=document.getElementById("movie_player");let e=!1;if(l&&typeof l.getVideoData=="function"&&(e=l.getVideoData()),!e||T.v!==e.video_id){clearTimeout(qe),qe=setTimeout(pt,100);return}let t=document.querySelector("#movie_player video");if(t&&t.currentTime>=t.duration)return;l&&typeof l.playVideo=="function"&&setTimeout(()=>{l.playVideo()},100)}}function Rn(){document.addEventListener("keydown",Ko,!0),document.addEventListener("keyup",Ko,!0)}function Ko(e){if(!U()||_)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(),r=e.ctrlKey;e.metaKey&&(r=e.metaKey);let u=e.shiftKey,m=e.altKey,w=!1;if(t.forEach(x=>{(i===x.key||n===x.code)&&r===x.ctrl&&u===x.shift&&m===x.alt&&(w=!0)}),w){let x=e.srcElement,k=!1,ie=!1;if(x&&(typeof x.nodeName<"u"&&(k=x.nodeName.toLowerCase()),typeof x.getAttribute<"u"&&(ie=x.getAttribute("id"))),!x||k.indexOf("input")===-1&&k.indexOf("label")===-1&&k.indexOf("select")===-1&&k.indexOf("textarea")===-1&&k.indexOf("fieldset")===-1&&k.indexOf("legend")===-1&&k.indexOf("datalist")===-1&&k.indexOf("output")===-1&&k.indexOf("option")===-1&&k.indexOf("optgroup")===-1&&ie!=="contenteditable-root"){e.preventDefault(),e.stopImmediatePropagation();let pe=e.key,fe=e.keyCode;i==="mediaplaypause"&&(pe=" ",fe=32),V.contentWindow.postMessage("goodTube_shortcut_"+e.type+"_"+pe+"_"+fe+"_"+e.ctrlKey+"_"+e.metaKey+"_"+e.shiftKey+"_"+e.altKey,"*")}}}function eo(){Vo("next"),console.log("[GoodTube] Playing next video...")}function On(){Vo("previous"),console.log("[GoodTube] Playing previous video...")}let Jo=setTimeout(()=>{},0);function Xo(){if(K==="true")eo();else if(te){if(je(),!te||!He){clearTimeout(Jo),Jo=setTimeout(Xo,100);return}He{},0);function ti(e=!1){e||(window.top===window.self&&(console.log(` ================================================== ______ ________ __ / ____/___ ____ ____/ /_ __/_ __/ /_ ___ @@ -158,7 +158,7 @@ / /_/ / /_/ / /_/ / /_/ / / / / /_/ / /_/ / __/ \\____/\\____/\\____/\\____/ /_/ \\____/_____/\\___/ -==================================================`),console.log("[GoodTube] Initiating...")),window.addEventListener("message",ti),Jt(),document.addEventListener("DOMContentLoaded",to),(document.readyState==="interactive"||document.readyState==="complete")&&to()),!document.body||!document.head?(clearTimeout($o),$o=setTimeout(()=>{ei(!0)},1)):to()}function to(){Xo||(Xo=!0,Vn(),xn(),wn(),Qo(),Fn(),Nn(),Cn(),Bn())}let ft=setTimeout(()=>{},0);function ti(e){if(typeof e.data=="string")if(!document.body||!document.head?(clearTimeout(ft),ft=setTimeout(()=>{ti(e)},100)):e.data==="goodTube_proxyIframe_loaded"?Uo=!0:e.data==="goodTube_playerIframe_loaded"&&(Zt=!0,V.style.display="block"),e.data.indexOf("goodTube_pip_")!==-1)e.data.replace("goodTube_pip_","")==="true"?ze=!0:(ze=!1,typeof T.v>"u"&&ct());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")Rn();else if(e.data==="goodTube_nextVideo")eo();else if(e.data==="goodTube_videoEnded")Jo();else if(e.data==="goodTube_theater"&&!document.fullscreenElement){let t=document.querySelector(".ytp-size-button");t&&W(t)}else if(e.data==="goodTube_autoplay_false")p("goodTube_autoplay","false"),K="false";else if(e.data==="goodTube_autoplay_true")p("goodTube_autoplay","true"),K="true";else if(e.data.indexOf("goodTube_syncMainPlayer_")!==-1&&z()&&!_){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()&&(Wt=!0,d.playVideo(),d.seekTo(t-.5),d.mute(),d.setVolume(0),i.volume=0,i.muted=!0,clearTimeout(ft),ft=setTimeout(()=>{Wt=!1},1e3))}else if(e.data==="goodTube_fallback_enable")_=!0,document.body&&!document.body.classList.contains("goodTube_fallback")&&document.body.classList.add("goodTube_fallback"),Yo(),ri(),navigator.userAgent.toLowerCase().indexOf("firefox")!==-1&&pt(),document.fullscreenElement&&(document.exitFullscreen(),window.setTimeout(()=>{let t=document.querySelector(".ytp-fullscreen-button");t&&W(t)},100));else if(e.data==="goodTube_fallback_disable")_=!1,document.body&&document.body.classList.contains("goodTube_fallback")&&document.body.classList.remove("goodTube_fallback"),document.fullscreenElement&&(document.exitFullscreen(),window.setTimeout(()=>{V.contentWindow.postMessage("goodTube_fullscreen","*")},100));else if(e.data.indexOf("goodTube_syncAspectRatio_")!==-1)if(window.location.href.indexOf("/shorts")!==-1)Yo();else{let t=e.data.replace("goodTube_syncAspectRatio_","").split("_");Mn(t[0],t[1])}else e.data==="goodTube_cancelPlay"&&clearTimeout(qe)}function oi(){let e=Vo;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=Bo(),z()?(qo(),Pn()):ct(),Vo=window.location.href),z()?(On(),En(),_||Sn(),In(),Ln(),zn()):V.contentWindow.postMessage("goodTube_stopVideo","*"),An(),Ge==="true"&&kn()}function Bn(){let e=document.createElement("div");document.body.appendChild(e);let t=" checked";he==="true"&&(t="");let i="";Ue==="true"&&(i=" checked");let n="";Ye==="true"&&(n=" checked");let l="";at==="true"&&(l=" checked");let u="";rt==="true"&&(u=" checked");let m="";dt==="true"&&(m=" checked");let w="";Ge==="true"&&(w=" checked");let x="";Qe==="true"&&(x=" checked");let k="";lt==="true"&&(k=" checked");let ie="",pe="",fe="",me="",ne="",ht="",Tt="",xt="";ie==="default"?ie=" selected":E==="2"?pe=" selected":E==="3"?fe=" selected":E==="4"?me=" selected":E==="5"?ne=" selected":E==="6"?ht=" selected":E==="7"?Tt=" selected":E==="8"&&(xt=" selected"),nt(e,` +==================================================`),console.log("[GoodTube] Initiating...")),window.addEventListener("message",oi),Jt(),document.addEventListener("DOMContentLoaded",to),(document.readyState==="interactive"||document.readyState==="complete")&&to()),!document.body||!document.head?(clearTimeout(ei),ei=setTimeout(()=>{ti(!0)},1)):to()}function to(){$o||($o=!0,Fn(),vn(),kn(),jo(),zn(),Pn(),Rn(),Vn())}let ft=setTimeout(()=>{},0);function oi(e){if(typeof e.data=="string")if(!document.body||!document.head?(clearTimeout(ft),ft=setTimeout(()=>{oi(e)},100)):e.data==="goodTube_proxyIframe_loaded"?Yo=!0:e.data==="goodTube_playerIframe_loaded"&&(Zt=!0,V.style.display="block"),e.data.indexOf("goodTube_pip_")!==-1)e.data.replace("goodTube_pip_","")==="true"?ze=!0:(ze=!1,typeof T.v>"u"&&ct());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")eo();else if(e.data==="goodTube_videoEnded")Xo();else if(e.data==="goodTube_theater"&&!document.fullscreenElement){let t=document.querySelector(".ytp-size-button");t&&W(t)}else if(e.data==="goodTube_autoplay_false")p("goodTube_autoplay","false"),K="false";else if(e.data==="goodTube_autoplay_true")p("goodTube_autoplay","true"),K="true";else if(e.data.indexOf("goodTube_syncMainPlayer_")!==-1&&U()&&!_){let t=parseFloat(e.data.replace("goodTube_syncMainPlayer_","")),i=document.querySelector("#movie_player video");if(l=document.getElementById("movie_player"),!l||typeof l.seekTo!="function"||typeof l.playVideo!="function"||typeof l.mute!="function"||typeof l.setVolume!="function")return;i&&Math.floor(i.currentTime)!==Math.floor(t)&&!qt()&&(Wt=!0,l.playVideo(),l.seekTo(t-.5),l.mute(),l.setVolume(0),i.volume=0,i.muted=!0,clearTimeout(ft),ft=setTimeout(()=>{Wt=!1},1e3))}else if(e.data==="goodTube_fallback_enable")_=!0,document.body&&!document.body.classList.contains("goodTube_fallback")&&document.body.classList.add("goodTube_fallback"),Go(),di(),navigator.userAgent.toLowerCase().indexOf("firefox")!==-1&&pt(),document.fullscreenElement&&(document.exitFullscreen(),window.setTimeout(()=>{let t=document.querySelector(".ytp-fullscreen-button");t&&W(t)},100));else if(e.data==="goodTube_fallback_disable")_=!1,document.body&&document.body.classList.contains("goodTube_fallback")&&document.body.classList.remove("goodTube_fallback"),document.fullscreenElement&&(document.exitFullscreen(),window.setTimeout(()=>{V.contentWindow.postMessage("goodTube_fullscreen","*")},100));else if(e.data.indexOf("goodTube_syncAspectRatio_")!==-1)if(window.location.href.indexOf("/shorts")!==-1)Go();else{let t=e.data.replace("goodTube_syncAspectRatio_","").split("_");Cn(t[0],t[1])}else e.data==="goodTube_cancelPlay"&&clearTimeout(qe)}function ii(){let e=Fo;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=Bo(),U()?(Wo(),Bn()):ct(),Fo=window.location.href),U()?(Nn(),Sn(),_||In(),Mn(),Ln(),Hn()):V.contentWindow.postMessage("goodTube_stopVideo","*"),En(),Ge==="true"&&An()}function Vn(){let e=document.createElement("div");document.body.appendChild(e);let t=" checked";he==="true"&&(t="");let i="";Ue==="true"&&(i=" checked");let n="";Ye==="true"&&(n=" checked");let r="";at==="true"&&(r=" checked");let u="";rt==="true"&&(u=" checked");let m="";dt==="true"&&(m=" checked");let w="";Ge==="true"&&(w=" checked");let x="";Qe==="true"&&(x=" checked");let k="";lt==="true"&&(k=" checked");let ie="",pe="",fe="",me="",ne="",ht="",Tt="",xt="";ie==="default"?ie=" selected":E==="2"?pe=" selected":E==="3"?fe=" selected":E==="4"?me=" selected":E==="5"?ne=" selected":E==="6"?ht=" selected":E==="7"?Tt=" selected":E==="8"&&(xt=" selected"),nt(e,` @@ -194,7 +194,7 @@
- +
@@ -648,7 +648,7 @@ margin-bottom: 16px; height: 128px; } - `,document.head.appendChild(vt);let ae=document.querySelector(".goodTube_menuButton"),A=document.querySelector(".goodTube_menuClose");A&&A.addEventListener("click",()=>{ae.remove(),A.remove()});let L=document.querySelector(".goodTube_modal"),Se=document.querySelector(".goodTube_modal .goodTube_modal_overlay"),wt=document.querySelector(".goodTube_modal .goodTube_modal_closeButton");ae&&ae.addEventListener("click",()=>{if(L){let y=document.querySelector(".goodTube_report");y&&(y.style.display="block");let Y=document.querySelector(".goodTube_successText");Y&&(Y.style.display="none");let G=document.querySelector(".goodTube_reportEmail");G&&(G.value="");let H=document.querySelector(".goodTube_reportText");H&&(H.value=""),L.classList.add("visible")}}),Se&&Se.addEventListener("click",()=>{L&&L.classList.contains("visible")&&L.classList.remove("visible")}),wt&&wt.addEventListener("click",()=>{L&&L.classList.contains("visible")&&L.classList.remove("visible")}),document.addEventListener("keydown",y=>{y.key.toLowerCase()==="escape"&&L&&L.classList.contains("visible")&&L.classList.remove("visible")});let kt=document.getElementById("goodTube_button_saveSettings");kt&&kt.addEventListener("click",()=>{let y=document.querySelector(".goodTube_option_shorts");y&&(y.checked?p("goodTube_shorts","false"):p("goodTube_shorts","true"));let Y=document.querySelector(".goodTube_option_hideInfoCards");Y&&(Y.checked?p("goodTube_hideInfoCards","true"):p("goodTube_hideInfoCards","false"));let G=document.querySelector(".goodTube_option_hideEndScreen");G&&(G.checked?p("goodTube_hideEndScreen","true"):p("goodTube_hideEndScreen","false"));let H=document.querySelector(".goodTube_option_hideSuggestedVideos");H&&(H.checked?p("goodTube_hideSuggestedVideos","true"):p("goodTube_hideSuggestedVideos","false"));let Et=document.querySelector(".goodTube_option_hideComments");Et&&(Et.checked?p("goodTube_hideComments","true"):p("goodTube_hideComments","false"));let St=document.querySelector(".goodTube_option_hideAiSummaries");St&&(St.checked?p("goodTube_hideAiSummaries","true"):p("goodTube_hideAiSummaries","false"));let It=document.querySelector(".goodTube_option_hideMembersOnlyVideos");It&&(It.checked?p("goodTube_hideMembersOnlyVideos","true"):p("goodTube_hideMembersOnlyVideos","false"));let Ze=document.querySelector(".goodTube_option_alwaysStart");Ze&&(Ze.checked?p("goodTube_alwaysStart","true"):p("goodTube_alwaysStart","false"));let Mt=document.querySelector(".goodTube_option_blackBackground");Mt&&(Mt.checked?p("goodTube_blackBackground","true"):p("goodTube_blackBackground","false"));let Ke=document.querySelector(".goodTube_option_videosPerRow");Ke&&p("goodTube_videosPerRow",Ke.value.toString().toLowerCase()),window.location.href=window.location.href});let We=document.querySelector(".goodTube_report"),At=document.querySelector(".goodTube_successText");We&&At&&We.addEventListener("submit",y=>{y.preventDefault(),y.stopImmediatePropagation();let Y={email:document.querySelector(".goodTube_reportEmail")?.value,message:document.querySelector(".goodTube_reportText")?.value},G={method:"POST",body:JSON.stringify(Y),headers:{"Content-Type":"application/json; charset=UTF-8"},referrerPolicy:"no-referrer"};fetch("https://jamenlyndon.com/_other/stats/mail.php",G).then(H=>H.text()).then(H=>{We.style.display="none",At.style.display="block"})})}function Vn(){window.addEventListener("focus",()=>{Kt=!0}),window.addEventListener("blur",()=>{Kt=!1})}function Fn(){let e=document.createElement("style"),t=` + `,document.head.appendChild(vt);let ae=document.querySelector(".goodTube_menuButton"),A=document.querySelector(".goodTube_menuClose");A&&A.addEventListener("click",()=>{ae.remove(),A.remove()});let C=document.querySelector(".goodTube_modal"),Se=document.querySelector(".goodTube_modal .goodTube_modal_overlay"),wt=document.querySelector(".goodTube_modal .goodTube_modal_closeButton");ae&&ae.addEventListener("click",()=>{if(C){let y=document.querySelector(".goodTube_report");y&&(y.style.display="block");let Y=document.querySelector(".goodTube_successText");Y&&(Y.style.display="none");let G=document.querySelector(".goodTube_reportEmail");G&&(G.value="");let z=document.querySelector(".goodTube_reportText");z&&(z.value=""),C.classList.add("visible")}}),Se&&Se.addEventListener("click",()=>{C&&C.classList.contains("visible")&&C.classList.remove("visible")}),wt&&wt.addEventListener("click",()=>{C&&C.classList.contains("visible")&&C.classList.remove("visible")}),document.addEventListener("keydown",y=>{y.key.toLowerCase()==="escape"&&C&&C.classList.contains("visible")&&C.classList.remove("visible")});let kt=document.getElementById("goodTube_button_saveSettings");kt&&kt.addEventListener("click",()=>{let y=document.querySelector(".goodTube_option_shorts");y&&(y.checked?p("goodTube_shorts","false"):p("goodTube_shorts","true"));let Y=document.querySelector(".goodTube_option_hideInfoCards");Y&&(Y.checked?p("goodTube_hideInfoCards","true"):p("goodTube_hideInfoCards","false"));let G=document.querySelector(".goodTube_option_hideEndScreen");G&&(G.checked?p("goodTube_hideEndScreen","true"):p("goodTube_hideEndScreen","false"));let z=document.querySelector(".goodTube_option_hideSuggestedVideos");z&&(z.checked?p("goodTube_hideSuggestedVideos","true"):p("goodTube_hideSuggestedVideos","false"));let Et=document.querySelector(".goodTube_option_hideComments");Et&&(Et.checked?p("goodTube_hideComments","true"):p("goodTube_hideComments","false"));let St=document.querySelector(".goodTube_option_hideAiSummaries");St&&(St.checked?p("goodTube_hideAiSummaries","true"):p("goodTube_hideAiSummaries","false"));let It=document.querySelector(".goodTube_option_hideMembersOnlyVideos");It&&(It.checked?p("goodTube_hideMembersOnlyVideos","true"):p("goodTube_hideMembersOnlyVideos","false"));let Ze=document.querySelector(".goodTube_option_alwaysStart");Ze&&(Ze.checked?p("goodTube_alwaysStart","true"):p("goodTube_alwaysStart","false"));let Mt=document.querySelector(".goodTube_option_blackBackground");Mt&&(Mt.checked?p("goodTube_blackBackground","true"):p("goodTube_blackBackground","false"));let Ke=document.querySelector(".goodTube_option_videosPerRow");Ke&&p("goodTube_videosPerRow",Ke.value.toString().toLowerCase()),window.location.href=window.location.href});let We=document.querySelector(".goodTube_report"),At=document.querySelector(".goodTube_successText");We&&At&&We.addEventListener("submit",y=>{y.preventDefault(),y.stopImmediatePropagation();let Y={email:document.querySelector(".goodTube_reportEmail")?.value,message:document.querySelector(".goodTube_reportText")?.value},G={method:"POST",body:JSON.stringify(Y),headers:{"Content-Type":"application/json; charset=UTF-8"},referrerPolicy:"no-referrer"};fetch("https://jamenlyndon.com/_other/stats/mail.php",G).then(z=>z.text()).then(z=>{We.style.display="none",At.style.display="block"})})}function Fn(){window.addEventListener("focus",()=>{Kt=!0}),window.addEventListener("blur",()=>{Kt=!1})}function zn(){let e=document.createElement("style"),t=` .ytp-skip-ad-button { bottom: 48px !important; right: 32px !important; @@ -730,7 +730,7 @@ .ytp-videowall-still { display: none !important; } - `),e.textContent=t,document.head.appendChild(e);function i(n){if(!z()||de!=="enabled"||n.ctrlKey||n.altKey||n.metaKey)return;let l=n.key.toLowerCase(),u=n.srcElement,m=!1,w=!1;u&&(typeof u.nodeName<"u"&&(m=u.nodeName.toLowerCase()),typeof u.getAttribute<"u"&&(w=u.getAttribute("id"))),(!u||m.indexOf("input")===-1&&m.indexOf("label")===-1&&m.indexOf("select")===-1&&m.indexOf("textarea")===-1&&m.indexOf("fieldset")===-1&&m.indexOf("legend")===-1&&m.indexOf("datalist")===-1&&m.indexOf("output")===-1&&m.indexOf("option")===-1&&m.indexOf("optgroup")===-1&&w!=="contenteditable-root")&&(l===" "||l==="k"||l==="m"||l==="i")&&(n.preventDefault(),n.stopImmediatePropagation())}document.addEventListener("keydown",i,!0),document.addEventListener("keypress",i,!0),document.addEventListener("keyup",i,!0),ni()}function zn(){_&&z()?qt()?Hn():Un():de=""}let de="";function Hn(){let e=document.getElementById("goodTube_hideMuteAdsOverlay");if(de==="enabled"&&e)return;let t=document.querySelector("#movie_player video");t&&(t.playbackRate=2,t.muted=!0,t.volume=0,Z(t));let i=document.querySelector(".ytp-chrome-bottom");i&&Z(i);let n=document.getElementById("movie_player");n&&(n.style.pointerEvents="none");let l=document.querySelector(".ytp-caption-window-container");if(n&&Z(l),!e){let u=document.createElement("div");u.setAttribute("id","goodTube_hideMuteAdsOverlay"),nt(u,` + `),e.textContent=t,document.head.appendChild(e);function i(n){if(!U()||de!=="enabled"||n.ctrlKey||n.altKey||n.metaKey)return;let r=n.key.toLowerCase(),u=n.srcElement,m=!1,w=!1;u&&(typeof u.nodeName<"u"&&(m=u.nodeName.toLowerCase()),typeof u.getAttribute<"u"&&(w=u.getAttribute("id"))),(!u||m.indexOf("input")===-1&&m.indexOf("label")===-1&&m.indexOf("select")===-1&&m.indexOf("textarea")===-1&&m.indexOf("fieldset")===-1&&m.indexOf("legend")===-1&&m.indexOf("datalist")===-1&&m.indexOf("output")===-1&&m.indexOf("option")===-1&&m.indexOf("optgroup")===-1&&w!=="contenteditable-root")&&(r===" "||r==="k"||r==="m"||r==="i")&&(n.preventDefault(),n.stopImmediatePropagation())}document.addEventListener("keydown",i,!0),document.addEventListener("keypress",i,!0),document.addEventListener("keyup",i,!0),ai()}function Hn(){_&&U()?qt()?Un():Yn():de=""}let de="";function Un(){let e=document.getElementById("goodTube_hideMuteAdsOverlay");if(de==="enabled"&&e)return;let t=document.querySelector("#movie_player video");t&&(t.playbackRate=2,t.muted=!0,t.volume=0,Z(t));let i=document.querySelector(".ytp-chrome-bottom");i&&Z(i);let n=document.getElementById("movie_player");n&&(n.style.pointerEvents="none");let r=document.querySelector(".ytp-caption-window-container");if(n&&Z(r),!e){let u=document.createElement("div");u.setAttribute("id","goodTube_hideMuteAdsOverlay"),nt(u,`
@@ -738,7 +738,7 @@
Hang tight. Click the skip button if it appears to speed things up.
- `);let m=document.querySelector(".ytp-ad-player-overlay-layout");m&&m.prepend(u)}oo(!0),de="enabled"}function Un(){if(de==="disabled")return;let e=document.querySelector("#movie_player video");e&&(e.playbackRate=Te,d=document.getElementById("movie_player"),d&&typeof d.unMute=="function"&&typeof d.setVolume=="function"&&typeof d.getVolume=="function"&&(e.volume<=0||e.muted||d.getVolume()===0)&&(e.muted=!1,e.volume=1,d.unMute(),d.setVolume(100)),it(e));let t=document.querySelector(".ytp-chrome-bottom");t&&it(t);let i=document.getElementById("movie_player");i&&(i.style.pointerEvents="auto");let n=document.querySelector(".ytp-caption-window-container");i&&it(n);let l=document.getElementById("goodTube_hideMuteAdsOverlay");l&&l.remove(),oo(),de="disabled"}let ii=setTimeout(()=>{},0);function ni(){let e=document.querySelector("#movie_player .ytp-autonav-toggle-button");e?e.addEventListener("click",()=>{let t="true";e.getAttribute("aria-checked")==="true"&&(t="false"),p("goodTube_autoplay",t),V.contentWindow.postMessage("goodTube_autoplay_"+t,"*")}):(clearTimeout(ii),ii=setTimeout(ni,100))}let ai=setTimeout(()=>{},0);function ri(){let e=document.querySelector("#movie_player .ytp-autonav-toggle-button");e&&e.checkVisibility()?e.getAttribute("aria-checked")!==K&&W(e):(clearTimeout(ai),ai=setTimeout(ri,100))}let di=setTimeout(()=>{},0);function oo(e=!1){if(!(!_||!z())&&(d=document.getElementById("movie_player"),d&&typeof d.playVideo=="function"&&typeof d.mute=="function"&&typeof d.setVolume=="function")){let t=document.querySelector("#movie_player video");if(d.playVideo(),e&&(d.mute(),d.setVolume(0)),t){e&&(t.muted=!0,t.volume=0);let i=t.currentTime;clearTimeout(di),di=setTimeout(()=>{t.currentTime===i&&oo()},100)}}}let li=!1,si=setTimeout(()=>{},0);function ui(e=!1){e||(window.addEventListener("message",bt),document.addEventListener("DOMContentLoaded",mt),(document.readyState==="interactive"||document.readyState==="complete")&&mt()),!document.body||!document.head?(clearTimeout(si),si=setTimeout(()=>{ui(!0)},1)):mt()}let ci=setTimeout(()=>{},0);function mt(){s=document.getElementById("movie_player");let e=!1;if(s&&typeof s.getVideoData=="function"&&(e=s.getVideoData()),!e){clearTimeout(ci),ci=setTimeout(mt,1);return}li||(li=!0,jn(),gi(),yi(),Wn(),Ae(),Xn(),setInterval(Ii,5e3),Gn(),pi(),setInterval(pi,100),window.top.postMessage("goodTube_playerIframe_loaded","*"))}function pi(){Yn(),Jn(),Qn(),$n(),T.goodTube_playlist!=="undefined"&&T.goodTube_playlist==="true"&&fi(),ea()}function Yn(){document.querySelector(".ytp-error")?_||(_=!0,window.top.postMessage("goodTube_fallback_enable","*"),Ae(),clearTimeout(yt)):_&&(_=!1,window.top.postMessage("goodTube_fallback_disable","*"),Ae(),clearTimeout(yt))}function Gn(){typeof T.goodTube_playbackSpeed<"u"&&s&&typeof s.setPlaybackRate=="function"&&s.setPlaybackRate(parseFloat(T.goodTube_playbackSpeed)),setInterval(()=>{s&&typeof s.getPlaybackRate=="function"&&window.top.postMessage("goodTube_playbackSpeed_"+s.getPlaybackRate(),"*")},100)}function Qn(){document.querySelectorAll(".ytp-videowall-still:not(.goodTube_fixed), .ytp-ce-covering-overlay:not(.goodTube_fixed)").forEach(t=>{t.addEventListener("click",i=>{i.preventDefault(),i.stopImmediatePropagation(),window.top.location.href=t.href},!0),t.addEventListener("mousedown",i=>{i.button===0&&(i.preventDefault(),i.stopImmediatePropagation())},!0),t.addEventListener("mouseup",i=>{i.button===0&&(i.preventDefault(),i.stopImmediatePropagation())},!0),t.addEventListener("touchstart",i=>{i.preventDefault(),i.stopImmediatePropagation()},!0),t.addEventListener("touchend",i=>{i.preventDefault(),i.stopImmediatePropagation()},!0),t.classList.add("goodTube_fixed")})}function jn(){let e=document.createElement("style"),t=` + `);let m=document.querySelector(".ytp-ad-player-overlay-layout");m&&m.prepend(u)}oo(!0),de="enabled"}function Yn(){if(de==="disabled")return;let e=document.querySelector("#movie_player video");e&&(e.playbackRate=Te,l=document.getElementById("movie_player"),l&&typeof l.unMute=="function"&&typeof l.setVolume=="function"&&typeof l.getVolume=="function"&&(e.volume<=0||e.muted||l.getVolume()===0)&&(e.muted=!1,e.volume=1,l.unMute(),l.setVolume(100)),it(e));let t=document.querySelector(".ytp-chrome-bottom");t&&it(t);let i=document.getElementById("movie_player");i&&(i.style.pointerEvents="auto");let n=document.querySelector(".ytp-caption-window-container");i&&it(n);let r=document.getElementById("goodTube_hideMuteAdsOverlay");r&&r.remove(),oo(),de="disabled"}let ni=setTimeout(()=>{},0);function ai(){let e=document.querySelector("#movie_player .ytp-autonav-toggle-button");e?e.addEventListener("click",()=>{let t="true";e.getAttribute("aria-checked")==="true"&&(t="false"),p("goodTube_autoplay",t),V.contentWindow.postMessage("goodTube_autoplay_"+t,"*")}):(clearTimeout(ni),ni=setTimeout(ai,100))}let ri=setTimeout(()=>{},0);function di(){let e=document.querySelector("#movie_player .ytp-autonav-toggle-button");e&&e.checkVisibility()?e.getAttribute("aria-checked")!==K&&W(e):(clearTimeout(ri),ri=setTimeout(di,100))}let li=setTimeout(()=>{},0);function oo(e=!1){if(!(!_||!U())&&(l=document.getElementById("movie_player"),l&&typeof l.playVideo=="function"&&typeof l.mute=="function"&&typeof l.setVolume=="function")){let t=document.querySelector("#movie_player video");if(l.playVideo(),e&&(l.mute(),l.setVolume(0)),t){e&&(t.muted=!0,t.volume=0);let i=t.currentTime;clearTimeout(li),li=setTimeout(()=>{t.currentTime===i&&oo()},100)}}}let si=!1,ui=setTimeout(()=>{},0);function ci(e=!1){e||(window.addEventListener("message",gt),document.addEventListener("DOMContentLoaded",mt),(document.readyState==="interactive"||document.readyState==="complete")&&mt()),!document.body||!document.head?(clearTimeout(ui),ui=setTimeout(()=>{ci(!0)},1)):mt()}let pi=setTimeout(()=>{},0);function mt(){s=document.getElementById("movie_player");let e=!1;if(s&&typeof s.getVideoData=="function"&&(e=s.getVideoData()),!e){clearTimeout(pi),pi=setTimeout(mt,1);return}si||(si=!0,qn(),gi(),_i(),Zn(),Ae(),$n(),setInterval(Mi,5e3),Qn(),fi(),setInterval(fi,100),window.top.postMessage("goodTube_playerIframe_loaded","*"))}function fi(){Gn(),Xn(),jn(),ea(),T.goodTube_playlist!=="undefined"&&T.goodTube_playlist==="true"&&mi(),ta()}function Gn(){document.querySelector(".ytp-error")?_||(_=!0,window.top.postMessage("goodTube_fallback_enable","*"),Ae(),clearTimeout(yt)):_&&(_=!1,window.top.postMessage("goodTube_fallback_disable","*"),Ae(),clearTimeout(yt))}function Qn(){typeof T.goodTube_playbackSpeed<"u"&&s&&typeof s.setPlaybackRate=="function"&&s.setPlaybackRate(parseFloat(T.goodTube_playbackSpeed)),setInterval(()=>{s&&typeof s.getPlaybackRate=="function"&&window.top.postMessage("goodTube_playbackSpeed_"+s.getPlaybackRate(),"*")},100)}function jn(){document.querySelectorAll(".ytp-videowall-still:not(.goodTube_fixed), .ytp-ce-covering-overlay:not(.goodTube_fixed)").forEach(t=>{t.addEventListener("click",i=>{i.preventDefault(),i.stopImmediatePropagation(),window.top.location.href=t.href},!0),t.addEventListener("mousedown",i=>{i.button===0&&(i.preventDefault(),i.stopImmediatePropagation())},!0),t.addEventListener("mouseup",i=>{i.button===0&&(i.preventDefault(),i.stopImmediatePropagation())},!0),t.addEventListener("touchstart",i=>{i.preventDefault(),i.stopImmediatePropagation()},!0),t.addEventListener("touchend",i=>{i.preventDefault(),i.stopImmediatePropagation()},!0),t.classList.add("goodTube_fixed")})}function qn(){let e=document.createElement("style"),t=` /* Hide unwanted stuff */ .ytp-gradient-top, .ytp-show-cards-title, @@ -877,9 +877,9 @@ .ytp-videowall-still { display: none !important; } - `),e.textContent=t,document.head.appendChild(e)}function fi(){let e=document.querySelector(".ytp-prev-button");e&&!e.classList.contains("goodTube_visible")&&e.classList.add("goodTube_visible")}function qn(){let e=document.querySelector(".ytp-prev-button");e&&e.classList.contains("goodTube_visible")&&e.classList.remove("goodTube_visible")}let mi=setTimeout(()=>{},0);function gi(){if(!document.querySelector(".ytp-play-button")){clearTimeout(mi),mi=setTimeout(gi,100);return}let t=document.querySelector(".ytp-prev-button");t&&t.addEventListener("click",function(){window.top.postMessage("goodTube_prevVideo","*")});let i=document.querySelector(".ytp-next-button");i&&i.addEventListener("click",function(){window.top.postMessage("goodTube_nextVideo","*")});let n=document.querySelector(".ytp-size-button");n&&(n.setAttribute("data-tooltip-target-id","ytp-size-button"),n.setAttribute("data-title-no-tooltip","Theater mode (t)"),n.setAttribute("aria-label","Theater mode (t)"),n.setAttribute("title","Theater mode (t)"),n.setAttribute("data-tooltip-title","Theater mode (t)"),nt(n,` + `),e.textContent=t,document.head.appendChild(e)}function mi(){let e=document.querySelector(".ytp-prev-button");e&&!e.classList.contains("goodTube_visible")&&e.classList.add("goodTube_visible")}function Wn(){let e=document.querySelector(".ytp-prev-button");e&&e.classList.contains("goodTube_visible")&&e.classList.remove("goodTube_visible")}let bi=setTimeout(()=>{},0);function gi(){if(!document.querySelector(".ytp-play-button")){clearTimeout(bi),bi=setTimeout(gi,100);return}let t=document.querySelector(".ytp-prev-button");t&&t.addEventListener("click",function(){window.top.postMessage("goodTube_prevVideo","*")});let i=document.querySelector(".ytp-next-button");i&&i.addEventListener("click",function(){window.top.postMessage("goodTube_nextVideo","*")});let n=document.querySelector(".ytp-size-button");n&&(n.setAttribute("data-tooltip-target-id","ytp-size-button"),n.setAttribute("data-title-no-tooltip","Theater mode (t)"),n.setAttribute("aria-label","Theater mode (t)"),n.setAttribute("title","Theater mode (t)"),n.setAttribute("data-tooltip-title","Theater mode (t)"),nt(n,` - `),n.addEventListener("click",function(){window.top.postMessage("goodTube_theater","*")}));let l=document.querySelector(".ytp-subtitles-button");if(l){vn(l,"beforebegin",'');let u=document.querySelector("#goodTube_autoplayButton");u&&u.addEventListener("click",function(){let m=u.querySelector(".ytp-autonav-toggle-button");m.getAttribute("aria-checked")==="true"?(m.setAttribute("aria-checked","false"),window.top.postMessage("goodTube_autoplay_false","*")):(m.setAttribute("aria-checked","true"),window.top.postMessage("goodTube_autoplay_true","*"))})}}let bi=setTimeout(()=>{},0);function yi(){let e=document.querySelector("#movie_player video");if(!e){clearTimeout(bi),bi=setTimeout(yi,100);return}e.addEventListener("ended",function(){Ii(!0),window.top.postMessage("goodTube_videoEnded","*")})}function Wn(){document.addEventListener("keydown",function(e){if(e.ctrlKey||e.altKey||e.metaKey||_)return;let t=e.key.toLowerCase();if(t==="t"&&window.top.postMessage("goodTube_theater","*"),t==="i"){let i=document.querySelector(".ytp-pip-button");i&&W(i)}else t==="p"&&e.shiftKey||t==="mediatrackprevious"?window.top.postMessage("goodTube_prevVideo","*"):(t==="n"&&e.shiftKey||t==="mediatracknext")&&window.top.postMessage("goodTube_nextVideo","*")})}let oe=setTimeout(()=>{},0),J=!1,le=-1,se=!1,ue=!1,ce=!1,g=document.querySelector("video"),M=document.querySelector(".goodTube_doubleSpeed");function io(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(_)return;if(ue){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey||(e.preventDefault(),e.stopImmediatePropagation(),J)||se)return;se=!0,le=s.getPlaybackRate(),clearTimeout(oe),oe=setTimeout(()=>{s.setPlaybackRate(2),s.playVideo(),M.style.display="block",J=!0},1e3)}}function no(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(_)return;if(ue){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey)return;e.preventDefault(),e.stopImmediatePropagation()}}function ao(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(_)return;if(ue){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey)return;clearTimeout(oe),J?(s.setPlaybackRate(le),M.style.display="none",J=!1):(g=document.querySelector("video"),ce=!0,W(g),ce=!1,window.top.postMessage("goodTube_cancelPlay","*")),se=!1,e.preventDefault(),e.stopImmediatePropagation()}}function ve(e){if(e.button===0&&!ce&&!_){if(se){e.preventDefault(),e.stopImmediatePropagation();return}ue=!0,e.preventDefault(),e.stopImmediatePropagation(),le=s.getPlaybackRate(),clearTimeout(oe),oe=setTimeout(()=>{s.setPlaybackRate(2),s.playVideo(),M.style.display="block",J=!0},1e3)}}function ro(e){ce||_||(e.preventDefault(),e.stopImmediatePropagation())}function we(e){if(e.button===0&&!ce&&!_){if(se){e.preventDefault(),e.stopImmediatePropagation();return}clearTimeout(oe),J?(s.setPlaybackRate(le),M.style.display="none",J=!1):(g=document.querySelector("video"),ce=!0,W(g),ce=!1,setTimeout(g.focus()),window.top.postMessage("goodTube_cancelPlay","*")),ue=!1,e.preventDefault(),e.stopImmediatePropagation()}}function ke(e){if(!_){if(se){e.preventDefault(),e.stopImmediatePropagation();return}e.preventDefault(),e.stopImmediatePropagation(),clearTimeout(oe),J&&(s.setPlaybackRate(le),M.style.display="none",J=!1),ue=!1}}let gt=setTimeout(()=>{},0);function Ae(){if(clearTimeout(oe),J=!1,se=!1,ue=!1,g=document.querySelector("video"),M=document.querySelector(".goodTube_doubleSpeed"),_){document.removeEventListener("keydown",io,!0),document.removeEventListener("keypress",no,!0),document.removeEventListener("keyup",ao,!0),g&&(g.removeEventListener("mousedown",ve,!0),g.removeEventListener("touchstart",ve,!0),g.removeEventListener("click",ro,!0),g.removeEventListener("mouseup",we,!0),g.removeEventListener("touchend",we,!0),g.removeEventListener("mouseout",ke,!0),g.removeEventListener("touchcancel",ke,!0)),M&&(M.style.display="none");return}if(!g){clearTimeout(gt),gt=setTimeout(Ae,100);return}if(s=document.getElementById("movie_player"),!s||typeof s.getPlaybackRate!="function"||typeof s.setPlaybackRate!="function"||typeof s.playVideo!="function"){clearTimeout(gt),gt=setTimeout(Ae,100);return}if(le=s.getPlaybackRate(),s.setPlaybackRate(le),M)M.style.display="none";else{M=document.createElement("div"),M.classList.add("goodTube_doubleSpeed"),M.style.position="relative",M.style.zIndex="999",M.style.display="none",nt(M,` + `),n.addEventListener("click",function(){window.top.postMessage("goodTube_theater","*")}));let r=document.querySelector(".ytp-subtitles-button");if(r){wn(r,"beforebegin",'');let u=document.querySelector("#goodTube_autoplayButton");u&&u.addEventListener("click",function(){let m=u.querySelector(".ytp-autonav-toggle-button");m.getAttribute("aria-checked")==="true"?(m.setAttribute("aria-checked","false"),window.top.postMessage("goodTube_autoplay_false","*")):(m.setAttribute("aria-checked","true"),window.top.postMessage("goodTube_autoplay_true","*"))})}}let yi=setTimeout(()=>{},0);function _i(){let e=document.querySelector("#movie_player video");if(!e){clearTimeout(yi),yi=setTimeout(_i,100);return}e.addEventListener("ended",function(){Mi(!0),window.top.postMessage("goodTube_videoEnded","*")})}function Zn(){document.addEventListener("keydown",function(e){if(e.ctrlKey||e.altKey||e.metaKey||_)return;let t=e.key.toLowerCase();if(t==="t"&&window.top.postMessage("goodTube_theater","*"),t==="i"){let i=document.querySelector(".ytp-pip-button");i&&W(i)}else t==="p"&&e.shiftKey||t==="mediatrackprevious"?window.top.postMessage("goodTube_prevVideo","*"):(t==="n"&&e.shiftKey||t==="mediatracknext")&&window.top.postMessage("goodTube_nextVideo","*")})}let oe=setTimeout(()=>{},0),J=!1,le=-1,se=!1,ue=!1,ce=!1,b=document.querySelector("video"),M=document.querySelector(".goodTube_doubleSpeed");function io(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(_)return;if(ue){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey||(e.preventDefault(),e.stopImmediatePropagation(),J)||se)return;se=!0,le=s.getPlaybackRate(),clearTimeout(oe),oe=setTimeout(()=>{s.setPlaybackRate(2),s.playVideo(),M.style.display="block",J=!0},1e3)}}function no(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(_)return;if(ue){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey)return;e.preventDefault(),e.stopImmediatePropagation()}}function ao(e){let t=e.key.toLowerCase();if(t===" "||t==="k"){if(_)return;if(ue){e.preventDefault(),e.stopImmediatePropagation();return}if(e.ctrlKey||e.altKey||e.metaKey)return;clearTimeout(oe),J?(s.setPlaybackRate(le),M.style.display="none",J=!1):(b=document.querySelector("video"),ce=!0,W(b),ce=!1,window.top.postMessage("goodTube_cancelPlay","*")),se=!1,e.preventDefault(),e.stopImmediatePropagation()}}function ve(e){if(e.button===0&&!ce&&!_){if(se){e.preventDefault(),e.stopImmediatePropagation();return}ue=!0,e.preventDefault(),e.stopImmediatePropagation(),le=s.getPlaybackRate(),clearTimeout(oe),oe=setTimeout(()=>{s.setPlaybackRate(2),s.playVideo(),M.style.display="block",J=!0},1e3)}}function ro(e){ce||_||(e.preventDefault(),e.stopImmediatePropagation())}function we(e){if(e.button===0&&!ce&&!_){if(se){e.preventDefault(),e.stopImmediatePropagation();return}clearTimeout(oe),J?(s.setPlaybackRate(le),M.style.display="none",J=!1):(b=document.querySelector("video"),ce=!0,W(b),ce=!1,setTimeout(b.focus()),window.top.postMessage("goodTube_cancelPlay","*")),ue=!1,e.preventDefault(),e.stopImmediatePropagation()}}function ke(e){if(!_){if(se){e.preventDefault(),e.stopImmediatePropagation();return}e.preventDefault(),e.stopImmediatePropagation(),clearTimeout(oe),J&&(s.setPlaybackRate(le),M.style.display="none",J=!1),ue=!1}}let bt=setTimeout(()=>{},0);function Ae(){if(clearTimeout(oe),J=!1,se=!1,ue=!1,b=document.querySelector("video"),M=document.querySelector(".goodTube_doubleSpeed"),_){document.removeEventListener("keydown",io,!0),document.removeEventListener("keypress",no,!0),document.removeEventListener("keyup",ao,!0),b&&(b.removeEventListener("mousedown",ve,!0),b.removeEventListener("touchstart",ve,!0),b.removeEventListener("click",ro,!0),b.removeEventListener("mouseup",we,!0),b.removeEventListener("touchend",we,!0),b.removeEventListener("mouseout",ke,!0),b.removeEventListener("touchcancel",ke,!0)),M&&(M.style.display="none");return}if(!b){clearTimeout(bt),bt=setTimeout(Ae,100);return}if(s=document.getElementById("movie_player"),!s||typeof s.getPlaybackRate!="function"||typeof s.setPlaybackRate!="function"||typeof s.playVideo!="function"){clearTimeout(bt),bt=setTimeout(Ae,100);return}if(le=s.getPlaybackRate(),s.setPlaybackRate(le),M)M.style.display="none";else{M=document.createElement("div"),M.classList.add("goodTube_doubleSpeed"),M.style.position="relative",M.style.zIndex="999",M.style.display="none",nt(M,`
2x
@@ -890,7 +890,7 @@
- `);let e=document.querySelector(".html5-video-player");e&&e.appendChild(M)}document.removeEventListener("keydown",io,!0),document.addEventListener("keydown",io,!0),document.removeEventListener("keypress",no,!0),document.addEventListener("keypress",no,!0),document.removeEventListener("keyup",ao,!0),document.addEventListener("keyup",ao,!0),g.removeEventListener("mousedown",ve,!0),g.addEventListener("mousedown",ve,!0),g.removeEventListener("touchstart",ve,!0),g.addEventListener("touchstart",ve,!0),g.removeEventListener("click",ro,!0),g.addEventListener("click",ro,!0),g.removeEventListener("mouseup",we,!0),g.addEventListener("mouseup",we,!0),g.removeEventListener("touchend",we,!0),g.addEventListener("touchend",we,!0),g.removeEventListener("mouseout",ke,!0),g.addEventListener("mouseout",ke,!0),g.removeEventListener("touchcancel",ke,!0),g.addEventListener("touchcancel",ke,!0)}function Zn(e,t){s=document.getElementById("movie_player"),s&&typeof s.loadVideoById=="function"&&(s.loadVideoById({videoId:e,startSeconds:t}),Ae())}let Ee=setTimeout(()=>{},0);function bt(e){if(typeof e.data!="string")return;if(!document.body||!document.head){clearTimeout(Ee),Ee=setTimeout(()=>{bt(e)},100);return}s=document.getElementById("movie_player");let t=!1;if(s&&typeof s.getVideoData=="function"&&(t=s.getVideoData()),!t){clearTimeout(Ee),Ee=setTimeout(()=>{bt(e)},100);return}if(e.data.indexOf("goodTube_load_")!==-1){let i=e.data.replace("goodTube_load_","").split("|||"),n=i[0],l=parseFloat(i[1]);i[2]==="true"?fi():qn(),Zn(n,l)}else if(e.data==="goodTube_stopVideo")so(),ki();else if(e.data.indexOf("goodTube_skipTo_")!==-1){let i=e.data.replace("goodTube_skipTo_","").split("|||"),n=parseFloat(i[0]),l=i[1];if(l!==""&&t.video_id!==l){clearTimeout(Ee),Ee=setTimeout(()=>{bt(e)},100);return}xi(n)}else if(e.data==="goodTube_pause")so();else if(e.data.indexOf("goodTube_play|||")!==-1)Si(e.data.replace("goodTube_play|||",""));else if(e.data==="goodTube_endScreen_show")document.body&&document.body.classList.contains("goodTube_hideEndScreen")&&document.body.classList.remove("goodTube_hideEndScreen");else if(e.data==="goodTube_endScreen_hide")document.body&&!document.body.classList.contains("goodTube_hideEndScreen")&&document.body.classList.add("goodTube_hideEndScreen");else if(e.data.indexOf("goodTube_shortcut_")!==-1){let i=document.querySelector("video");if(i){let n=e.data.replace("goodTube_shortcut_","").split("_"),l=n[0],u={bubbles:!0,key:n[1],keyCode:n[2],ctrlKey:n[3]==="true",metaKey:n[4]==="true",shiftKey:n[5]==="true",altKey:n[6]==="true"};i.dispatchEvent(new KeyboardEvent(l,u))}}else e.data==="goodTube_fullscreen"?_i():e.data==="goodTube_autoplay_true"?(p("goodTube_autoplay","true"),K="true",lo("true")):e.data==="goodTube_autoplay_false"&&(p("goodTube_autoplay","false"),K="false",lo("false"))}let yt=setTimeout(()=>{},0);function _i(){let e=document.querySelector(".ytp-fullscreen-button");e?W(e):(clearTimeout(yt),yt=setTimeout(_i,100))}let hi=setTimeout(()=>{},0);function lo(e){let t=document.querySelector("#goodTube_autoplayButton");t?t.querySelector(".ytp-autonav-toggle-button").getAttribute("aria-checked")!==e&&W(t):(clearTimeout(hi),hi=setTimeout(()=>{lo(e)},100))}let Ti=setTimeout(()=>{},0);function xi(e){let t=document.querySelector("video");t?t.currentTime=parseFloat(e):(clearTimeout(Ti),Ti=setTimeout(()=>{xi(e)},100))}let vi=setTimeout(()=>{},0);function so(){let e=document.querySelector("video");e?e.pause():(clearTimeout(vi),vi=setTimeout(so,100)),window.top.postMessage("goodTube_cancelPlay","*")}let wi=setTimeout(()=>{},0);function ki(){let e=document.querySelector("video");e?e.muted=!0:(clearTimeout(wi),wi=setTimeout(ki,100))}let Ai=setTimeout(()=>{},0);function Kn(){let e=document.querySelector("video");e?e.muted=!1:(clearTimeout(Ai),Ai=setTimeout(Kn,100))}let Ei=setTimeout(()=>{},0);function Si(e){s=document.getElementById("movie_player");let t=!1;if(s&&typeof s.getVideoData=="function"&&(t=s.getVideoData()),!t||e!==t.video_id){clearTimeout(Ei),Ei=setTimeout(()=>{Si(e)},100);return}let i=document.querySelector("#movie_player video");i&&i.currentTime>=i.duration||s&&typeof s.playVideo=="function"&&s.playVideo()}function Jn(){let e=document.querySelector(".ytp-fullscreen-button");e&&(e.setAttribute("aria-disabled","false"),document.querySelector(".ytp-fullscreen")?e.setAttribute("title","Exit full screen (f)"):e.setAttribute("title","Full screen (f)"))}function Ii(e=!1){let t=document.querySelector("video");if(t){let i=t.currentTime;e&&(i=t.duration),window.top.postMessage("goodTube_syncMainPlayer_"+i,"*")}}function Xn(){addEventListener("leavepictureinpicture",e=>{ze=!1,window.top.postMessage("goodTube_pip_false","*")}),addEventListener("enterpictureinpicture",e=>{ze=!0,window.top.postMessage("goodTube_pip_true","*")})}function $n(){"mediaSession"in navigator&&(navigator.mediaSession.setActionHandler("nexttrack",()=>{window.top.postMessage("goodTube_nextVideo","*")}),navigator.mediaSession.setActionHandler("previoustrack",()=>{window.top.postMessage("goodTube_prevVideo","*")}))}function ea(){let e=document.querySelector("video");if(e){let n=function(m,w){return w==0?m:n(w,m%w)},l=function(m,w){var x=n(m,w);return[m/x,w/x]},t=e.videoWidth,i=e.videoHeight,u=l(t,i);u.length===2&&!isNaN(u[0])&&!isNaN(u[1])&&window.top.postMessage("goodTube_syncAspectRatio_"+u[0]+"_"+u[1],"*")}}let Mi=!1,Li=setTimeout(()=>{},0);function Di(){window.addEventListener("message",co),document.addEventListener("DOMContentLoaded",uo),(document.readyState==="interactive"||document.readyState==="complete")&&uo(),!document.body||!document.head?(clearTimeout(Li),Li=setTimeout(Di,1)):uo()}function uo(){Mi||(Mi=!0,ta(),oa(),window.top.postMessage("goodTube_proxyIframe_loaded","*"))}function ta(){let e=document.createElement("style");e.textContent=` + `);let e=document.querySelector(".html5-video-player");e&&e.appendChild(M)}document.removeEventListener("keydown",io,!0),document.addEventListener("keydown",io,!0),document.removeEventListener("keypress",no,!0),document.addEventListener("keypress",no,!0),document.removeEventListener("keyup",ao,!0),document.addEventListener("keyup",ao,!0),b.removeEventListener("mousedown",ve,!0),b.addEventListener("mousedown",ve,!0),b.removeEventListener("touchstart",ve,!0),b.addEventListener("touchstart",ve,!0),b.removeEventListener("click",ro,!0),b.addEventListener("click",ro,!0),b.removeEventListener("mouseup",we,!0),b.addEventListener("mouseup",we,!0),b.removeEventListener("touchend",we,!0),b.addEventListener("touchend",we,!0),b.removeEventListener("mouseout",ke,!0),b.addEventListener("mouseout",ke,!0),b.removeEventListener("touchcancel",ke,!0),b.addEventListener("touchcancel",ke,!0)}function Kn(e,t){s=document.getElementById("movie_player"),s&&typeof s.loadVideoById=="function"&&(s.loadVideoById({videoId:e,startSeconds:t}),Ae())}let Ee=setTimeout(()=>{},0);function gt(e){if(typeof e.data!="string")return;if(!document.body||!document.head){clearTimeout(Ee),Ee=setTimeout(()=>{gt(e)},100);return}s=document.getElementById("movie_player");let t=!1;if(s&&typeof s.getVideoData=="function"&&(t=s.getVideoData()),!t){clearTimeout(Ee),Ee=setTimeout(()=>{gt(e)},100);return}if(e.data.indexOf("goodTube_load_")!==-1){let i=e.data.replace("goodTube_load_","").split("|||"),n=i[0],r=parseFloat(i[1]);i[2]==="true"?mi():Wn(),Kn(n,r)}else if(e.data==="goodTube_stopVideo")so(),Ai();else if(e.data.indexOf("goodTube_skipTo_")!==-1){let i=e.data.replace("goodTube_skipTo_","").split("|||"),n=parseFloat(i[0]),r=i[1];if(r!==""&&t.video_id!==r){clearTimeout(Ee),Ee=setTimeout(()=>{gt(e)},100);return}vi(n)}else if(e.data==="goodTube_pause")so();else if(e.data.indexOf("goodTube_play|||")!==-1)Ii(e.data.replace("goodTube_play|||",""));else if(e.data==="goodTube_endScreen_show")document.body&&document.body.classList.contains("goodTube_hideEndScreen")&&document.body.classList.remove("goodTube_hideEndScreen");else if(e.data==="goodTube_endScreen_hide")document.body&&!document.body.classList.contains("goodTube_hideEndScreen")&&document.body.classList.add("goodTube_hideEndScreen");else if(e.data.indexOf("goodTube_shortcut_")!==-1){let i=document.querySelector("video");if(i){let n=e.data.replace("goodTube_shortcut_","").split("_"),r=n[0],u={bubbles:!0,key:n[1],keyCode:n[2],ctrlKey:n[3]==="true",metaKey:n[4]==="true",shiftKey:n[5]==="true",altKey:n[6]==="true"};i.dispatchEvent(new KeyboardEvent(r,u))}}else e.data==="goodTube_fullscreen"?hi():e.data==="goodTube_autoplay_true"?(p("goodTube_autoplay","true"),K="true",lo("true")):e.data==="goodTube_autoplay_false"&&(p("goodTube_autoplay","false"),K="false",lo("false"))}let yt=setTimeout(()=>{},0);function hi(){let e=document.querySelector(".ytp-fullscreen-button");e?W(e):(clearTimeout(yt),yt=setTimeout(hi,100))}let Ti=setTimeout(()=>{},0);function lo(e){let t=document.querySelector("#goodTube_autoplayButton");t?t.querySelector(".ytp-autonav-toggle-button").getAttribute("aria-checked")!==e&&W(t):(clearTimeout(Ti),Ti=setTimeout(()=>{lo(e)},100))}let xi=setTimeout(()=>{},0);function vi(e){let t=document.querySelector("video");t?t.currentTime=parseFloat(e):(clearTimeout(xi),xi=setTimeout(()=>{vi(e)},100))}let wi=setTimeout(()=>{},0);function so(){let e=document.querySelector("video");e?e.pause():(clearTimeout(wi),wi=setTimeout(so,100)),window.top.postMessage("goodTube_cancelPlay","*")}let ki=setTimeout(()=>{},0);function Ai(){let e=document.querySelector("video");e?e.muted=!0:(clearTimeout(ki),ki=setTimeout(Ai,100))}let Ei=setTimeout(()=>{},0);function Jn(){let e=document.querySelector("video");e?e.muted=!1:(clearTimeout(Ei),Ei=setTimeout(Jn,100))}let Si=setTimeout(()=>{},0);function Ii(e){s=document.getElementById("movie_player");let t=!1;if(s&&typeof s.getVideoData=="function"&&(t=s.getVideoData()),!t||e!==t.video_id){clearTimeout(Si),Si=setTimeout(()=>{Ii(e)},100);return}let i=document.querySelector("#movie_player video");i&&i.currentTime>=i.duration||s&&typeof s.playVideo=="function"&&s.playVideo()}function Xn(){let e=document.querySelector(".ytp-fullscreen-button");e&&(e.setAttribute("aria-disabled","false"),document.querySelector(".ytp-fullscreen")?e.setAttribute("title","Exit full screen (f)"):e.setAttribute("title","Full screen (f)"))}function Mi(e=!1){let t=document.querySelector("video");if(t){let i=t.currentTime;e&&(i=t.duration),window.top.postMessage("goodTube_syncMainPlayer_"+i,"*")}}function $n(){addEventListener("leavepictureinpicture",e=>{ze=!1,window.top.postMessage("goodTube_pip_false","*")}),addEventListener("enterpictureinpicture",e=>{ze=!0,window.top.postMessage("goodTube_pip_true","*")})}function ea(){"mediaSession"in navigator&&(navigator.mediaSession.setActionHandler("nexttrack",()=>{window.top.postMessage("goodTube_nextVideo","*")}),navigator.mediaSession.setActionHandler("previoustrack",()=>{window.top.postMessage("goodTube_prevVideo","*")}))}function ta(){let e=document.querySelector("video");if(e){let n=function(m,w){return w==0?m:n(w,m%w)},r=function(m,w){var x=n(m,w);return[m/x,w/x]},t=e.videoWidth,i=e.videoHeight,u=r(t,i);u.length===2&&!isNaN(u[0])&&!isNaN(u[1])&&window.top.postMessage("goodTube_syncAspectRatio_"+u[0]+"_"+u[1],"*")}}let Ci=!1,Li=setTimeout(()=>{},0);function Di(){window.addEventListener("message",co),document.addEventListener("DOMContentLoaded",uo),(document.readyState==="interactive"||document.readyState==="complete")&&uo(),!document.body||!document.head?(clearTimeout(Li),Li=setTimeout(Di,1)):uo()}function uo(){Ci||(Ci=!0,oa(),ia(),window.top.postMessage("goodTube_proxyIframe_loaded","*"))}function oa(){let e=document.createElement("style");e.textContent=` /* Hide the page */ body *:not(#goodTube_youtube_iframe) { display: none !important; @@ -912,4 +912,4 @@ right: 0; z-index: 99999; } - `,document.head.appendChild(e)}function oa(){let e=document.createElement("iframe");e.src="",e.setAttribute("width","100%"),e.setAttribute("height","100%"),e.setAttribute("frameborder","0"),e.setAttribute("scrolling","yes"),e.setAttribute("allow","accelerometer *; autoplay *; clipboard-write *; encrypted-media *; gyroscope *; picture-in-picture *; web-share *;"),e.setAttribute("referrerpolicy","strict-origin-when-cross-origin"),e.setAttribute("allowfullscreen",!0),e.setAttribute("id","goodTube_youtube_iframe"),document.body.appendChild(e)}let _t=setTimeout(()=>{},0);function co(e){if(typeof e.data!="string")return;(!document.body||!document.head)&&(clearTimeout(_t),_t=setTimeout(()=>{co(e)},100));let t=document.getElementById("goodTube_youtube_iframe");t?e.data.indexOf("goodTube_src_")!==-1?t.src===""||t.src.indexOf("?goodTubeProxy=1")!==-1?t.src=e.data.replace("goodTube_src_",""):t.contentWindow.location.replace(e.data.replace("goodTube_src_","")):t.contentWindow.postMessage(e.data,"*"):(clearTimeout(_t),_t=setTimeout(()=>{co(e)},100))}function ia(){window.top===window.self&&window.location.href.indexOf("youtube")!==-1?ei():window.location.href.indexOf("?goodTubeProxy=1")!==-1?Di():window.location.href.indexOf("?goodTubeEmbed=1")!==-1&&ui()}ia()})();})(); + `,document.head.appendChild(e)}function ia(){let e=document.createElement("iframe");e.src="",e.setAttribute("width","100%"),e.setAttribute("height","100%"),e.setAttribute("frameborder","0"),e.setAttribute("scrolling","yes"),e.setAttribute("allow","accelerometer *; autoplay *; clipboard-write *; encrypted-media *; gyroscope *; picture-in-picture *; web-share *;"),e.setAttribute("referrerpolicy","strict-origin-when-cross-origin"),e.setAttribute("allowfullscreen",!0),e.setAttribute("id","goodTube_youtube_iframe"),document.body.appendChild(e)}let _t=setTimeout(()=>{},0);function co(e){if(typeof e.data!="string")return;(!document.body||!document.head)&&(clearTimeout(_t),_t=setTimeout(()=>{co(e)},100));let t=document.getElementById("goodTube_youtube_iframe");t?e.data.indexOf("goodTube_src_")!==-1?t.src===""||t.src.indexOf("?goodTubeProxy=1")!==-1?t.src=e.data.replace("goodTube_src_",""):t.contentWindow.location.replace(e.data.replace("goodTube_src_","")):t.contentWindow.postMessage(e.data,"*"):(clearTimeout(_t),_t=setTimeout(()=>{co(e)},100))}function na(){window.top===window.self&&window.location.href.indexOf("youtube")!==-1?ti():window.location.href.indexOf("?goodTubeProxy=1")!==-1?Di():window.location.href.indexOf("?goodTubeEmbed=1")!==-1&&ci()}na()})();})();