【发布时间】:2011-07-07 21:50:52
【问题描述】:
在 YouTube 上
我如何获取我订阅的频道的最新上传视频的 ID(URL 中的视频,如 v=....),用于嵌入
我在我的服务器端使用 php
【问题讨论】:
在 YouTube 上
我如何获取我订阅的频道的最新上传视频的 ID(URL 中的视频,如 v=....),用于嵌入
我在我的服务器端使用 php
【问题讨论】:
截至 2015 年 4 月 20 日,上述答案似乎不再有效。这是一个使用 YouTube 频道 ID 的示例(可以在频道页面的源代码中找到。)
<?php
$id = NULL;
$channel_id = 'someChannelID';
$xml = simplexml_load_file(sprintf('https://www.youtube.com/feeds/videos.xml?channel_id=%s', $channel_id));
if (!empty($xml->entry[0]->children('yt', true)->videoId[0])){
$id = $xml->entry[0]->children('yt', true)->videoId[0];
}
echo $id; // Outputs the video ID.
【讨论】:
这是一个使用 YouTube RSS 源 simplexml_load_file、parse_url 和 parse_str 的示例。
<?php
$id = NULL;
$username = 'YouTube';
$xml = simplexml_load_file(sprintf('http://gdata.youtube.com/feeds/base/users/%s/uploads?alt=rss&v=2&orderby=published', $username));
if ( ! empty($xml->channel->item[0]->link) )
{
parse_str(parse_url($xml->channel->item[0]->link, PHP_URL_QUERY), $url_query);
if ( ! empty($url_query['v']) )
$id = $url_query['v'];
}
echo $id; // Outputs the video ID.
【讨论】:
以下是设置 API 密钥后如何通过 YouTube API 执行此操作的方法。
<?php
$channel_id = 'someChannelId';
$api_key = 'yourAPIKey';
$json_url="https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=".$channel_id."&key=".$api_key;
$json = file_get_contents($json_url);
$listFromYouTube=json_decode($json);
$id = $listFromYouTube->items[0]->snippet->resourceId->videoId;
echo $id; // Outputs the video ID.
生成您的 API 密钥:
【讨论】:
这里和 Greg Brendel 一样。 YT 确实做了一些更改:“随着我们升级 YouTube 数据 API 以带来更多功能,我们将于 2015 年 4 月 20 日开始关闭旧版本。这将导致当前的 YouTube 应用无法在 2012 年的某些设备型号上运行和更老的。”
https://support.google.com/youtube/answer/6098135?p=yt_devicesupport&hl=en&rd=1
【讨论】: