Uncaught ReferenceError: ytcfg is not defined (also __ytRIL is not defined)

JavascriptYoutube Iframe-ApiReferenceerror

Javascript Problem Overview


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"

Javascript Solutions


Solution 1 - Javascript

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

Solution 2 - Javascript

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!!.

Solution 3 - Javascript

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.

Solution 4 - Javascript

I had the same issue. Temporary fix was using objects instead of iframes. It worked for me.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionThomas VanierView Question on Stackoverflow
Solution 1 - JavascriptandyisnowskynetView Answer on Stackoverflow
Solution 2 - JavascriptDavid DehghanView Answer on Stackoverflow
Solution 3 - JavascriptHakakouView Answer on Stackoverflow
Solution 4 - JavascriptNejc RodošekView Answer on Stackoverflow