我在网上搜索了教程和说明,但却找不到任何内容......所以我希望也许有人可以指出我正确的方向或只是链接一些好的教程。 (顺便说一下,我愿意制作一个基本的YouTube客户端应用程序,让用户搜索视频,而不是观看它们......没什么太花哨的)。
提前致谢!
答案 0 :(得分:15)
哦伙计....欢迎来到解析JSON文件和忍受BADLY记录的API的世界:)
几个月前我正在研究这个问题,我设法让它运转起来。以下是您需要做的事情:
第1步 - OAuth 2.0集成
您的应用是否允许用户登录YouTube,以便他们可以评论/喜欢/等...视频?如果是这样,那么您需要先让用户通过您的应用登录YouTube API,然后才能执行此类操作。为此,您的应用需要使用OAuth 2.0与YouTube API进行通信。这是一个极好的库,您可以通过OAuth 2.0使用YouTube API进行身份验证:https://github.com/BHughes3388/BAHYouTubeOAuth
第2步 - 钥匙串 - 访问令牌存储
如果您不熟悉OAuth身份验证,那么最初可能会让人望而生畏,但是一旦您熟悉它并熟悉它,您就会意识到它很容易使用。
总的来说,它的工作方式是,您的应用会联系API(在本例中为YouTube V3 API)并请求网页。该网页允许用户登录APi并授予您的应用访问权限。完成此操作后,API会向您的应用发送一个"访问令牌"。此令牌需要在所有(或大多数)API请求中使用(取决于请求的类型)。
获得"访问令牌"然后你需要安全地存储它。它基本上是一个密码,所以你需要保持安全。 不执行某些人所做的事情,即使用NSUserDefaults
,这根本不安全。相反,您将需要使用钥匙串。这是Apple的安全加密/存储库,可以轻松用于保存密码等安全字符串。
为了使用Keychain安全地存储和检索"访问令牌"当你需要它时,看看这篇SO帖子,它很棒:How to use Keychain for saving password like GenericKeychain sample code
第3步 - YouTube API V3 - https://developers.google.com/youtube/v3/
现在这样,更难一点。您需要仔细阅读Google YouTube API V3并查看API参考文档,以查找将返回您要查找的数据的特定网址。例如:如果您想从用户的主页Feed或简单搜索中获取视频列表,请查看此API参考页:https://developers.google.com/youtube/v3/docs/videos/list
第4步 - 提取视频网址
在我进一步讨论这一步之前,我应该提一下,谷歌表示你应该在简单的网页浏览中使用YouTube HTML代码展示视频,该代码只是将视频视图嵌入到您的应用中。但在我看来(以及许多其他开发者),这看起来和工作非常糟糕......
因此,如果您想通过原生MPMovieplayerController在应用中显示YouTube视频,则需要先提取视频网址,然后才能执行此操作。
当您向YouTube API请求一组视频时,您将收到一个JSON文件,此文件包含一系列视频(视频ID,标题,日期等等)。
您需要解析视频ID的JSON文件。在您或应用用户选择了他们想要的视频后,您需要使用然后将该特定视频的视频ID传递给" YouTube视频链接提取器"图书馆。然后,该库将返回该视频的一组视频文件链接。这些链接可以与MPMovieplayerController结合使用,以原生显示视频。
这是一个很棒的YouTube视频文件url extracter - https://github.com/runmad/RMYouTubeExtractor
祝你好运:)