通过标签获取youtube视频源,标签中有空格


Get youtube video feed by tags with space in tags

要获得带有特定标签的特定上传器的提要,我使用以下api url:

http://gdata.youtube.com/feeds/api/users/UPLOADER/uploads/-/TAG

如果我想搜索,即搜索带有标签foobar的提要,我会使用以下内容:

http://gdata.youtube.com/feeds/api/users/UPLOADER/uploads/-/foo/bar

但是,由于youtube允许您指定带有空格的标签,即"foo bar",因此我想准确搜索此标签。因此,当我在PHP中将第一个URL与urlencode结合使用时,它不会返回任何内容。

在浏览器中,URL将更改为。../uploads/-/foo%20bar,但也没有结果。

当我使用uploads/-/foo/bar时,问题是它返回具有标签'foo''bar'(错误)或仅'foo bar'(正确)的视频。

我还尝试用/+-替换空间。在URL中使用关键字.cat方案也会返回相同的结果。

我错过了什么吗?还是通常不可能?

youtube api中似乎存在一个尚未修复的错误。看见http://groups.google.com/group/youtube-api-gdata/browse_thread/thread/dc195bd6ad6a1fa4/2d9cf0e15ce7de50

如前所述,有一个YouTube错误,但您可以使用%2B(+)而不是空间来解决它。

因此,使用您的示例:

http://gdata.youtube.com/feeds/api/users/UPLOADER/uploads/-/foo%2Bbar

我本想把它作为注释添加,但我缺少rep.

http://gdata.youtube.com/feeds/api/users/UPLOADER/uploads/-/{http%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fkeywords.cat}foo+bar

使用标记前指定的keywords.cat进行尝试。

我遇到了同样的问题,并通过使用https://gdata.youtube.com/feeds/api/videos?q=格式
即。https://gdata.youtube.com/feeds/api/videos?q=+团队%20堡垒%202
您可以通过将+更改为-来检查这一点:
https://gdata.youtube.com/feeds/api/videos?q=-团队%20堡垒%202

这样做的缺点是q参数将查询视频的所有元数据,因此进行相应调整。

hthGreg