web-dev-qa-db-ja.com

YouTubeのエンブレッドとプライバシー強化モード

YouTubeの動画をiframeに埋め込むと、プライバシー強化モードを有効にできるため、YouTubeは、動画を再生するまでWebページの訪問者に関する情報を保存しません。

OEmbedとURLでビデオを埋め込もうとしました

http://www.youtube-nocookie.com/embed/xA3tfBTvH0c

しかしうまくいきませんでした。 oEmbedでプライバシーに優しいソリューションを実装する機会はありますか?


EDIT私は見つけました この提案 そしてそれをカスタマイズしようとしましたが、うまくいくようですが、最適ではないことが一つあります。このソリューションでは高さの宣言も必要なので、定義済みの$ content_widthを使用することはできません。このアプローチに対するアイデアはありますか、それとも他にありますか?

 wp_embed_register_handler( 'ytnocookie', '#https?://www\.youtube\-nocookie\.com/embed/([a-z0-9\-_]+)#i', 'wp_embed_handler_ytnocookie' );
 wp_embed_register_handler( 'ytnormal', '#https?://www\.youtube\.com/watch\?v=([a-z0-9\-_]+)#i', 'wp_embed_handler_ytnocookie' );
 wp_embed_register_handler( 'ytnormal2', '#https?://www\.youtube\.com/watch\?feature=player_embedded&v=([a-z0-9\-_]+)#i', 'wp_embed_handler_ytnocookie' );

 function wp_embed_handler_ytnocookie( $matches, $attr, $url, $rawattr ) {
   global $defaultoptions;
   $defaultoptions['yt-content-width'] = '680';
   $defaultoptions['yt-content-height'] = '510';
   $defaultoptions['yt-norel'] = 1;
   $relvideo = '';
   if ($defaultoptions['yt-norel']==1) {
       $relvideo = '?rel=0';
   }
   $embed = sprintf(
     '<iframe src="https://www.youtube-nocookie.com/embed/%2$s%5$s" width="%3$spx" height="%4$spx" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe><p><a href="https://www.youtube.com/watch?v=%2$s" title="View video on YouTube">View video on YouTube</a></p>',
      get_template_directory_uri(),
      esc_attr($matches[1]),
      $defaultoptions['yt-content-width'],
      $defaultoptions['yt-content-height'],
      $relvideo
   );
   return apply_filters( 'embed_ytnocookie', $embed, $matches, $attr, $url, $rawattr );
 }
4
John

現時点ではWordPressはyoutube.com/watchyoutube.com/playlistおよびyoutu.beのみを認識します。しかし wp_oembed_add_provider があります。何かを試してみてください

wp_oembed_add_provider(
    '#http://(www\.)?youtube-nocookie\.com/embed.*#i',
    'http://www.youtube-nocookie.com/oembed', true );

(未テストの申し訳ありません)。既存のプロバイダを上書きして-nocookieにリダイレクトしてから、通常どおりビデオショートコードを使用することもできます。お望みなら、add_filter('oembed_providers', ... );でもこれを行うことができます。

1
Rup