如何将 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 获取新的访问令牌

如何在 iOS 客户端的 Youtube API 中获取客户端密钥?

如何使用 YouTube API V3?

iOS:在我的应用中将视频分享到 youtube

用于通过PHP访问Youtube的Google API密钥