Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion API Crash on stopVideo()

Received: by 10.52.89.129 with SMTP id bo1mr2297338vdb.0.1342214576618;
        Fri, 13 Jul 2012 14:22:56 -0700 (PDT)
X-BeenThere: youtube-api-gdata@googlegroups.com
Received: by 10.220.240.15 with SMTP id ky15ls447342vcb.6.gmail; Fri, 13 Jul
 2012 14:22:46 -0700 (PDT)
Received: by 10.52.155.207 with SMTP id vy15mr334075vdb.13.1342214566946;
        Fri, 13 Jul 2012 14:22:46 -0700 (PDT)
Received: by 10.52.155.207 with SMTP id vy15mr334072vdb.13.1342214566845;
        Fri, 13 Jul 2012 14:22:46 -0700 (PDT)
Date: Fri, 13 Jul 2012 14:22:46 -0700 (PDT)
From: Jeffrey Posnick <je...@google.com>
To: youtube-api-gdata@googlegroups.com
Message-Id: <98cd537e-c84b-4c66-8561-8fb7e92310f2@googlegroups.com>
In-Reply-To: <6bbba77a-6b6d-475a-aff9-ac7fc57a2541@googlegroups.com>
References: <47ef2c15-a947-4ba0-bf29-13fc7dced1df@googlegroups.com>
 <5895e1d4-15d8-448d-8fd7-f65ffb2d4811@googlegroups.com>
 <6bbba77a-6b6d-475a-aff9-ac7fc57a2541@googlegroups.com>
Subject: Re: API Crash on stopVideo()
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_2127_22907861.1342214566343"
X-Gm-Message-State: ALoCoQlE01HGHXJ429vQ4Ir9A72SN3lR1ReDVaHJry76p24MuSeRRKvaBW9dra9fHhoMoejlEOL+p5xvhU6tWBhOaPIDBsbudnd8msGSzQ+nKQ3/Pzr6/Yb+v7W+DMjx7Xe3TgWBZiX0AkrhH7J24jH+5E84NsunajM+Po0ECKHQW5VeAPi8hlF4k8lcsPOfCIWR/8Gz+SUTQQjJjIe0RndHFcmwttSOxEIuC9MaZrtpC8sVxskS/No=

------=_Part_2127_22907861.1342214566343
Content-Type: multipart/alternative; 
	boundary="----=_Part_2128_8871177.1342214566343"

------=_Part_2128_8871177.1342214566343
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Hello Greg,

 Unfortunately, we can't provide a non-minified version of the YouTube 
Player API code.

 I'm not sure how to procede either if you're not able to provide us with a 
version of your code that reproduces the issue. Apologies.

Cheers,
-Jeff Posnick, YouTube API Team
apiblog.youtube.com | Google+: http://goo.gl/bZflZ


On Thursday, June 28, 2012 6:24:05 PM UTC-4, Greg Pendlebury wrote:
>
> Hi Jeff,
>
> Thanks for your response and apologies for the delay. We moved on to 
> embedding the player to workaround the problem, only without iframes now we 
> can't support iOS playback in situ, which the business owners are fairly 
> bummed about. But they were more annoyed that we couldn't stop playback 
> when the 'popup' closed, so they are ok with what we have now.
>
> I'm happy to do more diagnostic work to get the iframe working, but I 
> don't know where to start. It is 100% reproducible on our dev server, but I 
> can't really reproduce the entire application outside of our closed dev 
> environment, and the portions that seem directly related are not causing 
> crashes in isolation. Is there a non-minified version of the code I can run 
> to see what that line is trying to do when it crashes?
>
> Ta,
> Greg
>
> On Saturday, 23 June 2012 02:12:22 UTC+10, Jeffrey Posnick wrote:
>>
>> Hello Greg,
>>
>>  You really shouldn't have to be mucking around in the YT.Player code to 
>> debug things. If there's a reproducible issue, our Players engineering team 
>> would be happy to take a look. Since the code you've provided does appear 
>> to work without issue when run in a web browser, I'm curious as to how we 
>> could go about reproducing the issue that you describe. Is there anything 
>> that you could pass along?
>>
>> Cheers,
>> -Jeff Posnick, YouTube API Team
>> apiblog.youtube.com | Google+: http://goo.gl/bZflZ
>>
>>
>> On Tuesday, June 19, 2012 1:19:05 AM UTC-4, Greg Pendlebury wrote:
>>>
>>> Heyo,
>>>
>>> I've run into this issue today, and I can't seem to make any headway. 
>>> This code: http://jsfiddle.net/Z7B8U/ works fine in isolation, but when 
>>> used inside our application a crash occurs inside the API.
>>>
>>> Basically, when the user leaves the video playing and hits 'close' in 
>>> the header it should stop the player before closing the 'window'. Used 
>>> inside our application however it throws this to the Firefox console:
>>>  second argument to Function.prototype.apply must be an array    
>>>  ...h(EMBEe);EMBCe.b=EMBc}};var EMB$,EMBgc=new EMBfc,EMBFe=EMBd;function 
>>> EMBGe(a,b){...
>>>
>>> My real problem is that I'm having a hard time following this through 
>>> the minified code to find out what the API doesn't like.
>>>
>>> Explorations so far start at the site of the crash:
>>> function EMBGe(a, b) {
>>>   var c = EMB$;
>>>   c[a] && (c[a].apply(c,b || []), (0 == a.search("cue") || 0 == a.search
>>> ("load")) && EMBHe())
>>> }
>>>
>>> I think it is:
>>> c[a].apply(c,b || [])
>>>
>>> Causing the problem, and I read that as basically 'b' is not null (or it 
>>> would choose the empty array), but it also isn't an array, so we have a 
>>> crash.
>>>
>>> If some context helps here is the thread of code I've followed up (and 
>>> around) the stack:
>>>
>>> function EMBJe() {
>>>   EMBFe = new EMBBc;
>>>   EMBgc.a = EMBKe;
>>>   var a = EMBgc;
>>>   a.b = EMBGe;  <=====
>>>   a.d = EMBd;
>>>   ...
>>> }
>>>
>>> function EMBGc(a) { // PARENT
>>>   if (EMBOa && EMBx) {
>>>     var b = a.ownerDocument.defaultView;
>>>     if( b != b.top) return EMBe
>>>   }
>>>   return !!a.getBoundingClientRect
>>> }
>>>
>>> function EMBKe() {
>>>   EMBHe();
>>>   EMBQ({event:"onReady"})};
>>>   EMBm("yt.embed.writeEmbed", function() {
>>>     var a = new EMBR(EMBO("PLAYER_CONFIG")), b;
>>>     b = a instanceof EMBR ? a.args : a.args;
>>>     var c;
>>>     c = EMBO("CONVERSION_CONFIG_DICT");
>>>     if (!c || !c.socialEnabled) c = EMBd;
>>>     else {
>>>       var d, e = c.oeid, f = window.location.hash;
>>>       d = EMB8c(f);
>>>       var g = window.location, h, e = {oeid: e}, i = "";
>>>       "#" == f.charAt(0) && (i = "!" == f.charAt(1) ? f.substr(0,2) : f.
>>> substr(0, 1));
>>>       f = EMB8c(f);
>>>       for (h in e) f[h] = e[h];
>>>       h = i + EMB9c(f);
>>>       g.hash = h;
>>>       d = d.oeid;
>>>       c = c.ieid = d
>>>     }
>>>     c && (b.ieid = c);
>>>     c = EMB8c(window.location.hash);
>>>     (c = c.t || c.at)
>>>       ? (
>>>         d = window.location.hash.replace(/\bat=[^&]*&?/, ""),
>>>           window.location.hash = d && "#" != d ? d : "#!",
>>>         d = c,
>>>         c = 0,
>>>         -1 != d.indexOf("h") && (d = d.split("h"), c = 3600 * d[0], d =d
>>> [1]),
>>>         -1 != d.indexOf("m") && (d = d.split("m"), c = 60 * d[0] + c, d 
>>> = d[1]),
>>>         -1 != d.indexOf("s")
>>>         ) ? (
>>>           d = d.split("s"),
>>>           c = 1 * d[0] + c
>>>           )
>>>           : c = 1 * d + c
>>>       : c = 0;
>>>     c && (b.start = c, b.resume = 1);
>>>     window != window.top && (a.args.el = "embedded");
>>>     EMBO("CUED_AUTOPLAY") && (a.args.autoplay = 1);
>>>     a.args.jsapicallback = EMBJe;       <======================
>>>     EMB$ = EMBre(a)
>>>   });
>>>
>>>
>>> And here I'm stumped. It is obviously some sort of init code and I'm 
>>> guessing it last line point at just above would make 'EMBJe' some sort 
>>> of wrapper for the 'onYouTubePlayerAPIReady()' callback perhaps? The 
>>> minified names don't give my limited knowledge enough context diagnose 
>>> however, so if someone could provide any pointers it would be greatly 
>>> appreciated.
>>>
>>> Ta,
>>> Greg
>>>
>>
------=_Part_2128_8871177.1342214566343
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hello Greg,<div><br></div><div>&nbsp;Unfortunately, we can't provide a non-=
minified version of the YouTube Player API code.</div><div><br></div><div>&=
nbsp;I'm not sure how to procede either if you're not able to provide us wi=
th a version of your code that reproduces the issue. Apologies.</div><div><=
br></div><div><div>Cheers,</div><div>-Jeff Posnick, YouTube API Team</div><=
div>apiblog.youtube.com | Google+: http://goo.gl/bZflZ</div><div><br></div>=
</div><div><br>On Thursday, June 28, 2012 6:24:05 PM UTC-4, Greg Pendlebury=
 wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.=
8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Hi Jeff,<br><br>Thanks =
for your response and apologies for the delay. We moved on to embedding the=
 player to workaround the problem, only without iframes now we can't suppor=
t iOS playback in situ, which the business owners are fairly bummed about. =
But they were more annoyed that we couldn't stop playback when the 'popup' =
closed, so they are ok with what we have now.<br><br>I'm happy to do more d=
iagnostic work to get the iframe working, but I don't know where to start. =
It is 100% reproducible on our dev server, but I can't really reproduce the=
 entire application outside of our closed dev environment, and the portions=
 that seem directly related are not causing crashes in isolation. Is there =
a non-minified version of the code I can run to see what that line is tryin=
g to do when it crashes?<br><br>Ta,<br>Greg<br><br>On Saturday, 23 June 201=
2 02:12:22 UTC+10, Jeffrey Posnick  wrote:<blockquote class=3D"gmail_quote"=
 style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-lef=
t:1ex">Hello Greg,<div><br></div><div>&nbsp;You really shouldn't have to be=
 mucking around in the YT.Player code to debug things. If there's a reprodu=
cible issue, our Players engineering team would be happy to take a look. Si=
nce the code you've provided does appear to work without issue when run in =
a web browser, I'm curious as to how we could go about reproducing the issu=
e that you describe. Is there anything that you could pass along?</div><div=
><br></div><div><div>Cheers,</div><div>-Jeff Posnick, YouTube API Team</div=
><div><a href=3D"http://apiblog.youtube.com" target=3D"_blank">apiblog.yout=
ube.com</a> | Google+: <a href=3D"http://goo.gl/bZflZ" target=3D"_blank">ht=
tp://goo.gl/bZflZ</a></div><div><br></div><br>On Tuesday, June 19, 2012 1:1=
9:05 AM UTC-4, Greg Pendlebury wrote:<blockquote class=3D"gmail_quote" styl=
e=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex=
">Heyo,<br>

<br>

I've run into this issue today, and I can't seem to make any headway.=20
This code: <a href=3D"http://jsfiddle.net/Z7B8U/" target=3D"_blank">http://=
jsfiddle.net/Z7B8U/</a> works fine in isolation, but when=20
used inside our application a crash occurs inside the API.<br>

<br>

Basically, when the user leaves the video playing and hits 'close' in=20
the header it should stop the player before closing the 'window'. Used=20
inside our application however it throws this to the Firefox console:<br>
<div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,18=
7);border-style:solid;border-width:1px;word-wrap:break-word"><code><div><sp=
an style=3D"color:#000">&nbsp;second argument to </span><span style=3D"colo=
r:#606">Function</span><span style=3D"color:#660">.</span><span style=3D"co=
lor:#000">prototype</span><span style=3D"color:#660">.</span><span style=3D=
"color:#000">apply must be an array &nbsp; &nbsp;<br>&nbsp;</span><span sty=
le=3D"color:#660">...</span><span style=3D"color:#000">h</span><span style=
=3D"color:#660">(</span><span style=3D"color:#606">EMBEe</span><span style=
=3D"color:#660">);</span><span style=3D"color:#606">EMBCe</span><span style=
=3D"color:#660">.</span><span style=3D"color:#000">b</span><span style=3D"c=
olor:#660">=3D</span><span style=3D"color:#606">EMBc</span><span style=3D"c=
olor:#660">}};</span><span style=3D"color:#008">va<wbr>r</span><span style=
=3D"color:#000"> EMB$</span><span style=3D"color:#660">,</span><span style=
=3D"color:#606">EMBgc</span><span style=3D"color:#660">=3D</span><span styl=
e=3D"color:#008">new</span><span style=3D"color:#000"> </span><span style=
=3D"color:#606">EMBfc</span><span style=3D"color:#660">,</span><span style=
=3D"color:#606">EMBFe</span><span style=3D"color:#660">=3D</span><span styl=
e=3D"color:#606">EMBd</span><span style=3D"color:#660">;</span><span style=
=3D"color:#008">function</span><span style=3D"color:#000"> </span><span sty=
le=3D"color:#606">EMBGe</span><span style=3D"color:#660">(</span><span styl=
e=3D"color:#000">a</span><span style=3D"color:#660">,</span><span style=3D"=
color:#000">b</span><span style=3D"color:#660">){...</span><span style=3D"c=
olor:#000"><br></span></div></code></div>
<br>

My real problem is that I'm having a hard time following this through the m=
inified code to find out what the API doesn't like.<br>

<br>

Explorations so far start at the site of the crash:<br>

<div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,18=
7);border-style:solid;border-width:1px;word-wrap:break-word"><code><div><sp=
an style=3D"color:#008">function</span><span style=3D"color:#000"> </span><=
span style=3D"color:#606">EMBGe</span><span style=3D"color:#660">(</span><s=
pan style=3D"color:#000">a</span><span style=3D"color:#660">,</span><span s=
tyle=3D"color:#000"> b</span><span style=3D"color:#660">)</span><span style=
=3D"color:#000"> </span><span style=3D"color:#660">{</span><span style=3D"c=
olor:#000"><br>&nbsp; </span><span style=3D"color:#008">var</span><span sty=
le=3D"color:#000"> c </span><span style=3D"color:#660">=3D</span><span styl=
e=3D"color:#000"> EMB$</span><span style=3D"color:#660">;</span><span style=
=3D"color:#000"><br>&nbsp; c</span><span style=3D"color:#660">[</span><span=
 style=3D"color:#000">a</span><span style=3D"color:#660">]</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#660">&amp;&amp;</span><span =
style=3D"color:#000"> </span><span style=3D"color:#660">(</span><span style=
=3D"color:#000">c</span><span style=3D"color:#660">[</span><span style=3D"c=
olor:#000">a</span><span style=3D"color:#660">].</span><span style=3D"color=
:#000">apply</span><span style=3D"color:#660">(</span><span style=3D"color:=
#000">c</span><span style=3D"color:#660">,</span><span style=3D"color:#000"=
>b </span><span style=3D"color:#660">||</span><span style=3D"color:#000"> <=
/span><span style=3D"color:#660">[]),</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#660">(</span><span style=3D"color:#066">0</span><=
span style=3D"color:#000"> </span><span style=3D"color:#660">=3D=3D</span><=
span style=3D"color:#000"> a</span><span style=3D"color:#660">.</span><span=
 style=3D"color:#000">search</span><span style=3D"color:#660">(</span><span=
 style=3D"color:#080">"cue"</span><span style=3D"color:#660">)</span><span =
style=3D"color:#000"> </span><span style=3D"color:#660">||</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#066">0</span><span style=3D"=
color:#000"> </span><span style=3D"color:#660">=3D=3D</span><span style=3D"=
color:#000"> a</span><span style=3D"color:#660">.</span><span style=3D"colo=
r:#000">search</span><span style=3D"color:#660">(</span><span style=3D"colo=
r:#080">"load"</span><span style=3D"color:#660">))</span><span style=3D"col=
or:#000"> </span><span style=3D"color:#660">&amp;&amp;</span><span style=3D=
"color:#000"> </span><span style=3D"color:#606">EMBHe</span><span style=3D"=
color:#660">())</span><span style=3D"color:#000"><br></span><span style=3D"=
color:#660">}</span></div></code></div>
<br>

I think it is:<br>

<div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,18=
7);border-style:solid;border-width:1px;word-wrap:break-word"><code><div><co=
de><span style=3D"color:#000">c</span><span style=3D"color:#660">[</span><s=
pan style=3D"color:#000">a</span><span style=3D"color:#660">].</span><span =
style=3D"color:#000">apply</span><span style=3D"color:#660">(</span><span s=
tyle=3D"color:#000">c</span><span style=3D"color:#660">,</span><span style=
=3D"color:#000">b </span><span style=3D"color:#660">||</span><span style=3D=
"color:#000"> </span><span style=3D"color:#660">[])</span><span style=3D"co=
lor:#660"></span></code><span style=3D"color:#660"></span></div></code></di=
v>
<br>

Causing the problem, and I read that as basically 'b' is not null (or it
 would choose the empty array), but it also isn't an array, so we have a
 crash.<br>

<br>

If some context helps here is the thread of code I've followed up (and arou=
nd) the stack:<br>

<br>
<div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,18=
7);border-style:solid;border-width:1px;word-wrap:break-word"><code><div><sp=
an style=3D"color:#008">function</span><span style=3D"color:#000"> </span><=
span style=3D"color:#606">EMBJe</span><span style=3D"color:#660">()</span><=
span style=3D"color:#000"> </span><span style=3D"color:#660">{</span><span =
style=3D"color:#000"><br>&nbsp; </span><span style=3D"color:#606">EMBFe</sp=
an><span style=3D"color:#000"> </span><span style=3D"color:#660">=3D</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#008">new</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#606">EMBBc</span><spa=
n style=3D"color:#660">;</span><span style=3D"color:#000"><br>&nbsp; </span=
><span style=3D"color:#606">EMBgc</span><span style=3D"color:#660">.</span>=
<span style=3D"color:#000">a </span><span style=3D"color:#660">=3D</span><s=
pan style=3D"color:#000"> </span><span style=3D"color:#606">EMBKe</span><sp=
an style=3D"color:#660">;</span><span style=3D"color:#000"><br>&nbsp; </spa=
n><span style=3D"color:#008">var</span><span style=3D"color:#000"> a </span=
><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><s=
pan style=3D"color:#606">EMBgc</span><span style=3D"color:#660">;</span><sp=
an style=3D"color:#000"><br>&nbsp; a</span><span style=3D"color:#660">.</sp=
an><span style=3D"color:#000">b </span><span style=3D"color:#660">=3D</span=
><span style=3D"color:#000"> </span><span style=3D"color:#606">EMBGe</span>=
<span style=3D"color:#660">;</span><span style=3D"color:#000"> &nbsp;</span=
><span style=3D"color:#660">&lt;=3D=3D=3D=3D=3D</span><span style=3D"color:=
#000"><br>&nbsp; a</span><span style=3D"color:#660">.</span><span style=3D"=
color:#000">d </span><span style=3D"color:#660">=3D</span><span style=3D"co=
lor:#000"> </span><span style=3D"color:#606">EMBd</span><span style=3D"colo=
r:#660">;</span><span style=3D"color:#000"><br>&nbsp; </span><span style=3D=
"color:#660">...</span><span style=3D"color:#000"><br></span><span style=3D=
"color:#660">}</span></div></code></div>
<br>
<div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,18=
7);border-style:solid;border-width:1px;word-wrap:break-word"><code><div><sp=
an style=3D"color:#008">function</span><span style=3D"color:#000"> </span><=
span style=3D"color:#606">EMBGc</span><span style=3D"color:#660">(</span><s=
pan style=3D"color:#000">a</span><span style=3D"color:#660">)</span><span s=
tyle=3D"color:#000"> </span><span style=3D"color:#660">{</span><span style=
=3D"color:#000"> // PARENT<br>&nbsp; </span><span style=3D"color:#008">if</=
span><span style=3D"color:#000"> </span><span style=3D"color:#660">(</span>=
<span style=3D"color:#606">EMBOa</span><span style=3D"color:#000"> </span><=
span style=3D"color:#660">&amp;&amp;</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#606">EMBx</span><span style=3D"color:#660">)</span=
><span style=3D"color:#000"> </span><span style=3D"color:#660">{</span><spa=
n style=3D"color:#000"><br>&nbsp; &nbsp; </span><span style=3D"color:#008">=
var</span><span style=3D"color:#000"> b </span><span style=3D"color:#660">=
=3D</span><span style=3D"color:#000"> a</span><span style=3D"color:#660">.<=
/span><span style=3D"color:#000">ownerDocument</span><span style=3D"color:#=
660">.</span><span style=3D"color:#000">defaultView</span><span style=3D"co=
lor:#660">;</span><span style=3D"color:#000"><br>&nbsp; &nbsp; </span><span=
 style=3D"color:#008">if</span><span style=3D"color:#660">(</span><span sty=
le=3D"color:#000"> b </span><span style=3D"color:#660">!=3D</span><span sty=
le=3D"color:#000"> b</span><span style=3D"color:#660">.</span><span style=
=3D"color:#000">top</span><span style=3D"color:#660">)</span><span style=3D=
"color:#000"> </span><span style=3D"color:#008">return</span><span style=3D=
"color:#000"> </span><span style=3D"color:#606">EMBe</span><span style=3D"c=
olor:#000"><br>&nbsp; </span><span style=3D"color:#660">}</span><span style=
=3D"color:#000"><br>&nbsp; </span><span style=3D"color:#008">return</span><=
span style=3D"color:#000"> </span><span style=3D"color:#660">!!</span><span=
 style=3D"color:#000">a</span><span style=3D"color:#660">.</span><span styl=
e=3D"color:#000">getBoundingClientRect<br></span><span style=3D"color:#660"=
>}</span><span style=3D"color:#000"><br></span></div></code></div>
<br>
<div style=3D"background-color:rgb(250,250,250);border-color:rgb(187,187,18=
7);border-style:solid;border-width:1px;word-wrap:break-word"><code><div><sp=
an style=3D"color:#008">function</span><span style=3D"color:#000"> </span><=
span style=3D"color:#606">EMBKe</span><span style=3D"color:#660">()</span><=
span style=3D"color:#000"> </span><span style=3D"color:#660">{</span><span =
style=3D"color:#000"><br>&nbsp; </span><span style=3D"color:#606">EMBHe</sp=
an><span style=3D"color:#660">();</span><span style=3D"color:#000"><br>&nbs=
p; EMBQ</span><span style=3D"color:#660">({</span><span style=3D"color:#008=
">event</span><span style=3D"color:#660">:</span><span style=3D"color:#080"=
>"onReady"</span><span style=3D"color:#660">})};</span><span style=3D"color=
:#000"><br>&nbsp; </span><span style=3D"color:#606">EMBm</span><span style=
=3D"color:#660">(</span><span style=3D"color:#080">"yt.embed.writeEmbed"</s=
pan><span style=3D"color:#660">,</span><span style=3D"color:#000"> </span><=
span style=3D"color:#008">function</span><span style=3D"color:#660">()</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#660">{</span><sp=
an style=3D"color:#000"><br>&nbsp; &nbsp; </span><span style=3D"color:#008"=
>var</span><span style=3D"color:#000"> a </span><span style=3D"color:#660">=
=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#008">new=
</span><span style=3D"color:#000"> EMBR</span><span style=3D"color:#660">(<=
/span><span style=3D"color:#000">EMBO</span><span style=3D"color:#660">(</s=
pan><span style=3D"color:#080">"PLAYER_CONFIG"</span><span style=3D"color:#=
660">)),</span><span style=3D"color:#000"> b</span><span style=3D"color:#66=
0">;</span><span style=3D"color:#000"><br>&nbsp; &nbsp; b </span><span styl=
e=3D"color:#660">=3D</span><span style=3D"color:#000"> a </span><span style=
=3D"color:#008">instanceof</span><span style=3D"color:#000"> EMBR </span><s=
pan style=3D"color:#660">?</span><span style=3D"color:#000"> a</span><span =
style=3D"color:#660">.</span><span style=3D"color:#000">args </span><span s=
tyle=3D"color:#660">:</span><span style=3D"color:#000"> a</span><span style=
=3D"color:#660">.</span><span style=3D"color:#000">args</span><span style=
=3D"color:#660">;</span><span style=3D"color:#000"><br>&nbsp; &nbsp; </span=
><span style=3D"color:#008">var</span><span style=3D"color:#000"> c</span><=
span style=3D"color:#660">;</span><span style=3D"color:#000"><br>&nbsp; &nb=
sp; c </span><span style=3D"color:#660">=3D</span><span style=3D"color:#000=
"> EMBO</span><span style=3D"color:#660">(</span><span style=3D"color:#080"=
>"CONVERSION_CONFIG_DICT"</span><span style=3D"color:#660">)<wbr>;</span><s=
pan style=3D"color:#000"><br>&nbsp; &nbsp; </span><span style=3D"color:#008=
">if</span><span style=3D"color:#000"> </span><span style=3D"color:#660">(!=
</span><span style=3D"color:#000">c </span><span style=3D"color:#660">||</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#660">!</span><=
span style=3D"color:#000">c</span><span style=3D"color:#660">.</span><span =
style=3D"color:#000">socialEnabled</span><span style=3D"color:#660">)</span=
><span style=3D"color:#000"> c </span><span style=3D"color:#660">=3D</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#606">EMBd</span><s=
pan style=3D"color:#660">;</span><span style=3D"color:#000"><br>&nbsp; &nbs=
p; </span><span style=3D"color:#008">else</span><span style=3D"color:#000">=
 </span><span style=3D"color:#660">{</span><span style=3D"color:#000"><br>&=
nbsp; &nbsp; &nbsp; </span><span style=3D"color:#008">var</span><span style=
=3D"color:#000"> d</span><span style=3D"color:#660">,</span><span style=3D"=
color:#000"> e </span><span style=3D"color:#660">=3D</span><span style=3D"c=
olor:#000"> c</span><span style=3D"color:#660">.</span><span style=3D"color=
:#000">oeid</span><span style=3D"color:#660">,</span><span style=3D"color:#=
000"> f </span><span style=3D"color:#660">=3D</span><span style=3D"color:#0=
00"> window</span><span style=3D"color:#660">.</span><span style=3D"color:#=
000">location</span><span style=3D"color:#660">.</span><span style=3D"color=
:#000">hash</span><span style=3D"color:#660">;</span><span style=3D"color:#=
000"><br>&nbsp; &nbsp; &nbsp; d </span><span style=3D"color:#660">=3D</span=
><span style=3D"color:#000"> EMB8c</span><span style=3D"color:#660">(</span=
><span style=3D"color:#000">f</span><span style=3D"color:#660">);</span><sp=
an style=3D"color:#000"><br>&nbsp; &nbsp; &nbsp; </span><span style=3D"colo=
r:#008">var</span><span style=3D"color:#000"> g </span><span style=3D"color=
:#660">=3D</span><span style=3D"color:#000"> window</span><span style=3D"co=
lor:#660">.</span><span style=3D"color:#000">location</span><span style=3D"=
color:#660">,</span><span style=3D"color:#000"> h</span><span style=3D"colo=
r:#660">,</span><span style=3D"color:#000"> e </span><span style=3D"color:#=
660">=3D</span><span style=3D"color:#000"> </span><span style=3D"color:#660=
">{</span><span style=3D"color:#000">oeid</span><span style=3D"color:#660">=
:</span><span style=3D"color:#000"> e</span><span style=3D"color:#660">},</=
span><span style=3D"color:#000"> i </span><span style=3D"color:#660">=3D</s=
pan><span style=3D"color:#000"> </span><span style=3D"color:#080">""</span>=
<span style=3D"color:#660">;</span><span style=3D"color:#000"><br>&nbsp; &n=
bsp; &nbsp; </span><span style=3D"color:#080">"#"</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#660">=3D=3D</span><span style=3D"colo=
r:#000"> f</span><span style=3D"color:#660">.</span><span style=3D"color:#0=
00">charAt</span><span style=3D"color:#660">(</span><span style=3D"color:#0=
66">0</span><span style=3D"color:#660">)</span><span style=3D"color:#000"> =
</span><span style=3D"color:#660">&amp;&amp;</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#660">(</span><span style=3D"color:#000">i =
</span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </s=
pan><span style=3D"color:#080">"!"</span><span style=3D"color:#000"> </span=
><span style=3D"color:#660">=3D=3D</span><span style=3D"color:#000"> f</spa=
n><span style=3D"color:#660">.</span><span style=3D"color:#000">charAt</spa=
n><span style=3D"color:#660">(</span><span style=3D"color:#066">1</span><sp=
an style=3D"color:#660">)</span><span style=3D"color:#000"> </span><span st=
yle=3D"color:#660">?</span><span style=3D"color:#000"> f</span><span style=
=3D"color:#660">.</span><span style=3D"color:#000">substr</span><span style=
=3D"color:#660">(</span><span style=3D"color:#066">0</span><span style=3D"c=
olor:#660">,</span><span style=3D"color:#066">2</span><span style=3D"color:=
#660">)</span><span style=3D"color:#000"> </span><span style=3D"color:#660"=
>:</span><span style=3D"color:#000"> f</span><span style=3D"color:#660">.</=
span><span style=3D"color:#000">substr</span><span style=3D"color:#660">(</=
span><span style=3D"color:#066">0</span><span style=3D"color:#660">,</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#066">1</span><span=
 style=3D"color:#660">));</span><span style=3D"color:#000"><br>&nbsp; &nbsp=
; &nbsp; f </span><span style=3D"color:#660">=3D</span><span style=3D"color=
:#000"> EMB8c</span><span style=3D"color:#660">(</span><span style=3D"color=
:#000">f</span><span style=3D"color:#660">);</span><span style=3D"color:#00=
0"><br>&nbsp; &nbsp; &nbsp; </span><span style=3D"color:#008">for</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#660">(</span><span st=
yle=3D"color:#000">h </span><span style=3D"color:#008">in</span><span style=
=3D"color:#000"> e</span><span style=3D"color:#660">)</span><span style=3D"=
color:#000"> f</span><span style=3D"color:#660">[</span><span style=3D"colo=
r:#000">h</span><span style=3D"color:#660">]</span><span style=3D"color:#00=
0"> </span><span style=3D"color:#660">=3D</span><span style=3D"color:#000">=
 e</span><span style=3D"color:#660">[</span><span style=3D"color:#000">h</s=
pan><span style=3D"color:#660">];</span><span style=3D"color:#000"><br>&nbs=
p; &nbsp; &nbsp; h </span><span style=3D"color:#660">=3D</span><span style=
=3D"color:#000"> i </span><span style=3D"color:#660">+</span><span style=3D=
"color:#000"> EMB9c</span><span style=3D"color:#660">(</span><span style=3D=
"color:#000">f</span><span style=3D"color:#660">);</span><span style=3D"col=
or:#000"><br>&nbsp; &nbsp; &nbsp; g</span><span style=3D"color:#660">.</spa=
n><span style=3D"color:#000">hash </span><span style=3D"color:#660">=3D</sp=
an><span style=3D"color:#000"> h</span><span style=3D"color:#660">;</span><=
span style=3D"color:#000"><br>&nbsp; &nbsp; &nbsp; d </span><span style=3D"=
color:#660">=3D</span><span style=3D"color:#000"> d</span><span style=3D"co=
lor:#660">.</span><span style=3D"color:#000">oeid</span><span style=3D"colo=
r:#660">;</span><span style=3D"color:#000"><br>&nbsp; &nbsp; &nbsp; c </spa=
n><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> c</span>=
<span style=3D"color:#660">.</span><span style=3D"color:#000">ieid </span><=
span style=3D"color:#660">=3D</span><span style=3D"color:#000"> d<br>&nbsp;=
 &nbsp; </span><span style=3D"color:#660">}</span><span style=3D"color:#000=
"><br>&nbsp; &nbsp; c </span><span style=3D"color:#660">&amp;&amp;</span><s=
pan style=3D"color:#000"> </span><span style=3D"color:#660">(</span><span s=
tyle=3D"color:#000">b</span><span style=3D"color:#660">.</span><span style=
=3D"color:#000">ieid </span><span style=3D"color:#660">=3D</span><span styl=
e=3D"color:#000"> c</span><span style=3D"color:#660">);</span><span style=
=3D"color:#000"><br>&nbsp; &nbsp; c </span><span style=3D"color:#660">=3D</=
span><span style=3D"color:#000"> EMB8c</span><span style=3D"color:#660">(</=
span><span style=3D"color:#000">window</span><span style=3D"color:#660">.</=
span><span style=3D"color:#000">location</span><span style=3D"color:#660">.=
</span><span style=3D"color:#000">hash</span><span style=3D"color:#660">);<=
/span><span style=3D"color:#000"><br>&nbsp; &nbsp; </span><span style=3D"co=
lor:#660">(</span><span style=3D"color:#000">c </span><span style=3D"color:=
#660">=3D</span><span style=3D"color:#000"> c</span><span style=3D"color:#6=
60">.</span><span style=3D"color:#000">t </span><span style=3D"color:#660">=
||</span><span style=3D"color:#000"> c</span><span style=3D"color:#660">.</=
span><span style=3D"color:#000">at</span><span style=3D"color:#660">)</span=
><span style=3D"color:#000"><br>&nbsp; &nbsp; &nbsp; </span><span style=3D"=
color:#660">?</span><span style=3D"color:#000"> </span><span style=3D"color=
:#660">(</span><span style=3D"color:#000"><br>&nbsp; &nbsp; &nbsp; &nbsp; d=
 </span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> wi=
ndow</span><span style=3D"color:#660">.</span><span style=3D"color:#000">lo=
cation</span><span style=3D"color:#660">.</span><span style=3D"color:#000">=
hash</span><span style=3D"color:#660">.</span><span style=3D"color:#000">re=
place</span><span style=3D"color:#660">(</span><span style=3D"color:#080">/=
<wbr>\bat=3D[^&amp;]*&amp;?/</span><span style=3D"color:#660">,</span><span=
 style=3D"color:#000"> </span><span style=3D"color:#080">""</span><span sty=
le=3D"color:#660">),</span><span style=3D"color:#000"><br>&nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; window</span><span style=3D"color:#660">.</span><span sty=
le=3D"color:#000">location</span><span style=3D"color:#660">.</span><span s=
tyle=3D"color:#000">hash </span><span style=3D"color:#660">=3D</span><span =
style=3D"color:#000"> d </span><span style=3D"color:#660">&amp;&amp;</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#080">"#"</span><sp=
an style=3D"color:#000"> </span><span style=3D"color:#660">!=3D</span><span=
 style=3D"color:#000"> d </span><span style=3D"color:#660">?</span><span st=
yle=3D"color:#000"> d </span><span style=3D"color:#660">:</span><span style=
=3D"color:#000"> </span><span style=3D"color:#080">"#!"</span><span style=
=3D"color:#660">,</span><span style=3D"color:#000"><br>&nbsp; &nbsp; &nbsp;=
 &nbsp; d </span><span style=3D"color:#660">=3D</span><span style=3D"color:=
#000"> c</span><span style=3D"color:#660">,</span><span style=3D"color:#000=
"><br>&nbsp; &nbsp; &nbsp; &nbsp; c </span><span style=3D"color:#660">=3D</=
span><span style=3D"color:#000"> </span><span style=3D"color:#066">0</span>=
<span style=3D"color:#660">,</span><span style=3D"color:#000"><br>&nbsp; &n=
bsp; &nbsp; &nbsp; </span><span style=3D"color:#660">-</span><span style=3D=
"color:#066">1</span><span style=3D"color:#000"> </span><span style=3D"colo=
r:#660">!=3D</span><span style=3D"color:#000"> d</span><span style=3D"color=
:#660">.</span><span style=3D"color:#000">indexOf</span><span style=3D"colo=
r:#660">(</span><span style=3D"color:#080">"h"</span><span style=3D"color:#=
660">)</span><span style=3D"color:#000"> </span><span style=3D"color:#660">=
&amp;&amp;</span><span style=3D"color:#000"> </span><span style=3D"color:#6=
60">(</span><span style=3D"color:#000">d </span><span style=3D"color:#660">=
=3D</span><span style=3D"color:#000"> d</span><span style=3D"color:#660">.<=
/span><span style=3D"color:#000">split</span><span style=3D"color:#660">(</=
span><span style=3D"color:#080">"h"</span><span style=3D"color:#660">),</sp=
an><span style=3D"color:#000"> c </span><span style=3D"color:#660">=3D</spa=
n><span style=3D"color:#000"> </span><span style=3D"color:#066">3600</span>=
<span style=3D"color:#000"> </span><span style=3D"color:#660">*</span><span=
 style=3D"color:#000"> d</span><span style=3D"color:#660">[</span><span sty=
le=3D"color:#066">0</span><span style=3D"color:#660">],</span><span style=
=3D"color:#000"> d </span><span style=3D"color:#660">=3D</span><span style=
=3D"color:#000"> d</span><span style=3D"color:#660">[</span><span style=3D"=
color:#066">1</span><span style=3D"color:#660">]),</span><span style=3D"col=
or:#000"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span style=3D"color:#660">=
-</span><span style=3D"color:#066">1</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#660">!=3D</span><span style=3D"color:#000"> d</spa=
n><span style=3D"color:#660">.</span><span style=3D"color:#000">indexOf</sp=
an><span style=3D"color:#660">(</span><span style=3D"color:#080">"m"</span>=
<span style=3D"color:#660">)</span><span style=3D"color:#000"> </span><span=
 style=3D"color:#660">&amp;&amp;</span><span style=3D"color:#000"> </span><=
span style=3D"color:#660">(</span><span style=3D"color:#000">d </span><span=
 style=3D"color:#660">=3D</span><span style=3D"color:#000"> d</span><span s=
tyle=3D"color:#660">.</span><span style=3D"color:#000">split</span><span st=
yle=3D"color:#660">(</span><span style=3D"color:#080">"m"</span><span style=
=3D"color:#660">),</span><span style=3D"color:#000"> c </span><span style=
=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=3D=
"color:#066">60</span><span style=3D"color:#000"> </span><span style=3D"col=
or:#660">*</span><span style=3D"color:#000"> d</span><span style=3D"color:#=
660">[</span><span style=3D"color:#066">0</span><span style=3D"color:#660">=
]</span><span style=3D"color:#000"> </span><span style=3D"color:#660">+</sp=
an><span style=3D"color:#000"> c</span><span style=3D"color:#660">,</span><=
span style=3D"color:#000"> d </span><span style=3D"color:#660">=3D</span><s=
pan style=3D"color:#000"> d</span><span style=3D"color:#660">[</span><span =
style=3D"color:#066">1</span><span style=3D"color:#660">]),</span><span sty=
le=3D"color:#000"><br>&nbsp; &nbsp; &nbsp; &nbsp; </span><span style=3D"col=
or:#660">-</span><span style=3D"color:#066">1</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#660">!=3D</span><span style=3D"color:#000=
"> d</span><span style=3D"color:#660">.</span><span style=3D"color:#000">in=
dexOf</span><span style=3D"color:#660">(</span><span style=3D"color:#080">"=
s"</span><span style=3D"color:#660">)</span><span style=3D"color:#000"><br>=
&nbsp; &nbsp; &nbsp; &nbsp; </span><span style=3D"color:#660">)</span><span=
 style=3D"color:#000"> </span><span style=3D"color:#660">?</span><span styl=
e=3D"color:#000"> </span><span style=3D"color:#660">(</span><span style=3D"=
color:#000"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; d </span><span style=3D"=
color:#660">=3D</span><span style=3D"color:#000"> d</span><span style=3D"co=
lor:#660">.</span><span style=3D"color:#000">split</span><span style=3D"col=
or:#660">(</span><span style=3D"color:#080">"s"</span><span style=3D"color:=
#660">),</span><span style=3D"color:#000"><br>&nbsp; &nbsp; &nbsp; &nbsp; &=
nbsp; c </span><span style=3D"color:#660">=3D</span><span style=3D"color:#0=
00"> </span><span style=3D"color:#066">1</span><span style=3D"color:#000"> =
</span><span style=3D"color:#660">*</span><span style=3D"color:#000"> d</sp=
an><span style=3D"color:#660">[</span><span style=3D"color:#066">0</span><s=
pan style=3D"color:#660">]</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#660">+</span><span style=3D"color:#000"> c<br>&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; </span><span style=3D"color:#660">)</span><span style=
=3D"color:#000"><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style=
=3D"color:#660">:</span><span style=3D"color:#000"> c </span><span style=3D=
"color:#660">=3D</span><span style=3D"color:#000"> </span><span style=3D"co=
lor:#066">1</span><span style=3D"color:#000"> </span><span style=3D"color:#=
660">*</span><span style=3D"color:#000"> d </span><span style=3D"color:#660=
">+</span><span style=3D"color:#000"> c<br>&nbsp; &nbsp; &nbsp; </span><spa=
n style=3D"color:#660">:</span><span style=3D"color:#000"> c </span><span s=
tyle=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span styl=
e=3D"color:#066">0</span><span style=3D"color:#660">;</span><span style=3D"=
color:#000"><br>&nbsp; &nbsp; c </span><span style=3D"color:#660">&amp;&amp=
;</span><span style=3D"color:#000"> </span><span style=3D"color:#660">(</sp=
an><span style=3D"color:#000">b</span><span style=3D"color:#660">.</span><s=
pan style=3D"color:#000">start </span><span style=3D"color:#660">=3D</span>=
<span style=3D"color:#000"> c</span><span style=3D"color:#660">,</span><spa=
n style=3D"color:#000"> b</span><span style=3D"color:#660">.</span><span st=
yle=3D"color:#000">resume </span><span style=3D"color:#660">=3D</span><span=
 style=3D"color:#000"> </span><span style=3D"color:#066">1</span><span styl=
e=3D"color:#660">);</span><span style=3D"color:#000"><br>&nbsp; &nbsp; wind=
ow </span><span style=3D"color:#660">!=3D</span><span style=3D"color:#000">=
 window</span><span style=3D"color:#660">.</span><span style=3D"color:#000"=
>top </span><span style=3D"color:#660">&amp;&amp;</span><span style=3D"colo=
r:#000"> </span><span style=3D"color:#660">(</span><span style=3D"color:#00=
0">a</span><span style=3D"color:#660">.</span><span style=3D"color:#000">ar=
gs</span><span style=3D"color:#660">.</span><span style=3D"color:#000">el <=
/span><span style=3D"color:#660">=3D</span><span style=3D"color:#000"> </sp=
an><span style=3D"color:#080">"embedded"</span><span style=3D"color:#660">)=
;</span><span style=3D"color:#000"><br>&nbsp; &nbsp; EMBO</span><span style=
=3D"color:#660">(</span><span style=3D"color:#080">"CUED_AUTOPLAY"</span><s=
pan style=3D"color:#660">)</span><span style=3D"color:#000"> </span><span s=
tyle=3D"color:#660">&amp;&amp;</span><span style=3D"color:#000"> </span><sp=
an style=3D"color:#660">(</span><span style=3D"color:#000">a</span><span st=
yle=3D"color:#660">.</span><span style=3D"color:#000">args</span><span styl=
e=3D"color:#660">.</span><span style=3D"color:#000">autoplay </span><span s=
tyle=3D"color:#660">=3D</span><span style=3D"color:#000"> </span><span styl=
e=3D"color:#066">1</span><span style=3D"color:#660">);</span><span style=3D=
"color:#000"><br>&nbsp; &nbsp; a</span><span style=3D"color:#660">.</span><=
span style=3D"color:#000">args</span><span style=3D"color:#660">.</span><sp=
an style=3D"color:#000">jsapicallback </span><span style=3D"color:#660">=3D=
</span><span style=3D"color:#000"> </span><span style=3D"color:#606">EMBJe<=
/span><span style=3D"color:#660">;</span><span style=3D"color:#000"> &nbsp;=
 &nbsp; &nbsp; </span><span style=3D"color:#660">&lt;=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</span><span style=3D"color:#0=
00"><br>&nbsp; &nbsp; EMB$ </span><span style=3D"color:#660">=3D</span><spa=
n style=3D"color:#000"> </span><span style=3D"color:#606">EMBre</span><span=
 style=3D"color:#660">(</span><span style=3D"color:#000">a</span><span styl=
e=3D"color:#660">)</span><span style=3D"color:#000"><br>&nbsp; </span><span=
 style=3D"color:#660">});</span><span style=3D"color:#000"><br><br></span><=
/div></code></div>
<br>
And here I'm stumped. It is obviously some sort of init code and I'm guessi=
ng it last line point at just above would make '<code><span style=3D"color:=
#000"></span><span style=3D"color:#606">EMBJe</span><span style=3D"color:#6=
60"></span></code>'
 some sort of wrapper for the 'onYouTubePlayerAPIReady()' callback=20
perhaps? The minified names don't give my limited knowledge enough=20
context diagnose however, so if someone could provide any pointers it=20
would be greatly appreciated.<br>

<br>

Ta,<br>

Greg<br></blockquote></div></blockquote></blockquote></div>
------=_Part_2128_8871177.1342214566343--

------=_Part_2127_22907861.1342214566343--