目前我正在构建一个使用少量用户上传视频的网站。这些视频被上传到服务器,然后通过 API v3 移动到 YouTube。设置私有标签,所有视频都上传到一个中央帐户。
我的问题是;如何通过 API 访问和列出所有这些私人视频以显示在我的网站上?我不确定这是否可能。任何反馈将不胜感激。
在仔细研究之后,我发现了这个。在浏览了文档后,我找不到一个 PHP 特定的例子来说明我如何做到这一点:getuserUploads。
目前我正在构建一个使用少量用户上传视频的网站。这些视频被上传到服务器,然后通过 API v3 移动到 YouTube。设置私有标签,所有视频都上传到一个中央帐户。
我的问题是;如何通过 API 访问和列出所有这些私人视频以显示在我的网站上?我不确定这是否可能。任何反馈将不胜感激。
在仔细研究之后,我发现了这个。在浏览了文档后,我找不到一个 PHP 特定的例子来说明我如何做到这一点:getuserUploads。
我相信您可以通过以下方式使用 YouTube Data v3 做到这一点:
以这种方式获取上传的视频(是Java示例):
https://developers.google.com/youtube/v3/docs/playlistItems/list#examples
然后您可以使用以下方法检索这些播放列表项的视频资源:
https://developers.google.com/youtube/v3/docs/videos/list
然后您可以验证每个视频资源中的 status.privacyStatus(如果您上传的视频具有不同的 status.privacyStatus ..)
获取 ZF Gdata 库@http: //framework.zend.com/downloads/latest
运行自动加载器:
set_include_path(APPPATH . 'third_party/zf/' . get_include_path());
require 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
使用您的 youtube 登录名、密码和开发人员密钥创建一个 HTTP 实例(您必须获取一个)。
$httpClient = Zend_Gdata_ClientLogin::getHttpClient(
"Youtube LOGIN",
"Youtube PASSWORD",
'youtube'
);
使用您的证书实例化 GData
$yt = new Zend_Gdata_YouTube(
$httpClient,
null,
null,
"Youtube Developer Key"
);
获取您的播放列表
$playlistListFeed = $yt->getPlaylistListFeed("YOUR YOUTUBE CHANNEL NAME");
//print_r($playlistListFeed); // uncomment to see the goods
准备一个数组以对更少的数据进行排序
$data['feed'] = array();
遍历所有内容,使用is_private来判断它是否是私有的
foreach ($playlistListFeed as $playlistEntry)
{
$feedUrl = $playlistEntry->getPlaylistVideoFeedUrl();
$playlistVideoFeed = $yt->getPlaylistVideoFeed($feedUrl);
foreach ($playlistVideoFeed as $video) {
$data['feed'][] = array(
'id' => $video->getVideoId(),
'title' => $video->getTitle(),
'thumbnail' => $video->getVideoThumbnails(),
'is_private' => $video->isVideoPrivate(),
'url' => $video->getVideoWatchPageUrl(),
'flash_url' => $video->getFlashPlayerUrl ()
);
}
}
您可能需要对其进行修改以使其适合您的设置,希望这会有所帮助。