Pergunta

Temos vídeos do YouTube em um site e queremos detectar se é provável que eles não possam visualizá -los devido à política da empresa (principalmente provável) ou não.

Temos dois sites:

1) flex / flash 2) html

Eu acho que com flex, posso tentar baixar http://youtube.com/crossDomain.xml e se for válido XML assume que o site está disponível

Mas com o HTML, não sei como fazer isso. Não consigo nem pensar em um 'belo hack'.

Foi útil?

Solução

Eu gosto da solução de Lacker, mas sim, cria um condição de corrida. Isso funcionará e não criará uma contenção de raça:

var image = new Image();
image.onload = function(){
// The user can access youtube
};
image.onerror = function(){
// The user can't access youtube
};
image.src = "http://youtube.com/favicon.ico";

Outras dicas

Você pode carregar uma imagem do YouTube usando o JavaScript e verificar suas propriedades. O favicon é pequeno e tem um URL consistente -

var image = new Image();
image.src = "http://youtube.com/favicon.ico";
if (image.height > 0) {
    // The user can access youtube
} else {
    // The user can't access youtube
}

Eu acho que isso é um pouco melhor do que carregar o JavaScript, porque isso não tentará executar nenhum código e, embora o YouTube possa renomear seus arquivos JavaScript ou funções desses arquivos, é improvável que eles renomeem seu favicon.

Isso deve funcionar. Basicamente, ele carrega um arquivo javascript do youtube.com e verifica se existe uma função nesse arquivo.

<html>

<head>
    <script src="http://www.youtube.com/js/account.js"></script>
    <script>
        function has_you_tube()
        {
            if(typeof addVideosToQuicklist == 'function')
            {
                return true;
            }
            else
            {
                return false;
            }

        }
    </script>

</head>
<body>
    <script>alert( "has_youtube: " + has_you_tube() ); </script>
</body>


</html>

Fiquei preso a isso hoje e tentei o teste Favicon, mas não estava funcionando no IE. Eu estava usando o Referência da API do Player do YouTube para incorporações IFRAME Para incorporar vídeos do YouTube no meu site, então o que fiz é realizar uma verificação no varador varejo definido pouco antes do Onyoutubeiframeady com um atraso na chamada JavaScript.

<script> function YouTubeTester() {            
            if (player == undefined) {
                alert("youtube blocked");
            }
        }
</script>
<script>window.setTimeout("YouTubeTester()", 500);</script>

Parece funcionar para mim. Eu precisava do atraso para fazê -lo funcionar no IE.

Isso funcionou para mim ... também é meu primeiro post, espero que ajude alguém também.

<?php

$v = file_get_contents("https://www.youtube.com/iframe_api");

//Tie counts to a variable
$test = substr_count($v, 'loading');

if ($test > 0)

{ ?>
    <iframe>YOUTUBE VIDEO GOES HERE</iframe>

    <?php
}

else

{

echo "<br/> no connection";

}

?>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top