Youtube API获取Feed忽略重复项

时间:2013-05-03 04:39:33

标签: api zend-framework youtube duplicates feed

我无法找到让youtube不在Feed中返回重复视频的方法。 我目前正在使用API​​ v1,我知道v2和v3也是我应该移动的地方。我正在使用ZF 1及其Gdata库,如果对我想要做的事情有API级别的支持,那就不重要了。

但是我无法在这两个版本中看到解决方案。

Heres发生了什么事。 出于某种原因,服务器代码偶尔会并行上传重复的视频。 Youtube会检测到该内容,然后它似乎会将Feed上的视频列为重复内容并且不会播放。

https://gdata.youtube.com/feeds/api/users/username/uploads/?max-results=50

所以我从该用户帐户中获得了50个视频。无论如何告诉youtube,不要返回重复的视频。

我的意思是,它似乎显然不对吗?

有没有人知道过滤Feed中的重复项? 我查看返回的数据,并且没有任何状态或任何其他信息的迹象,这些信息将为我提供一种方法来判断剪辑是否重复。

希望有人知道解决方案。

干杯!

2 个答案:

答案 0 :(得分:0)

在V2和V3中,您都获得了“拒绝”状态。你有没有检查过这可能是在V1?

答案 1 :(得分:0)

好的,所以我把它解决了,结果是你可以在饲料中查询的州财产。请参阅下面的代码,了解如何检查状态,如果被拒绝则忽略它。

Damn Zend Framework v1这类文件几乎不存在。

$applicationId = 'App ID';
$clientId = 'Client ID';
$youtubeDeveloperKey = 'Developer Key';
$token = unserialize($gdata_oauth_access_token);
$httpClient = $token->getHttpClient($this->_oauthOptions);
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $youtubeDeveloperKey);

$url = 'https://gdata.youtube.com/feeds/api/users/' . $youtube_user_name . '/uploads/?max-results=50';
$videoFeed = $yt->getVideoFeed($url);

// process the feed
foreach ($videoFeed as $videoEntry) {
    $state = $videoEntry->getVideoState();
    if (is_object($state) && $state->name == 'rejected') {
        // skip this video
        continue;
    }
}