Come incorporare i video di YouTube con https invece di http nell'URL?

31 gen 2012, 12:48:06
Visualizzazioni: 20.3K
Voti: 8

Gestisco un sito che comunica solo tramite SSL/https, quindi se incorporo un video YouTube usando http ricevo un messaggio di errore che indica che il sito non è completamente sicuro. È possibile modificare qualcosa affinché WordPress accetti https e continui ad incorporare automaticamente i link YouTube aggiunti nell'area dei contenuti? Perché ora, quando provo ad incorporare un link YouTube con https, viene mostrato solo l'URL, non il video.

Aggiornamento

Ho provato ad aggiungere i provider usando questo codice in functions.php ma non funziona:

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);
2
Commenti

Ok, è nel Trac di Wordpress: http://core.trac.wordpress.org/ticket/18719

Richard B Richard B
1 feb 2012 12:01:20

Sembra esserci una soluzione alternativa ma non so esattamente come implementare questa soluzione in WordPress, vorrei un po' di aiuto: http://groups.google.com/group/youtube-api-gdata/browse_thread/thread/4bd15af99c3631af/b5876ac42863cc06?lnk=gst&q=oembed+https#b5876ac42863cc06

Richard B Richard B
1 feb 2012 15:21:02
Tutte le risposte alla domanda 4
2

La soluzione di Otto non funziona in WP 3.6, presumibilmente perché gli oembed sono cambiati nel core e ora corrispondono a https://, quindi i provider aggiunti non vengono mai confrontati. Anche se https:// ora corrisponde nel core, fornisce sempre un embed http:// anche se l'URL originale è https://, quindi abbiamo ancora lo stesso problema qui.

Ho deciso di convertire semplicemente tutti gli oembed relativi al protocollo:

function my_embed_oembed_html( $html ) {
    return preg_replace( '@src="https?:@', 'src="', $html );
}
add_filter( 'embed_oembed_html', 'my_embed_oembed_html' );
9 set 2013 23:08:50
Commenti

Cerco una soluzione temporanea per questo bug fino a quando non verrà risolto nel core, questa era l'unica funzionante. Grazie! Non sono mai riuscito a far funzionare le varianti di wp_oembed_add_provider(), ad esempio.

Markus Amalthea Magnuson Markus Amalthea Magnuson
13 set 2013 21:56:31

È il 2015, questo bug non sembra ancora risolto??

bart bart
21 set 2015 06:16:10
1

http://core.trac.wordpress.org/ticket/18719 ora ha una patch funzionante.

Modifica: Codice del plugin per fare qualcosa di simile fino a quando la patch viene integrata:

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 );
2 feb 2012 20:48:45
Commenti

Sì, ho commentato anche su quel ticket di trac. Grazie!

Richard B Richard B
6 feb 2012 22:07:11
1

Potresti forzare un ritorno HTTPS nel file functions.php per cercare gli iframe che hanno un src che inizia con http e sostituirlo con https. [Ho omesso il 'be' di questi URL poiché alcuni degli URL di condivisione sono youtu.be e youtube.com]

//Correzione Embed Video
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);
23 ott 2013 22:28:27
Commenti

Grazie - potresti anche semplicemente cambiare http:// con solo // per seguire lo schema del sito di hosting. Non sono sicuro del perché WordPress non lo faccia di default (dove l'host supporta entrambi i protocolli)

Adam Adam
15 giu 2014 23:26:42
1

YouTube supporta gli URL HTTPS per i video (basta aggiungere la "s" nell'URL normale). Tuttavia, dichiarano anche che:

In particolare, solo il codice del player YouTube è accessibile via HTTPS al momento. Il flusso video effettivo e alcuni contenuti aggiuntivi caricati dal player YouTube potrebbero ancora essere accessibili tramite connessioni HTTP standard quando si utilizza un URL HTTPS nel codice di incorporamento.

Quindi sembra che per ora non sia possibile ottenere feed video HTTPS. Questo sembra essere confermato dal link Trac che hai pubblicato: (Commento 7 di Otto42) "Finché YouTube non restituirà risultati HTTPS nell'iframe, incorporare un tale link risulterebbe semplicemente in una pagina rotta nella maggior parte dei browser, poiché l'iframe non è SSL."

Riferimento: http://apiblog.youtube.com/2011/02/https-support-for-youtube-embeds.html

Potresti anche dare un'occhiata a questa soluzione: http://www.adammershon.com/display-youtube-videos-on-ssl-page/ (In sostanza, questo metodo "servirebbe" il video come se fosse sulla tua pagina.)

(Non vedo nulla di più recente sull'argomento.)

2 feb 2012 18:50:45
Commenti

Ma ciò non significa che l'iframe non possa essere https, in modo che almeno il codice del player venga caricato in quel modo. La pagina che hai linkato dice che è possibile. Nei miei test, inserire un src https sull'iframe funziona bene su un sito https, mentre un src http non viene visualizzato - ma anche se inserisco un link https, l'[embed] mi restituisce un iframe con http.

Adam Adam
15 giu 2014 23:29:05