Ресурсы для мобильной разработки с помощью YouTube

Ярек Вилкевич, команда YouTube API
сентябрь 2010 г.

Введение

Разработчики, которые хотят включить запись, загрузку, обмен и воспроизведение видео в свои мобильные приложения, могут использовать платформу YouTube, чтобы упростить свою работу и улучшить конечные продукты. В этой статье освещаются некоторые технологии, которые вы можете использовать в своих приложениях.

Запись

Процесс записи видео выполняется с использованием базовой мобильной платформы. Например, ваше приложение может запустить намерение VIDEO_CAPTURE на Android:

Intent i = new Intent();
i.setAction(MediaStore.VIDEO_CAPTURE);
startActivityForResult(i, CAPTURE_RETURN);

или запустите UIImagePickerController на iPhone iOS:

IImagePickerController *imagePicker = [[[UIImagePickerController alloc] init] autorelease];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
[self presentModalViewController:imagePicker animated:YES];

Для получения более расширенных возможностей записи в iOS 4 и более поздних версиях вы также можете использовать класс AVCaptureSession из AV Foundation Framework.

Загрузка

Ваше приложение может загрузить видео и его метаданные на YouTube, отправив электронное письмо на специальный адрес электронной почты , связанный с учетной записью пользователя YouTube, или используя один из трех методов API : загрузка через браузер, прямая загрузка или прямая возобновляемая загрузка. Для мобильных приложений прямая возобновляемая загрузка является наиболее надежным выбором, поскольку она позволяет приложению корректно восстанавливаться после сбоев подключения и возобновлять загрузку с точки сбоя. Протокол возобновляемой загрузки YouTube использует механизм HTTP 1.1 Content-Range/Range для передачи видео частями и, в случае прерывания, для определения количества успешно переданных байтов.

Хотя сам видеоконтент является наиболее важным компонентом загрузки, метаданные видео являются неотъемлемой частью процесса, поскольку эти метаданные позволяют пользователям находить видео при поиске, а также активируют другие функции, описанные далее в этой статье. Помимо общих элементов, таких как категория, описание и заголовок, мобильные приложения могут легко включать данные геолокации с GPS-устройства телефона. Эти данные позволяют осуществлять поиск по местоположению или отображать места съемки видео на карте. Для приложений загрузки видео, стремящихся свести к минимуму взаимодействие с пользователем, загрузка нулевых метаданных является еще одним вариантом, дополнительную информацию об этом можно найти в докладе Google I/O.

Совместное использование

API данных YouTube также предоставляет богатые функциональные возможности для обмена видео. Как и другие API данных Google, API YouTube использует протокол на основе REST, который поддерживает представления данных Atom , JSON и JSON-C . Компактные ответы API JSON-C особенно хорошо подходят для мобильных сред, которые часто ограничены в ресурсах. API предоставляет гибкие функции поиска видео; возможность комментировать и оценивать видео; доступ к подпискам, любимым видео, плейлистам и системе рекомендаций; и множество функций сообщества, которые помогут вам интегрировать видео в социальные приложения.

Все эти функции можно включить в мобильное приложение с помощью клиентских библиотек для конкретного языка программирования или путем прямого взаимодействия с API-серверами YouTube через HTTP. Первый подход позволяет абстрагировать большую часть сложности протокола за счет большего объема приложения. Последний подход позволяет вручную создавать взаимодействие с конкретными службами API, которые использует ваше приложение. В конечном итоге выбор зависит от приложения. Чтобы начать, ознакомьтесь с библиотекой Java GData для Android или библиотекой Objective-C GData для iPhone. Более сложные мобильные видеоприложения могут выиграть от интеграции с серверной частью. Одним из таких приложений является YouTube Direct (рис. 1), в котором используется серверный код с открытым исходным кодом, предварительно настроенный для работы в Google App Engine, а также эталонные клиентские реализации загрузки видео для Android ( ytd-android , показан на рис. 1) и iPhone. ( с начала года для iPhone ).

Приложение YouTube Direct для Android
Рис. 1. Android-приложение YouTube Direct.

Безопасность

Безопасность и аутентификация также являются важными аспектами разработки мобильных приложений YouTube. Хотя некоторые операции API доступны клиентам, не прошедшим проверку подлинности, другие запросы требуют авторизации, которая осуществляется с помощью токена аутентификации, отправленного в запросе API. К таким операциям относятся загрузка видео, а также любые другие операции, которые изменяют или записывают данные или получают доступ к частной информации пользователя.

API поддерживает три метода аутентификации: AuthSub, OAuth и ClientLogin . ClientLogin — это самый простой метод для мобильных приложений, а в Android AccountManager можно использовать для легкого получения токенов аутентификации. Однако приложениям, которые объединяют мобильный клиент и несколько веб-серверов, следует рассмотреть возможность использования OAuth, который является предпочтительным в качестве открытого стандарта, или AuthSub, специфичного для Google. См. это приложение для примера реализации аутентификации OAuth на Android и GDataOAuthViewControllerTouch для примера реализации на iPhone iOS.

Воспроизведение

И, наконец, видео существуют для того, чтобы люди могли их смотреть. Опять же, платформа YouTube предлагает несколько вариантов.

  • Большинство современных мобильных платформ поставляются в комплекте с плеером YouTube, что обеспечивает быструю интеграцию. Если на вашей платформе нет приложения-плеера YouTube, вы можете загрузить его. Мобильное приложение запускает плеер с помощью сервиса платформы. Например, в Android приложение использует намерение ACTION_VIEW , а на iPhone приложение может запускать проигрыватель с помощью метода openURL класса UIApplication , как описано в этом сообщении блога.
  • Мобильный веб-сайт YouTube http://m.youtube.com позволяет легко интегрировать воспроизведение видео в веб-приложение.
  • Для более точного управления воспроизведением приложения на платформах с поддержкой Adobe Flash могут расширять возможности проигрывателя YouTube AS3 , который обеспечивает более высокое качество воспроизведения.