YouTubeは『マイ動画』や『お気に入り』をRSSで配信しています。
それを、1つ前の記事で書いた方法で表示させる方法です。
以前のコードのままでは表示されず、PHPのコードを使う必要があります。
以下の例は、以前私がアップした『かめー』を参考にして書いています。
まずはYouTubeのアカウントを持っていない事には始まらないので、作成しましょう。(無料です)
ログインしたら、動画をお気に入りに追加して『お気に入り』を開きます。
この『お気に入り』のRSSのアドレスを取得します。
1番手っ取り早いのは、ソースを開いて『rss』で検索すれば以下のコードが摘出されます。
<link rel="alternate" type="application/rss+xml" href="http://gdata.youtube.com/feeds/base/users/***/favorites?client=ytapi-youtube-user&v=2" title="Youtube - *** さんのお気に入り">
上記の『href』をコピーして、以前のコードに追加します。
sidebar.phpなど
<?php
$rss = fetch_rss('http://gdata.youtube.com/feeds/base/users/***/favorites?client=ytapi-youtube-user&v=2');
$maxitems = 1;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ( $items as $item ) :
?>
(表示させる箇所)
<?php endforeach; ?>
次からが問題で、RSSで取得した動画のアドレスを記述しても表示されません。
『URL』と『埋込み』のアドレスが違う為です。
『$item['link']』ではURLが取得されます。
『かめー』のURL。
http://www.youtube.com/watch?v=HKR8J4uXcTA
『かめー』の埋込みタグ。
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/HKR8J4uXcTA&hl=ja&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/HKR8J4uXcTA&hl=ja&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
『HKR8J4uXcTA』だけは共通なので、PHPの『substr』関数を利用します。
『substr』は指定した位置からの文字を取得できる関数です。
元のコードに『<object> ~~~ </object>』を追加し、『substr』関数を追加します。
<?php
$rss = fetch_rss('http://gdata.youtube.com/feeds/base/users/***/favorites?client=ytapi-youtube-user&v=2');
$maxitems = 1;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ( $items as $item ) :
?>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/<?php echo substr($item['link'], 31); ?>&hl=ja&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/<?php echo substr($item['link'], 31); ?>&hl=ja&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
<?php endforeach; ?>
URLの31文字目からが『HKR8J4uXcTA』なので、その部分を上手く当てはめます。
後は動画の表示する大きさを指定します。
元サイズは『425×344』です。
これを以下の式で計算します。
私は横幅300pxにしたので、高さは以下の式になります。
最終的なコードは以下のようになります。
効果あるか分かりませんが、気分的な問題で『hd=1』も入れてみました。w
<?php
$rss = fetch_rss('http://gdata.youtube.com/feeds/base/users/sutetema/favorites?client=ytapi-youtube-user&v=2');
$maxitems = 1;
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) echo 'No items';
else
foreach ( $items as $item ) :
?>
<object width="300" height="243"><param name="movie" value="http://www.youtube.com/v/<?php echo substr($item['link'], 31); ?>&hd=1&hl=ja&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/<?php echo substr($item['link'], 31); ?>&hd=1&hl=ja&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="300" height="243"></embed></object>
<?php endforeach; ?>

