php - 将 youtube 视频标题拉入页面

标签 php api parsing youtube

我正在将一些 youtube 视频缩略图拉入我的页面,其中包含以下内容:

<img src="http://i3.ytimg.com/vi/<?php echo $youtubelist[$i];?>/default.jpg"></img>

(使用 Joomla 模块在 $youtubelist 上提供 youtube 视频 ID)

除了 youtube 缩略图,我还想拉入 youtube 视频“标题”和“描述”。

我该怎么做呢?

谢谢

[以下编辑]

这是我的代码,我想将标题放在标签上方:
<?php
$youtubelist    = explode( ',', $youtubecode );
$numyoutube     = count($youtubelist);
//Get duplicate module or not
$a=1;
foreach ($list as $item) :
    //$total=$a;
    $enddbid = $item->id;
        if ($ytslide==$enddbid) {$nummod=$a;}
    $a++;   
endforeach;
?>
<div id="videos">
    <div style="padding-left: 2px; padding-right: 2px;padding-bottom:2px;">
    <?php for ($i=0; $i<$numyoutube; $i++) { ?>
        <a href="#">
            <img src="http://i3.ytimg.com/vi/<?php echo $youtubelist[$i];?>/default.jpg"></img>
        </a>
    <?php } ?>
    </div>
</div>

最佳答案

您可以使用以下代码获取有关特定 youtube 视频的信息:

$url = "http://gdata.youtube.com/feeds/api/videos/$youtubeid?v=2";
$res = file_get_contents($url);

这将返回带有视频的完整元数据的 Atom XML,包括标题、作者、日期、关键字等。阅读 <title>响应的元素来获得你需要的东西。所以这段代码会给你你所追求的:
$data = new DOMDocument();
$res = preg_replace('/>\s+</','><', $res);
$root = $req->loadXML($res);
$tnodes = $root->getElementsByTagName('title');
$tn = $tnodes->item(0);
$title = $tn->firstChild->nodeValue;

使用您的代码,您需要有这样的东西:
<div id="videos">
    <div style="padding-left: 2px; padding-right: 2px;padding-bottom:2px;">
    <?php
        $data = new DOMDocument();
        for ($i=0; $i<$numyoutube; $i++) {
            $url = "http://gdata.youtube.com/feeds/api/videos/" . $youtubelist[$i] . "?v=2";
            $res = file_get_contents($url);
            $res = preg_replace('/>\s+</','><', $res);
            $root = $req->loadXML($res);
            $tnodes = $root->getElementsByTagName('title');
            $tn = $tnodes->item(0);
            $title = $tn->firstChild->nodeValue;
        ?>
        <a href="#">
            <div style="float:left">
                <?php echo $title; ?>
                <br/>
                <img src="http://i3.ytimg.com/vi/<?php echo $youtubelist[$i];?>/default.jpg" />
            </div>
        </a>
    <?php } ?>
    </div>
</div>

关于php - 将 youtube 视频标题拉入页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10975543/

相关文章:

javascript - 加载图像间歇性失败 - ERR_CONTENT_LENGTH_MISMATCH

java - Api 传输另一个 Api 响应

python - 尽管清晰,lxml iterparse 仍会填充内存

java - 为什么我的解析不起作用?

ios - 自定义单元格图像作为 Swift 中的附件类型

php - 奇怪的位字符显示

PHP PDO SQL Server 数据库问题

c# - 在 AZURE 或本地部署 .net core 3.0

c - C 中有哪些 XML API?

php - VoiceXML - 如何同时提交录音文件和文本输入