Youtube API v3,视频播放时参数无效问题

Posted

技术标签:

【中文标题】Youtube API v3,视频播放时参数无效问题【英文标题】:Youtube API v3, Invalid parameter issue while video play 【发布时间】:2015-08-25 12:44:52 【问题描述】:

我正在使用 youtube API 来显示视频列表并播放该视频。 v2 一切正常,但现在它已被弃用,我已用 v3 更新它。

我成功获取了 youtube 播放列表,但是当我使用 API 中提供的 videoId 播放时,它失败并显示如下错误。

它在浏览器 safari 和 mozila 中也能正常运行。

视频网址 VideoLink

    **Error**
    Error Domain=YouTubeVideoErrorDomain Code=2 "Invalid parameters." UserInfo=0x7f877064c610 
    NSURL=https://www.youtube.com/get_video_info?el=detailpage&hl=en&ps=default&video_id=https%3A%2F%2F
    www.youtube.com%2Fwatch%3Fv%3DRgKAFK5djSk%26feature%3Dyoutube_gdata, NSLocalizedDescription=Invalid parameters.

【问题讨论】:

你找到解决办法了吗? @BhumitMehta (Bhooms) 是的,我使用过 YTPlayerview。您必须使用该视图,它会正常工作。如果您想了解更多信息,请告诉我。 【参考方案1】:

我对您的问题的理解是,您很难让视频在您的应用中播放?从您的错误输出来看,无论如何,对我来说,您似乎正在尝试将 URL 传递给诸如 MPMoviePlayerController 之类的本机内容?

如果是这样,这是可以做到的,但你接近它的方式是错误的。您需要做的是使用 YouTube 视频 URL 链接提取器库,该库将使用您从 YouTube API V3 获取的视频 ID,然后获取 MP4 视频 URL 列表。然后,您可以使用这些 URL 本地播放视频。

这是一个很棒的链接提取器库,您可以使用:https://github.com/runmad/RMYouTubeExtractor

我应该提一下,这违反了 YouTube ToS,所以如果您想按照 Google 允许的方式进行操作,那么您只需将该视频嵌入到一个小的 UIWebView 中即可。 (看起来和工作起来都很糟糕)。使用这个库来做到这一点:https://github.com/youtube/youtube-ios-player-helper

【讨论】:

是的,我正在使用 MPMoviePlayerController,我听说你被告知要使用 youtube 视频 url 提取器,但是在 v2 中它可以正常工作而无需执行任何此类操作。我的意思是我必须使用这个因为 v3 的变化? @Niks 是的,从 YouTube API V3 开始,实际的视频文件链接存储在 YouTube 视频数据中。因此需要一个提取器来获取这些链接。您不能再将标准链接用于实际的视频文件。

以上是关于Youtube API v3,视频播放时参数无效问题的主要内容,如果未能解决你的问题,请参考以下文章

YouTube API v3 响应缺少视频

YouTube V3 API 播放列表项 resourceIdRequired

在单个页面上嵌入多个 YouTube 播放列表供稿? jQuery/YouTube API v3

YouTube API v3 - 确定用户是不是观看过视频?

Youtube api v3 无法从频道中检索所有视频

Python - youtube.playlistItems().delete() 不适用于 [已删除的视频] (YouTube API v3)