2013-09-30 72 views
0

Youtube API文档指出,根据以下链接,可以在视频抓取过程中搜索多个关键字。在Youtube中搜索多个关键字GData Youtube类

https://developers.google.com/youtube/2.0/reference#Searching_for_videos

下面的链接给出了相同的一些例子。规定的“Q”参数的例子说,我们可以使用NOT( - )和OR(|)在搜索运营商:

https://developers.google.com/youtube/2.0/reference#qsp

举例:Q =划船%7Csailing确实为要么划船搜索或航行。

我能够理解这些观点。我的问题是我在Zend Framework 2中使用ZendGData库来搜索视频。我不确定如何为搜索提供多个关键字。

$yt = new ZendGData\YouTube(); 
$query = $yt->newVideoQuery(); 

我试过的所有组合如下。它们都不起作用。

$query->setQuery("french,tamil"); 
$query->setQuery("french|tamil"); 
$query->setQuery("french%7Ctamil"); 
$query->setQuery("french or tamil"); 

注:该文档说,使用URL编码,使管道符号进行编码。这就是为什么我在搜索中占据%7C的原因。

由ZendGData类生成的网址是: https://gdata.youtube.com/feeds/api/videos?q=french|tamil&start-index=58&max-results=50&safeSearch=none&orderby=viewCount&format=5&v=2

这并不与关键字“泰米尔”获取视频。所有视频仅来自第一个关键字。

请指点我正确的方向。

+0

的万阿英,蒋达清只与字泰米尔有哪些?你通过检查泰米尔作为参数(单参数) –

+0

不..不仅仅是单词“泰米尔”..如果我改变单词的顺序为“泰米尔%7Cfrench”,我只得到泰米尔语相关的视频 – Purus

+0

如果只有一个关键字给出,它工作正常 – Purus

回答

0

或用简单的空间。测试它,它发现所有的关键字https://gdata.youtube.com/feeds/api/videos?q=french%20tamil&start-index=1&max-results=50&safeSearch=none&orderby=viewCount&format=5&v=2

所以试试这个$ query-> setQuery(“french tamil”);或$查询 - > setQuery(用urlencode((“法国泰米尔语”));

而且你的启动指数看起来很奇怪,应该是不会启动指数= 1

+0

谢谢你那。我会尝试。关于起始索引,它可以是任何代表起始页码的值。我正在寻找随机视频,因此我每次都在我的代码中使用一些随机数。 – Purus

+0

它不提供输出Feed ..测试网址:https://gdata.youtube.com/feeds/api/videos?q=tamil+french+spanish&start-index=36&max-results=20&safeSearch=none&orderby=viewCount&format=5&v=2 – Purus

+0

这是因为您使用+而不是空格,而且您的起始索引从36开始,但只有3个结果 https://gdata.youtube.com/feeds/api/videos?q = tamil%20french%20spanish&start-index = 1&max-results = 20&safeSearch = none&orderby = viewCount&format = 5&v = 2 – ceasar