如何确保 YouTube API 仅返回可在 iPhone 上流式传输的视频?
Posted
技术标签:
【中文标题】如何确保 YouTube API 仅返回可在 iPhone 上流式传输的视频?【英文标题】:How to ensure YouTube API only returns videos that are streamable on iPhone? 【发布时间】:2011-02-05 18:28:12 【问题描述】:我正在将一些 YouTube 搜索功能构建到 iPhone 应用程序中,并希望确保我只收到可在设备上播放的结果。根据Searching for videos section in the API reference doc,这似乎相对简单:
format 参数指定视频必须以特定的视频格式提供。您的请求可以指定以下任何格式:
我尝试将“format=1”设置为:
用于移动视频播放的 RTSP 流 URL。 H.263 视频(最高 176x144)和 AMR 音频。
这提供了高比例的可播放视频,但有些仍然无法播放,我担心它不会返回其他可播放的视频。
当我将格式字段留空时,我会收到更高比例的不可流式 URL。
【问题讨论】:
【参考方案1】:这听起来不合适。我的理解是,iPhone 不流式传输 RTSP,而是支持 Apple 的分段文件 HTTP 流式传输,以通过范围请求实时传输 MPEG4 视频文件和 HTTP 流式传输。我还希望视频是 H.264 和 AAC 音频。
您的设置听起来很适合低端手机,尤其是 176x144 是非智能手机上常用的 QCIF 分辨率。
【讨论】:
是的,我也希望看到 H.264 过滤选项,但它似乎不存在。通过完全省略此过滤器选项,我实际上似乎获得了更好(更高比例的可玩)结果。 我收回这一点——我现在在不过滤的情况下搜索时收到大量无法播放的视频【参考方案2】:当您查看调用返回的 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>
只要确保寻找上面的标签,如果标签存在则忽略视频。
【讨论】:
以上是关于如何确保 YouTube API 仅返回可在 iPhone 上流式传输的视频?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 YouTube API V3 仅查询 360 视频