Как использовать API YouTube для приложения iOS?

Я искал в Интернете учебные пособия и инструкции, но не смог найти их на этом... Поэтому я надеялся, что кто-то может указать мне в правильном направлении или просто связать некоторые полезные уроки. (Кстати, я готов сделать базовое клиентское приложение YouTube, которое позволяет пользователю искать видео, а не смотреть на них... ничего необычного).

Спасибо заранее!

Ответ 1

Oh buddy.... приветствуем добро пожаловать в мир разбора файлов JSON и размещаем с документально подтвержденными API API:)

Хорошо, я изучал это несколько месяцев назад, и мне удалось заставить его работать. Вот что вам нужно сделать:

Шаг 1 - Интеграция OAuth 2.0

Будет ли ваше приложение позволять пользователю входить на YouTube, чтобы они могли комментировать/как/etc... видео? Если это так, тогда вам нужно будет сначала войти в API YouTube через ваше приложение, прежде чем они смогут это сделать. Для этого вашему приложению потребуется использовать OAuth 2.0 для связи с API YouTube. Вот превосходная библиотека, которую вы можете использовать для аутентификации с помощью API YouTube через OAuth 2.0: https://github.com/BHughes3388/BAHYouTubeOAuth

Шаг 2 - Брелок - Доступ к хранилищу токенов

Если вы новичок в аутентификации OAuth, сначала это может быть сложной задачей, но как только вы поиграете с ней и познакомитесь с ней, вы поймете, что с ней очень легко работать.

В целом, как это работает, ваше приложение связывается с API (в данном случае API V3 для YouTube) и запрашивает веб-страницу. Веб-страница позволяет пользователю войти в APi и предоставить доступ к вашему приложению. Как только это будет сделано, API отправит вашему приложению "токен доступа". Этот токен должен использоваться во всех (или большинстве) ваших запросах API (это зависит от типа запроса).

После того, как вы получили "токен доступа", вам необходимо будет его безопасно хранить. В основном это пароль, поэтому вам нужно держать его в безопасности. Do не делать то, что делают некоторые люди, а именно использовать NSUserDefaults, который вообще не защищен. Вместо этого вам нужно будет использовать Keychain. Это безопасная библиотека шифрования/хранения Apple, которая может быть легко использована для сохранения защищенных строк, таких как пароли.

Чтобы использовать Keychain для надежного хранения и получения "токена доступа", когда вам это нужно, посмотрите на эту публикацию SO, ее отличное: Как использовать брелок для сохранения пароль, например, пример кода GenericKeychain

Шаг 3 - API YouTube V3 - https://developers.google.com/youtube/v3/

Так и сейчас, сложнее. Вам необходимо прочитать API-интерфейс Google YouTube V3 и просмотреть справочные документы API, чтобы найти конкретные URL-адреса, которые возвратят данные, которые вы ищете. Например: если вы хотите получить список видео из домашней ленты пользователя или из простого поиска, посмотрите на этой странице ссылок API: https://developers.google.com/youtube/v3/docs/videos/list

Шаг 4 - Извлеките URL-адрес видео

Прежде чем говорить дальше об этом шаге, я должен упомянуть, что Google говорит, что вы должны показывать видео в простом веб-браузере с помощью HTML-кода YouTube, который просто встраивает видео в ваше приложение. Но, на мой взгляд (и многие другие разработчики), это выглядит и работает ужасно....

Итак, если вы хотите отображать видео YouTube в своем приложении через собственный MPMovieplayerController, вам сначала нужно извлечь URL-адрес видео, прежде чем вы сможете это сделать.

Когда вы отправляете запрос на YouTube API для набора видео (ы), вы получите файл JSON, этот файл содержит список видео (видеодиски, названия, даты и т.д.).

Вам нужно будет разобрать файл JSON для идентификаторов видео. После того, как вы или пользователь приложения выбрали нужное видео, вам необходимо будет использовать этот идентификатор видео для этого конкретного видео в библиотеке "YouTube video link extractor". Затем эта библиотека вернет набор видеофайлов для этого видео. Эти ссылки могут использоваться совместно с MPMovieplayerController для отображения видео изначально.

Вот отличный экстрактор url для видеофайлов YouTube - https://github.com/runmad/RMYouTubeExtractor

Удачи:)