gpt4 book ai didi

php - 当视频ID以(-)减号开头时,PHP youtube xml供稿器

转载 作者:行者123 更新时间:2023-12-03 05:59:52 25 4
gpt4 key购买 nike

我正在使用此代码来获取youtube视频信息,并且在尝试以(-)减开头的任何视频时出现错误之前,它都可以正常工作,例如:-VF0JwxQqcA

<?php
//The Youtube"s API url
define('YT_API_URL', 'http://gdata.youtube.com/feeds/api/videos?q=');
//Change below the video id.
$video_id2 = "$video_id2";
//Using cURL php extension to make the request to youtube API
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, YT_API_URL . $video_id2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//$feed holds a rss feed xml returned by youtube API
$feed = curl_exec($ch);
curl_close($ch);
//Using SimpleXML to parse youtube"s feed
$xml = simplexml_load_string($feed);
$entry = $xml->entry[0];
//If no entry whas found, then youtube didn"t find any video with specified id
if(!$entry) exit('Error: no video with id "' . $video_id2 . '" whas found. Please specify the id of a existing video.');
$media = $entry->children("media", true);
$group = $media->group;

$title = $group->title;//$title: The video title

$desc = $group->description;//$desc: The video description
$news_images = $group->thumbnail[0];//There are 4 thumbnails, the first one (index 0) is the largest.
//$thumb_url: the url of the thumbnail. $thumb_width: thumbnail width in pixels.
//$thumb_height: thumbnail height in pixels. $thumb_time: thumbnail time in the video
list($thumb_url) = $news_images->attributes();
$content_attributes = $group->content->attributes();
//$vid_duration: the duration of the video in seconds. Ex.: 192.
$vid_duration = $content_attributes["duration"];
//$duration_formatted: the duration of the video formatted in "mm:ss". Ex.:01:54
$source= "http://i.ytimg.com/vi/$video_id2/mqdefault.jpg";
?>

错误将是: 错误:未找到ID为“-VF0JwxQqcA”的视频。请指定现有视频的ID。

有什么帮助吗?
谢谢

最佳答案

问题在于您使用的是搜索供稿,因此,当您打算排除该字符串时,YouTube会以“-”开头的视频来解释您的通话。但是,如果您已经知道视频ID,则根本不应该使用搜索供稿...这实际上是用来搜索关键字的。如果您知道videoID,则应使用以下供稿:

https://gdata.youtube.com/feeds/api/videos/-VF0JwxQqcA

(换句话说,删除“q” URL参数,然后将videoID附加为URL路径的一部分)。

您可能需要稍微更改解析器,但这是返回视频数据的更可靠的方法。

我还可以建议您考虑迁移到API的v3吗?您将使用以下端点:
https://www.googleapis.com/youtube/v3/videos?part=id,snippet&id=-VF0JwxQqcA&key={YOUR_API_KEY}

返回的数据将是JSON,它更易于解析,并且无需担心v2弃用时需要更改您的应用程序。 v3返回的信息对于视频资源也更加完整。

关于php - 当视频ID以(-)减号开头时,PHP youtube xml供稿器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22004205/

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