如何确保YouTube API仅返回可在iPhone上流式传输的视频?

时间:2010-04-08 15:30:15

标签: iphone youtube video-streaming youtube-api video-encoding

我正在将一些YouTube搜索功能构建到iPhone应用中,并希望确保我只接收可在设备上播放的结果。根据{{​​3}},这似乎相对简单:

  

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

我尝试将“format = 1”设置为限制为:

  

用于移动视频播放的RTSP流媒体网址。 H.263视频(最高176x144)和AMR音频。

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

当我将格式字段留空时,我会收到更高比例的不可流式网址。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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>

如果标签存在,请确保查找上述标记并忽略该视频。