2010-04-08 90 views
3

我正在将一些YouTube搜索功能构建到iPhone应用程序中,并希望确保我只收到可在设备上播放的结果。根据Searching for videos section in the API reference doc,这看起来相对简单:如何确保YouTube API只返回iPhone上流传的视频?

format参数指定视频必须以特定视频格式可用。您的请求可以指定任何以下格式:

我已经尝试设置“格式= 1”,以限制:移动视频播放

的RTSP流网址。 H.263视频(最高176x144)和AMR音频。

这提供了很大比例的可播放视频,但有些仍然无法播放,我担心它不会返回其他可播放的视频。

当我将格式字段留空时,我会收到更高比例的非流量URL。

回答

2

这听起来不合适。我的理解是,iPhone不会流式传输RTSP,而是支持苹果的HTTP Streaming分段文件,通过范围请求实时传输MPEG4视频文件的HTTP流。我也希望视频是H.264和AAC音频。

您的设置听起来适合低端手机特别是,176x144是非智能手机常用的QCIF分辨率。

+0

是的,我希望看到一个H.264选项过滤,但它似乎并不存在。实际上,我完全忽略了这个过滤器选项,似乎得到了更好的(更高比例可播放的)结果。 – prendio2 2010-04-11 20:48:23

+0

我回来了 - 我现在收到大量的无法播放的视频搜索时没有过滤 – prendio2 2010-04-12 18:06:30

1

当你看到一个调用返回的XML文件

http://gdata.youtube.com/feeds/api/videos/<your video id> 

,那么你会发现,它不能播放iPhone上的视频将具有以下标签:

<yt:state name='restricted' reasonCode='limitedSyndication'>Syndication of this video was restricted by its owner.</yt:state> 

刚如果标签存在,请务必查找上面的标签并忽略视频。