我想获得一个Youtube视频的持续时间.这是我试过的代码:
$vidID="voNEBqRZmBc"; //http://www.youtube.com/watch?v=voNEBqRZmBc $url = "http://gdata.youtube.com/Feeds/api/videos/". $vidID; $doc = new DOMDocument; $doc->load($url); $title = $doc->getElementsByTagName("title")->item(0)->nodeValue;
请检查XML文件.我得到这个视频的标题.我想从< yt:duration seconds = '29'/> ;.获取持续时间. 如何获取秒属性这个< yt>标签?
由于即将推出的Youtube v2 API,以下是更新的解决方案.
>首先克隆Google API PHP Client here
>接下来,您将需要通过创建一个新的项目,在“API和auth> API”部分打开Youtube Data API,并注册Google here应用程序,
>在“API和auth>凭证”下创建新的OAuth客户端ID,并将完整路径添加到重定向uri列表中. (即http://example.com/get_youtube_duration.php)
>使用this代码(改编自this示例代码),同时确保使用您自己的步骤3中的值填充$OAUTH2_CLIENT_ID和$OAUTH2_CLIENT_SECRET变量.
对$videoId变量的值进行硬编码,或者使用video_id get参数(即http://example.com/get_youtube_duration.php?video_id=XXXXXXX)进行设置
>访问您的脚本,点击链接以授权应用程序,并使用您的Google帐户获取令牌,将重定向到您的代码,并显示持续时间.
这是你的输出:
Video Duration 0 mins 29 secs
一些额外的资源:
https://developers.google.com/youtube/v3/docs/videos#contentDetails.duration
https://developers.google.com/youtube/v3/docs/videos/list
以下仅适用于V2 API.
这对我来说是有效的,假设在饲料中只有1个持续时间的元素.
<?PHP $vidID="voNEBqRZmBc"; //http://www.youtube.com/watch?v=voNEBqRZmBc $url = "http://gdata.youtube.com/Feeds/api/videos/". $vidID; $doc = new DOMDocument; $doc->load($url); $title = $doc->getElementsByTagName("title")->item(0)->nodeValue; $duration = $doc->getElementsByTagName('duration')->item(0)->getAttribute('seconds'); print "TITLE: ".$title."<br />"; print "Duration: ".$duration ."<br />";
输出:
TITLE: Introducing iTime Duration: 29