2011-08-12 125 views
-5

现在我通过使用数据API协议获取YouTube视频的信息 访问此URL显示我需要的信息,但是对于执行一打查询它的速度太慢。大约需要10秒才能获得24个视频。快速获取YouTube视频信息

有没有办法在1个请求中发送多个查询,或者有另一种方法可以让 获得更快的信息?现在我只用它来获得收视率。

https://gdata.youtube.com/feeds/api/videos/[video id] 

编辑:在这一刻,我通过php与get_file_contents()。 有更快的页面下载功能吗?

+0

为什么使用加密协议?这显着减慢了 – AlienWebguy

+0

简单的解决方案:同时执行多个请求。 – Chronial

+0

@ alienwebguy如果我不使用它,它会以完全相同的速度安全运行。 @Chronial我怎么用ph​​p做到这一点? – Drake

回答

4

冒着被低估的风险:我只是发送整个页面而没有收视率,并且在页面完全加载时使用ajax/jquery添加收视率。速度将取决于访问者的互联网连接和浏览器(同时请求的数量)。

顺便说一句,我知道这不是一个最佳的解决方案;它是基于两个其他解决方案被拒绝的事实...

+0

我已经在做这个选择,因为所有这些其他用户都没有拿出一个单一的工作解决方案。 – Drake

+0

+1 Yay @Jeroen! :) – AlienWebguy

2

让你的所有来电卷曲一次:

假设你有10个视频的ID:

kcvq0RcBkOE 
OYpwAtnywTk 
EvHwh9O9Tsg 

...等

用花括号将它们连接起来像这样的网址:

curl http://gdata.youtube.com/feeds/api/videos/{kcvq0RcBkOE,OYpwAtnywTk,EvHwh9O9Tsg} 
3

无法在单个请求中获取多个网址,除非它是功能性的由您正在使用的API或Feed指定。如果YouTube的API不允许您在单个请求中提取多个项目,那么为了提高性能,您应该查看这些URL的预加载和缓存。

如果您事先知道哪些项目需要评分,然后设置一个cronjob以便将它们拉入手中,然后将它们缓存在某种持久性数据库中。

+0

+1对于一些常识 – AlienWebguy

+0

它不是我可以缓存的东西,它将从用户当前所在的每个页面获取数据。因此,缓存每分钟更新的数千个视频评级不是一种选择。 – Drake

+0

啊我明白了。在这种情况下,加载页面可能会有意义,然后在前端将其拉入时,可以使用某种加载图标代替收视率。 –