Ресурсы для разработки мобильных приложений, интегрированных с YouTube

Ярек Вилькевич, команда API YouTube
Сентябрь 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.


Отправка

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

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 (ytd-iphone).

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

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

API поддерживает три метода аутентификации: AuthSub, OAuth и ClientLogin. ClientLogin – это самый простой способ, используемый для мобильных приложений и в ОС Android. Для получения маркеров аутентификации можно использовать класс , android.os.Handler)">AccountManager. Однако в приложениях, где мобильный клиент обращается к нескольким веб-службам, следует использовать открытый стандарт OAuth либо AuthSub, используемый в Google. Вы можете использовать это приложение в качестве примера реализации аутентификации OAuth на базе Android и GDataOAuthViewControllerTouch в качестве примера реализации на iPhone iOS.

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

Воспроизведение видео – это тоже очень важный вопрос. В данном случае платформа YouTube опять-таки предлагает несколько вариантов.

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

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