2010-03-05 18 views
9

EDIT 22 marzo 2011: Questa domanda non è più così rilevante dal momento che YouTube offre ora accesso HTTPS: http://apiblog.youtube.com/2011/02/https-support-for-youtube-embeds.htmlInternet Explorer Avviso quando si incorpora Youtube sul sito HTTPS?


La nostra applicazione viene eseguita tramite HTTPS che presenta raramente tutti i problemi per noi. Tuttavia, quando si tratta di YouTube, il fatto che non presentino alcun contenuto su connessioni SSL ci sta dando qualche mal di testa quando proviamo a incorporare le clip. Per lo più a causa di Internet Explorers famoso messaggio piccolo avvertimento:?

"Vuoi visualizzare solo il contenuto della pagina Web che è stato consegnato in modo sicuro Questa pagina contiene contenuti che saranno non essere consegnata usando una sicura HTTPS .. .ecc "

Ho provato a risolvere questo in diversi modi. Il più promettente è stato utilizzare la funzionalità ProxyPass in Apache per mappare su YouTube.

Ti piace questa:

ProxyPass: /youtube/ http://www.youtube.com 
ProxyPassReverse: /youtube/ http://www.youtube.com 

Questo elimina l'avvertimento fastidioso. Tuttavia, il file SWF di YouTube non riesce a avviare lo streaming Il file SWF che riesco a caricare nel browser indica semplicemente: "Si è verificato un errore, riprova più tardi".

potenziali soluzioni sono forse:

  • Scarica YouTube FLV: s e servirli fuori proprio dominio (gah)
  • Usa personalizzato FLV-giocatore e lo streaming solo FLV: s da youtube su un proxy HTTPS ?

Aggiornamento 10 marzo: ho cercato di utilizzare Googles Youtube API for ActionScript per caricare un giocatore. All'inizio sembrava promettente e sono riuscito a caricare un player tramite il mio https: // proxy. Tuttavia, il file SWF che viene caricato contiene un sacco di chiamate esplicite a diversi URL non-ssl per creare collegamenti di autenticazione per il flusso FLV e per caricare diverse politiche di crossdominio.

Sembra davvero che non dovremmo accedere direttamente ai flussi FLV. Ciò rende molto difficile ignorare l'avviso di Internet Explorer, a corto di strappare il FLV: s da YouTube e servirli fuori dal proprio dominio.

Ci sono soluzioni disponibili per il download di youtubes FLV: s. Ma questo non è conforme ai termini d'uso di YouTube e non è davvero un'opzione per noi.

+0

sono diventato un po 'di speranza quando un collega mi punta che stava guardando una clip di YouTube in Google Wave su Internet Explorer tramite HTTPS! Ma poi ho capito che dal momento che è necessario installare il Chrome Frame Plugin in IE per eseguire Wave a tutti. Quindi è in esecuzione Chrome e non Internet Explorer. –

+0

Hai considerato la possibilità di navigare su una pagina HTTP per caricare il file SWF incorporato? –

+0

Per aprire una nuova pagina non è davvero un'opzione - il contesto utente saggio e l'attenzione dell'utente andranno persi. Se solo fossi interessato a non avere l'avviso IE faremmo qualcosa di semplice come questo, e forse forse saremo costretti a farlo. Questa domanda è tutta una questione di cercare di evitare l'avviso senza compromettere l'esperienza dell'utente. –

risposta

5

È possibile utilizzare SWFObject, che è davvero tutto youtubin sta facendo.

http://code.google.com/p/swfobject/

+0

Infatti. Questa è in realtà una risposta migliore della mia. Grazie per il chiarimento. –

7

Ok, quindi finalmente mi sono imbattuto in una soluzione. E in realtà è semplice e delizioso.

Utilizzo di una combinazione del meraviglioso jQuery plugin YouTubin che ha la possibilità di includere video di YouTube tramite swfobject. Alcune magie in swfobject.js risolvono semplicemente questo per noi.

Quindi, fintanto che si include jquery, swfobject e jquery.youtubin si sarà in grado di fare questo:

$.youtubin(); 

e tutti i collegamenti di ancoraggio che contengono link a youtube-clip sarà sostituito con giocatori di YouTube incorporati.

Alla fine la soluzione deriva dal meraviglioso progetto swfobject. In qualche modo, hanno solo aggiustato questo.

ecco la prova :): http://screencast.com/t/YzVlZjkx

+0

Questo non ha funzionato per me. IE 8 ha appena mostrato un link testuale in cui il video avrebbe dovuto essere incorporato. Ho anche ricevuto un avviso di sicurezza in Chrome. – Adam

+0

Che IE8 mostri solo un link di testo sembra che tu abbia implementato erroneamente $ youtubin o un bug in esso. La risposta si trova ancora in swfobject e l'orribile popup di avviso IE8 non verrà visualizzato. Altri avvertimenti meno ovvi sono ok, penso, stiamo infatti recuperando dati non sicuri, quindi l'utente dovrebbe avere un modo per saperlo. Volevo sbarazzarmi del popup IE8, tutto qui. –

3

Basta usare SWFObject ... che ha risolto il mio problema

<script type="text/javascript" src="js/swfobject.js"></script> 

<div id="quibskiplayer"></div> 

<script type="text/javascript"> 
// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/) 

var videoID = ""; // REPLACE VIDEO IT HERE 
var divID = "quibskiplayer"; //PLACE ID OF DIV TO BE REPLACED HERE 
var params = { allowScriptAccess: "always" }; 
var atts = { id: "myytplayer" }; 

swfobject.embedSWF("http://www.youtube.com/v/" + videoID + "&enablejsapi=1&playerapiid=player1", divID, "325", "225", "8", null, null, params, atts); 

</script> 

E in ogni caso non volete il vostro utente di trovare l'ID video, si può solo fare qualcosa di simile in PHP:

$src = $row['youtube_embedd']; // $src is the entire Embedd code 
$regex_pattern = '/youtube\.com\/(v\/|watch\?v=)([\w\-]+)/'; 
preg_match($regex_pattern,$src,$output); 
$videoID = $output[2]; 

TECHFORGE ONLINE

5

Buone notizie: l'URL di incorporamento standard di Youtube può essere fornito con prefisso https anziché prefisso http. In combinazione con lo swfobject, questo funziona bene.

swfobject.embedSWF ("https://www.youtube.com/v/Zm80UedfaxA & enablejsapi = 1 & playerapiid = hpatientplayer", "patientplayer", "586", "351", "9.0.0", "custom/expressInstall.swf", null, params, atts);

+0

Sì. Questo e spettacolare. Non c'è bisogno di swfobject, giusto? –

2

So che questo è vecchio ma ho lavorato attraverso il BS che è Google cattiva YouTube Cert e problemi di riproduzione IE7.

Devi incorporare il lettore AS3. L'ho fatto con SWFObject come ho neede per controllare i filmati et al ..

enter code here 
var params = {allowScriptAccess:"always",wmode:"transparent"}; 
var atts1 = {id:"myytplayer1"}; 
var atts2 = {id:"myytplayer2"}; 
var atts3 = {id:"myytplayer3"};   
swfobject.embedSWF("https://www.youtube.com/v/xxxxx?version=3&autohide=1&controls=0&enablejsapi=1&fs=1&rel=0&iv_load_policy=3&feature=player_embeded&playerapiid=ytplayer1","video1R", "260", "150", "8", null, null, params, atts1); 
swfobject.embedSWF("https://www.youtube.com/v/xxxxx?version=3&autohide=1&controls=0&enablejsapi=1&fs=1&rel=0&iv_load_policy=3&feature=player_embeded&playerapiid=ytplayer2","video2R", "260", "150", "8", null, null, params, atts2); 
swfobject.embedSWF("https://www.youtube.com/v/xxxxx?version=3&autohide=1&controls=0&enablejsapi=1&fs=1&rel=0&iv_load_policy=3&feature=player_embeded&playerapiid=ytplayer3","video3R", "260", "150", "8", null, null, params, atts3);  

function onYouTubePlayerReady(playerId) { 
ytplayer1 = document.getElementById("myytplayer1"); 
ytplayer2 = document.getElementById("myytplayer2"); 
ytplayer3 = document.getElementById("myytplayer3"); 
} 

function pauseYTVideo(divId){ 
    if (divId.substr(5,1) == 1) ytplayer1.pauseVideo(); 
    if (divId.substr(5,1) == 2) ytplayer2.pauseVideo(); 
    if (divId.substr(5,1) == 3) ytplayer3.pauseVideo(); 
} 
1

siamo appena imbattuti in un problema di questa natura con IE7 gettando un errore di tecnica mista con Video YT incorporati su SSL. La verità è che il loro player nativo su https non è affatto SSL. Se si guardano le risorse utilizzate dalla pagina quando l'unità viene chiamata, ha chiamato i file da un server statico tramite HTTP. Anche i loro script di rilevamento per le versioni Flash e le versioni JavaScript chiamano da un indirizzo HTTP.

IE genera un errore in base a queste informazioni.

Ma c'è una soluzione molto semplice! Utilizza l'API di YouTube Chromeless. Quel giocatore non chiama nessun file aggiuntivo per funzionare, è una pura soluzione pronta per l'uso per la questione. Questo è un giocatore molto più affidabile e ti dà un maggiore controllo del giocatore da elementi esterni.

http://code.google.com/apis/youtube/youtube_player_demo.html

+0

Grazie! Ottimo con alcune informazioni aggiornate su questo. –

Problemi correlati