Uso a API do IFrame Player do YouTube sem problemas há meses e comecei a ver essa exceção recentemente quando o player carrega:
Uncaught ReferenceError: ytcfg is not defined
Inspecionando o iframe, vejo uma chamada bem-sucedida yt.setConfig
, mas ytcfg.set
falha mais tarde. A API foi alterada recentemente? Algum parâmetro do player pode causar esse problema?
<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>
Existem várias variações desse problema:
https://issuetracker.google.com/issues/35178202 "ytcfg não está definido" https://issuetracker.google.com/issues/35177930 "__ytRIL não está definido"
javascript
youtube-iframe-api
referenceerror
Thomas Vanier
fonte
fonte
Respostas:
Este é um bug do Google. Isso também acontece na página do desenvolvedor do YouTube. https://developers.google.com/youtube/youtube_subscribe_button
Os seguintes erros controlam esse problema.
https://code.google.com/p/gdata-issues/issues/detail?id=8569 (Ainda ativo - até 5 de janeiro de 2017)
Por favor vote neste bug usando os links abaixo, para que ele chame a atenção deles. Eles estão presentes desde 9 de setembro de 2016 !!.
fonte
Parece que o bug está do lado do youtube. Você pode ver o mesmo erro de JS aqui: https://www.youtube.com/embed/U-xetxYwyak
fonte
__ytRIL is not defined
erro ainda não foi corrigidoIsso começou a acontecer mesmo no youtube.com quando você clica no botão "Compartilhar" em qualquer vídeo e depois na guia "Incorporar" para copiar e colar o código html de incorporação. Definitivamente culpa deles.
fonte
Eu tive o mesmo problema. A correção temporária estava usando objetos em vez de iframes. Funcionou para mim.
fonte