0

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

但是,我也看不到这两个版本中的解决方案。

这是发生了什么。出于某种原因,服务器代码偶尔会并行上传重复的视频。Youtube 检测到这一点,然后它似乎将提要上的视频列为重复视频,并且它不会播放。

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

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

我的意思是这似乎很明显它不应该是正确的?

有谁知道从提要中过滤重复的内容?我查看返回的数据,没有任何状态指示或任何其他信息可以让我知道剪辑是否重复。

希望有人知道解决方案。

干杯!

4

2 回答 2

0

在 V2 和 V3 中,您的状态均为“已拒绝”。您是否检查过这是否也可能在 V1 中?

于 2013-05-03T04:47:31.360 回答
0

好的,所以我解决了,结果发现有一个 state 属性,你可以在 feed 中查询。请参阅下面的代码以了解如何检查状态并在其被拒绝时忽略它。

该死的 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;
    }
}
于 2013-05-15T00:55:48.177 回答