YouTubeビデオを検索できる検索機能を備えたWebページを構築しています。検索をクリックすると、それらのビデオが同じページに表示されます。今、私はそれらも再生可能にしたいので、ユーザーが曲を検索すると、ユーザーは YouTube にリダイレクトされますが、同じページでビデオが再生されます。
YouTubeビデオを検索するための私のコードは次のとおりです。
?php
// if form submitted
} else {
// check for search keywords
// trim whitespace
// separate multiple keywords with /
if (!isset($_POST['q']) || empty($_POST['q'])) {
die ('ERROR: Please enter one or more search keywords');
}
else {
$q = $_POST['q'];
//$q = preg_replace('[[:space:]]', '/', trim($q));
}
// set max results
if (!isset($_POST['i']) || empty($_POST['i'])) {
$i = 25;
} else {
$i = $_POST['i'];
}
// generate feed URL
$feedURL = "http://gdata.youtube.com/feeds/api/videos/-/{$q}?orderby=viewCount&max-results={$i}";
//$feedURL = "http://gdata.youtube.com/feeds/api/videos/-/eminem?orderby=viewCount&max-results=10";
// read feed into SimpleXML object
$sxml = simplexml_load_file($feedURL);
//var_dump($sxml);
// get summary counts from opensearch: namespace
$counts = $sxml-> children('http://a9.com/-/spec/opensearchrss/1.0/');
//$counts = $sxml-> children('http://www.opensearch.org/Specifications/OpenSearch/1.1');
$total = $counts->totalResults;
$startOffset = $counts->startIndex;
$endOffset = ($startOffset-1) + $counts->itemsPerPage;
?>
<h1>Search results</h1>
<?php echo $total; ?> items found. Showing items
<?php echo $startOffset; ?> to <?php echo $endOffset; ?>:
<p/>
<table>
<?php
// iterate over entries in resultset
// print each entry's details
foreach ($sxml->entry as $entry) {
// get nodes in media: namespace for media information
$media = $entry->children('http://search.yahoo.com/mrss/');
// get video player URL
$attrs = $media->group->player->attributes();
$watch = $attrs['url'];
// get video thumbnail
$attrs = $media->group->thumbnail[0]->attributes();
$thumbnail = $attrs['url'];
// get <yt:duration> node for video length
$yt = $media->children('http://gdata.youtube.com/schemas/2007');
$attrs = $yt->duration->attributes();
$length = $attrs['seconds'];
// get <gd:rating> node for video ratings
$gd = $entry->children('http://schemas.google.com/g/2005');
if ($gd->rating) {
$attrs = $gd->rating->attributes();
$rating = $attrs['average'];
} else {
$rating = 0;
}
// to get the video player
$url = $watch;
parse_str( parse_url( $url, PHP_URL_QUERY ), $video_id );
}
}
?>
私の質問は、YouTube Iframe を使用して自分のページのすべての動画を再生し、YouTube で再生するのではなく、どうすればよいかということです。