I have been using the YouTube IFrame Player API without problem for months and started to see this exception recently when the player loads:
Uncaught ReferenceError: ytcfg is not defined
Inspecting the iframe, I see a successful call to yt.setConfig
, but ytcfg.set
fails later. Was the API changed recently? Any player parameter could cause this problem?
<script src="//s.ytimg.com/yts/jsbin/www-embed-player-vflnzmqns/www-embed-player.js" type="text/javascript" name="www-embed-player/www-embed-player"></script>
<script src="//s.ytimg.com/yts/jsbin/player-en_US-vflr--npw/base.js" name="player/base"></script>
<script>
yt.setConfig({
...
});
writeEmbed();
</script>
<script>
ytcsi.info('st', 35);
ytcfg.set({
"TIMING_ACTION": "",
"CSI_VIEWPORT": true,
"TIMING_INFO": {
"c": "WEB",
"yt_li": 1,
"cver": "1.20161112",
"yt_lt": "cold"
},
"CSI_SERVICE_NAME": "youtube"
});
;</script>
There several variations of this issue:
https://issuetracker.google.com/issues/35178202 "ytcfg is not defined" https://issuetracker.google.com/issues/35177930 "__ytRIL is not defined"
This is a Google bug. It also happens on Youtube's developer page. https://developers.google.com/youtube/youtube_subscribe_button
The following bugs tracks this issue.
https://code.google.com/p/gdata-issues/issues/detail?id=8569 (Still active -as of Jan 5h 2017)
Please up vote on this bug using the links below so that it gets their attention. They have been sitting on it since Sep 9, 2016!!.
It looks like the bug is on youtube's side. You can see the same JS error here: https://www.youtube.com/embed/U-xetxYwyak
This started happening even on youtube.com when you click the "Share" button under any video and then the "Embed" tab to copy paste the embedding html code. Definitely their fault.
I had the same issue. Temporary fix was using objects instead of iframes. It worked for me.