• HOME
  • CODE
  • [簡単実装]PHPでYOUTUBE動画を最新順に並べるまとめ

2020/04/27 9:42

[簡単実装]PHPでYOUTUBE動画を最新順に並べるまとめ

WEBサイト案件でよくあるのが、「YOUTUBE動画を自動で最新○○件取得する」というやつ。

今回はカンタンに実装できる動画取得方法のまとめ記事となります。

 

既に他のサイトで紹介されていたサンプル

 

まず、元々の参考サイトに載ってたのが下記コード↓

 

APIとかは不要なのですが、YOUTUBEチャンネルのURLのIDを入れる箇所があります。

 

※チャンネルのIDとはこういうやつの事↓

<?php

$url = "https://www.youtube.com/feeds/videos.xml?channel_id=【YOUTUBEチャンネルのURLのID】";

$rss = file_get_contents($url);

$rss = preg_replace("/<([^>]+?):(.+?)>/", "<$1_$2>", $rss);

$rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA);

 

foreach($rss->entry as $value): ?>

<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>

<?php endforeach; ?>

 

ただ、上記コードのままでは「15件」が表示されてしまいました。

デフォの表示件数表示数の設定を自由に変えたいという苦肉の策として対応したのがコチラ。

 

カウント追記してループ抜ける

 

「カウント」を追加して、「6件取得したらループを抜ける」という処理を付け加えました。

それが下記のコードとなります。

 

<?php

$url = "https://www.youtube.com/feeds/videos.xml?channel_id=【YOUTUBEチャンネルのURLのID】";

$rss = file_get_contents($url);

$rss = preg_replace("/<([^>]+?):(.+?)>/", "<$1_$2>", $rss);

$rss = simplexml_load_string($rss,'SimpleXMLElement',LIBXML_NOCDATA);

$count = 0;

foreach($rss->entry as $value): ?>

<?php $count++; ?>

<?php if($count == 7): ?>

<?php break; ?>

<?php else: ?>

<div class="">

<iframe width="100%" src="https://www.youtube.com/embed/<?php echo htmlspecialchars($value->yt_videoId, ENT_QUOTES, 'UTF-8') ?>" frameborder="0" allowfullscreen></iframe>

</div>

<?php endif; ?>

<?php endforeach; ?>

 

※スタイルは適宜追加で

 

カウント設定して、プラスしていって、6を超えて7になった時にブレイクでループを中断させる。

そんな感じの事を付け加えてます。これで6件が表示される設定となります。

 

APIも使わずに簡単に動画を引っ張って来れるので、このYOUTUBEチャンネルの埋め込み方法オススメです。

 

現場から以上です!

 

参考サイト : https://www.webopixel.net/javascript/1041.html

1836