YouTubeチャンネルの最新動画を1件だけ表示させる

YouTubeチャンネルの最新動画を1件だけ表示させる

PHPで最新動画を取得する

表示はiframeです。

「xxx..」の部分を取得したいチャンネルIDに書き換えて下さい。

<?php
  $user = "xxxxxxxxxxxxxxxxxxxxxxxx";
  $url = "https://www.youtube.com/feeds/videos.xml?channel_id=" .$user;
  $rss = file_get_contents($url);
  $rss = preg_replace("/<([^>]+?):(.+?)>/", "<$1_$2>", $rss);
  $rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA);
  foreach($rss->entry as $value){
    if ($value === 0) {
    } else {
      break;
    }
  }
?>
<iframe width="480" height="360" src="https://www.youtube.com/embed/<?php echo htmlspecialchars($value->yt_videoId, ENT_QUOTES, 'UTF-8') ?>" frameborder="0" allowfullscreen></iframe>

もしSSLのエラーが出たら

Warning: file_get_contents(): SSL operation failed with code 1.

PHPのバージョンによって、上記のような文言でSSLエラーが出ることがあります。
その場合は下記を記述すればうまくいきました。

<?php
  $arrContextOptions=array(
    "ssl"=>array(
    "verify_peer"=>false,
    "verify_peer_name"=>false,
  ),);
  $user = "xxxxxxxxxxxxxxxxxxxxxxxx";
  $url = "https://www.youtube.com/feeds/videos.xml?channel_id=" .$user;
  $rss = file_get_contents($url, false, stream_context_create($arrContextOptions));
  $rss = preg_replace("/<([^>]+?):(.+?)>/", "<$1_$2>", $rss);
  $rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA);
  foreach($rss->entry as $value){
    if ($value === 0) {
    } else {
      break;
    }
  }
?>
<iframe width="480" height="360" src="https://www.youtube.com/embed/<?php echo htmlspecialchars($value->yt_videoId, ENT_QUOTES, 'UTF-8') ?>" frameborder="0" allowfullscreen></iframe>

YouTubeのiframeをレスポンシブにしたかったら

<div class="youtube">
  <iframe width="560" height="315" src="URL" frameborder="0" allowfullscreen></iframe>
</div>
.youtube{
  width: 100%;
  position: relative;
  padding-top: 56.25%;
}
.youtube iframe{
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
}

デモ

作業中によく聞くBOILER ROOMのYouTubeのチャンネルから最新1件をレスポンシブで出してみました。
ちなみに作業中はビート早い方が絶対早く進みますよ!(主観)

DEMO

参考記事

下記の記事を参考にさせて頂きました。

jQueryでYoutubeの指定したチャンネルの最新動画を表示する方法(お手軽版)
http://www.webopixel.net/javascript/1041.html

さいごに

結構使えるところはありそうです。
ぜひ参考にして下さい。