如何将 YouTube API 用于 iOS 应用?
Posted
技术标签:
【中文标题】如何将 YouTube API 用于 iOS 应用?【英文标题】:How to use YouTube API for an iOS app? 【发布时间】:2015-07-11 05:09:41 【问题描述】:我在网上搜索了教程和说明,但找不到任何关于此的...所以我希望这里有人可以指出我正确的方向,或者只是链接一些好的教程。 (顺便说一句,我愿意制作一个基本的 YouTube 客户端应用程序,让用户搜索视频而不是观看它们......没什么太花哨的)。
提前致谢!
【问题讨论】:
ios App and youtube client的可能重复 【参考方案1】:哦,伙计....欢迎来到解析 JSON 文件和忍受糟糕记录的 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 参考文档以找到将返回您正在查找的数据的特定 URL。例如:如果您想从用户的主页或简单搜索中获取视频列表,请查看此 API 参考页面:https://developers.google.com/youtube/v3/docs/videos/list
第 4 步 - 提取视频网址
在我进一步讨论这一步之前,我应该提一下,谷歌说你应该在一个简单的 web 视图中显示视频,YouTube html 代码只是将视频视图嵌入到你的应用程序中。但在我看来(以及许多其他开发人员),这看起来和工作起来都很糟糕......
因此,如果您想通过原生 MPMovieplayerController 在您的应用中显示 YouTube 视频,那么您需要先提取视频 URL,然后才能执行此操作。
当您向 YouTube API 发出一组视频的请求时,您会得到一个 JSON 文件,该文件包含一个视频列表(视频 ID、标题、日期等......)。
您需要解析视频 ID 的 JSON 文件。一旦您或应用程序用户选择了他们想要的视频,您将需要使用该特定视频的视频 ID,然后将其传递给“YouTube 视频链接提取器”库。然后,该库将返回该视频的一组视频文件链接。这些链接可以与 MPMovieplayerController 结合使用以原生显示视频。
这是一个很棒的 YouTube 视频文件 url 提取器 - https://github.com/runmad/RMYouTubeExtractor
祝你好运:)
【讨论】:
哇...谢谢伙计!这就像我需要的完美答案。 :) 这违反了 YouTube 的服务条款。在 iOS 应用程序中播放 YouTube 视频而不破坏任何 TOS 的唯一方法是通过 YouTube 的 YTPlayerView:github.com/youtube/youtube-ios-player-helper 我正在寻找一个开箱即用的开源演示,然后将相关部分复制粘贴到我的项目中,你有没有把这样的东西放在一起。以上是关于如何将 YouTube API 用于 iOS 应用?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 应用中为 YouTube Data API V3 实现分页
如何在到期后使用 OAuth 2.0 以及 iOS 应用程序中的 Youtube API 获取新的访问令牌