Como incorporo vídeos do youtube com https em vez de http no URL?

8

Estou executando um site que se comunica apenas por SSL / https, então, se eu incorporar um vídeo do youtube usando http, receberei uma mensagem de erro informando que o site não está totalmente seguro. É possível reescrever algo para que o WordPress aceita https e ainda auto incorpora links do youtube adicionados à área de conteúdo? Porque agora, quando tento incorporar um link https no youtube, tudo o que é mostrado é o URL, sem filme.

Atualizar

Eu tentei adicionar provedores usando este código em functions.php mas ele não faz nada:

wp_oembed_add_provider('https://youtu.be/*', 'https://youtube.com/oembed' );
wp_oembed_add_provider('#https://(www\.)?youtube.com/watch.*#i', 'https://youtube.com/oembed', true);
wp_oembed_add_provider('http://youtu.be/*', 'https://youtube.com/oembed' );
wp_oembed_add_provider('#http://(www\.)?youtube.com/watch.*#i', 'https://youtube.com/oembed', true);
    
por Richard B 31.01.2012 / 11:48

4 respostas

5

enlace tem um patch de trabalho agora.

Editar: código de plug-in para fazer o mesmo até o patch chegar:

wp_oembed_add_provider('#https://(www\.)?youtube.com/watch.*#i', 'http://youtube.com/oembed?scheme=https', true);
wp_oembed_add_provider('https://youtu.be/*', 'http://youtube.com/oembed?scheme=https', false );
    
por Otto 02.02.2012 / 19:48
6

A solução da Otto não funciona no WP 3.6, presumivelmente porque os membros mudaram no núcleo e agora combinam com o https: //, então os provedores adicionados nunca são correspondidos. Embora https: // corresponda no núcleo agora, ele sempre fornece um http: // embed mesmo se o URL original for https: //, portanto ainda temos o mesmo problema aqui.

Eu decidi apenas converter todos os relativos do protocolo oembeds:

function my_embed_oembed_html( $html ) {
    return preg_replace( '@src="https?:@','src="', $html );
}
add_filter( 'embed_oembed_html', 'my_embed_oembed_html' );
    
por bradt 09.09.2013 / 22:08
2

você pode hackar um retorno https forçado no arquivo functions.php para procurar iframes que tenham um src começando com http e substituindo https. [Eu deixei de fora o 'be' desses URLs, pois alguns dos URLs de compartilhamento são youtu.be e youtube.com]

//Embed Video Fix
function add_secure_video_options($html) {
   if (strpos($html, "<iframe" ) !== false) {
        $search = array('src="http://www.youtu','src="http://youtu');$replace=array('src="https://www.youtu','src="https://youtu');
        $html = str_replace($search, $replace, $html);

        return $html;
   } else {
        return $html;
   }
}
add_filter('the_content', 'add_secure_video_options', 10);
    
por troutacular 23.10.2013 / 21:28
1

O Youtube suporta URLs https para vídeos (basta adicionar o "s" ao URL normal). No entanto, eles também afirmam que:

  

Em particular, apenas o código do player do YouTube está acessível via HTTPS no momento. O bitstream de vídeo real e alguns conteúdos adicionais carregados pelo player do YouTube ainda podem ser acessados por meio de conexões HTTP padrão quando você usa um URL HTTPS em seu código de incorporação.

Parece que você não conseguirá receber feeds de vídeo https ainda. Isso parece ser confirmado pelo link trac que você postou: (Comentário 7 por Otto42) "Até o YouTube retornar os resultados https no iframe, incorporar esse link resultaria em uma página quebrada na maioria dos navegadores, já que o iframe não é SSL "

Referência: enlace

Você também pode verificar essa solução: enlace (essencialmente " servir "o vídeo como se estivesse em sua página.)

(não vejo nada de novo sobre o assunto.)

    
por jfacemyer 02.02.2012 / 17:50

Tags