如何在iOS应用程序中使用YouTube API?

13
我在网上搜寻教程和指南,但找不到相关内容... 所以我希望这里的某人可以为我指引正确的方向或提供一些好的教程链接。(顺便说一下,我打算制作一个基本的YouTube客户端应用程序,让用户搜索视频并观看它们... 没有太高级的功能)。
提前感谢!

1
可能是重复的问题:iOS应用程序和youtube客户端 - Yuyutsu
1个回答

19

哦,伙计...欢迎来到解析JSON文件和应对糟糕的API文档的世界 :)

几个月前我在研究这个,最终成功了。以下是你需要做的事情:

第一步 - OAuth 2.0集成

你的应用是否允许用户登录YouTube以便评论/点赞等视频?如果是,那么用户必须先通过你的应用登录到YouTube API才能执行这些操作。为此,你的应用需要使用OAuth 2.0与YouTube API通信。这是一个超棒的库,可供你使用OAuth 2.0身份验证YouTube API:https://github.com/BHughes3388/BAHYouTubeOAuth

第二步 - Keychain - 访问令牌存储

如果你是OAuth身份验证的新手,起初可能会感到困惑,但是一旦你尝试并熟悉了它,就会发现它很容易使用。

总的来说,它的工作方式是,您的应用程序联系API(在本例中为YouTube V3 API)并请求网页。该网页允许用户登录到API并授予您的应用程序访问权限。完成此操作后,API将向您的应用程序发送“访问令牌”。该令牌需要在所有(或大多数)API请求中使用(这取决于请求类型)。
一旦获得了“访问令牌”,则需要安全地存储它。它基本上是一个密码,因此您需要保护它的安全。不要像某些人那样使用“NSUserDefaults”,这样做根本不安全。相反,您需要使用Keychain。这是苹果的安全加密/存储库,可以轻松地用于保存诸如密码之类的安全字符串。
为了使用Keychain安全地存储和检索“访问令牌”,请查看此SO帖子,它很棒:如何使用Keychain保存密码,例如GenericKeychain示例代码

第三步 - YouTube API V3 - https://developers.google.com/youtube/v3/

现在是比较困难的部分。您需要阅读Google YouTube API V3并查看API参考文档,以找到返回所需数据的特定URL。例如:如果您想从用户的主页或简单搜索中获取视频列表,则可以查看此API参考页面:https://developers.google.com/youtube/v3/docs/videos/list

第四步 - 提取视频URL

在我进一步讲解这一步之前,我应该提到Google建议您使用YouTube HTML代码在简单的Web视图中呈现视频视图,该代码仅将视频视图嵌入您的应用程序中。但是在我的意见(和许多其他开发人员)中,这看起来和工作效果都很糟糕....

因此,如果您想通过本机MPMovieplayerController在应用程序中显示YouTube视频,则需要先提取视频URL。

当您向YouTube API请求一组视频时,会收到一个JSON文件,其中包含视频列表(视频ID、标题、日期等)。
您需要解析JSON文件以获取视频ID。一旦您或应用程序用户选择了所需的视频,您需要将该特定视频的视频ID传递给“YouTube视频链接提取器”库。然后,此库将返回该视频的一组视频文件链接。这些链接可以与MPMovieplayerController结合使用,以本地显示视频。
这是一个很棒的YouTube视频文件URL提取器 - https://github.com/runmad/RMYouTubeExtractor 祝好运 :)

4
哇...谢谢伙计!这就像我需要的完美答案。 :) - Balázs Vincze
1
这违反了YouTube的服务条款。在iOS应用程序中播放YouTube视频而不违反任何TOS的唯一方法是通过YouTube的YTPlayerView:https://github.com/youtube/youtube-ios-player-helper - JAL
我正在寻找类似于开源演示的东西,可以直接运行,然后将相关部分复制粘贴到我的项目中。你曾经做过这样的事情吗? - rraallvv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接