要获得带有特定标签的特定上传器的提要,我使用以下api url:
http://gdata.youtube.com/feeds/api/users/UPLOADER/uploads/-/TAG
如果我想搜索,即搜索带有标签foo
和bar
的提要,我会使用以下内容:
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