YouTubeのIFrameプレーヤーAPIを何ヶ月も問題なく使用しており、プレーヤーの読み込み時に最近この例外が表示されるようになりました:Uncaught ReferenceError: ytcfg is not defined
iframeを調べると、yt.setConfig
への呼び出しが成功しますが、ytcfg.set
は後で失敗します。 APIは最近変更されましたか?プレーヤーパラメータがこの問題を引き起こす可能性がありますか?
<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>
この問題にはいくつかのバリエーションがあります:
https://issuetracker.google.com/issues/35178202 "ytcfgが定義されていません" https://issuetracker.google.com/issues/351779 "__ytRILは定義されていません定義済み」
これはGoogleのバグです。 Youtubeの開発者ページでも起こります。 https://developers.google.com/youtube/youtube_subscribe_button
以下のバグがこの問題を追跡しています。
https://code.google.com/p/gdata-issues/issues/detail?id=8569 (2017年1月5日現在もアクティブ)
以下のリンクを使ってこのバグに投票してください。2016年9月9日から彼らはそれに座っています!!.
バグはYouTube側にあるようです。あなたはここで同じJSエラーを見ることができます: https://www.youtube.com/embed/U-xetxYwyak
Youtube.comでも、動画の下にある[共有]ボタンをクリックしてから[埋め込み]タブをクリックして、埋め込みHTMLコードをコピーして貼り付けたときに発生しました。間違いなく彼らのせいです。
私は同じ問題を抱えていました。一時的な修正は、iframeの代わりにオブジェクトを使用していました。それは私のために働きました。