gpt4 book ai didi

php - Youtube 从 id 获取视频标题

转载 作者:行者123 更新时间:2023-12-02 02:35:12 24 4
gpt4 key购买 nike

我知道这可能已经在某处得到了回答,但是在查看并浏览了许多问题/答案和其他网站后,我无法找到合适的答案。

我正在尝试创建一个页面,该页面将显示来自 Youtube 的一些视频。它将显示图像和标题。我已经设法做到了这两点,尽管我在标题上遇到了问题。使用我正在使用的代码,加载速度非常慢。我假设因为它加载实际网站只是为了获得标题。

这是我目前用来获取标题的内容。

function get_youtube_id($url){
parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars );
return $my_array_of_vars['v'];
}
function get_youtube_title($video_id){
$url = "http://www.youtube.com/watch?v=".$video_id;

$page = file_get_contents($url);
$doc = new DOMDocument();
$doc->loadHTML($page);

$title_div = $doc->getElementById('eow-title');
$title = $title_div->nodeValue;

return $title;

}

那么,如何通过 id 获得 youtube 标题的最佳方式。我的代码确实有效,但它也使页面加载非常缓慢。

谢谢

最佳答案

这是使用 PHP 而没有库的简单方法。 YouTube 已经允许您以 JSON 格式检索视频详细信息,因此您只需要一个像这样的简单函数:

   function get_youtube_title($ref) {
$json = file_get_contents('http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=' . $ref . '&format=json'); //get JSON video details
$details = json_decode($json, true); //parse the JSON into an array
return $details['title']; //return the video title
}

函数参数为视频ID。您还可以添加第二个参数,要求提供特定的详细信息并更改函数名称,以便您可以从 JSON 中检索您想要的任何数据。

编辑:

如果您想从返回的视频详细信息中检索任何信息,您可以使用此功能:
function get_youtube_details($ref, $detail) {
if (!isset($GLOBALS['youtube_details'][$ref])) {
$json = file_get_contents('http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v=' . $ref . '&format=json'); //get JSON video details
$GLOBALS['youtube_details'][$ref] = json_decode($json, true); //parse the JSON into an array
}

return $GLOBALS['youtube_details'][$ref][$detail]; //return the requested video detail
}

如果您请求关于同一视频的不同详细信息,则返回的 JSON 数据存储在 $GLOBALS 中。数组以防止对 file_get_contents 的必要调用.

另外, allow_url_fopen必须在您的 php.ini 上为 file_get_contents工作,这可能是共享主机上的问题。

关于php - Youtube 从 id 获取视频标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42003061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com