Recursos para desenvolvimento de aplicativos para celular com o YouTube

Jarek Wilkiewicz, Equipe de API do YouTube
Setembro de 2010

Introdução

Os desenvolvedores que desejam incorporar gravação, envio, compartilhamento e reprodução de vídeo em seus aplicativos para celular podem usar a plataforma do YouTube para simplificar o trabalho e aprimorar seus produtos finais. Este artigo destaca algumas das tecnologias que podem ser usadas nos seus aplicativos.

Gravação

O processo de gravação de vídeo é realizado usando a plataforma para celular subjacente. Por exemplo, seu aplicativo pode disparar uma intenção de VIDEO_CAPTURE no Android:

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

ou iniciar o UIImagePickerController no 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];

Para obter opções de gravação mais avançadas no iOS 4 e versões posteriores, você também pode usar a classe AVCaptureSession da AV Foundation Framework.  

Envio

Seu aplicativo pode enviar um vídeo e seus metadados ao YouTube enviando um e-mail para um endereço de e-mail especial associado à conta do usuário do YouTube ou usando um dos três métodos de API: envio com base no navegador, envio direto ou envio direto recuperável. Para aplicativos para celular, o envio direto recuperável é a opção mais confiável, pois permite que um aplicativo se recupere de falhas na conectividade e retome um envio do ponto onde falhou. O protocolo de envio recuperável do YouTube aproveita o mecanismo HTTP 1.1 Content-Range/Range para transferir vídeos em partes e, caso ocorra uma interrupção, identificar o número de bytes transferidos.

Embora o conteúdo real do vídeo seja o componente mais importante em um envio, os metadados de vídeo são uma parte essencial do processo, pois esses metadados permitem que os usuários localizem vídeos na pesquisa e também permitem outros recursos descritos posteriormente neste artigo. Além dos elementos comuns como categoria, descrição e título, os aplicativos para celular podem incluir facilmente dados de geolocalização do dispositivo GPS do telefone. Esses dados permitem que você forneça uma pesquisa com base no local ou marque os locais do vídeo em um mapa. Para aplicativos de envio de vídeo que querem minimizar a interação do usuário, há a opção de envios sem metadados. Encontre mais informações sobre isso nesta palestra do Google I/O.


Compartilhamento

Aplicativo YouTube Direct para Android
Figura 1: Aplicativo YouTube Direct para Android

A API de dados do YouTube também fornece ótimas funcionalidades para atividades de compartilhamento de vídeo. Assim como em outras APIs de dados do Google, a API do YouTube usa um protocolo inspirado em REST que suporta representações de dados Atom, JSON e JSON-C. As respostas compactas da API do JSON-C são especialmente adequadas aos ambientes para celular, que apresentam frequentemente restrições de recursos. A API expõe a funcionalidade flexível de pesquisa de vídeo; a capacidade de comentar e avaliar vídeos; o acesso às inscrições, aos vídeos favoritos, às listas de reprodução e a um mecanismo de recomendação; e um host de recursos de comunidade que ajudam você a integrar o vídeo em aplicativos sociais.

Todas essas funções podem ser incorporadas em um aplicativo para celular usando bibliotecas-cliente específicas de linguagem de programação ou interagindo diretamente com os servidores de API do YouTube sobre HTTP. O método anterior simplifica grande parte da complexidade do protocolo à custa de uma base maior de aplicativo. O último método permite que você crie manualmente interações com os serviços da API específica usada pelo seu aplicativo. No final das contas, a opção é específica ao aplicativo. Para começar, consulte a biblioteca Java de dados do Google para Android ou a biblioteca Objective-C de dados do Google para o iPhone. Os aplicativos de vídeo para celular mais complexos podem se beneficiar da integração com um servidor back-end. Um desses aplicativos é o YouTube Direct (Figura 1), que apresenta código de servidor de Código aberto pré-configurado para executar no Google App Engine, além de implementações do cliente do envio do vídeo de referência para o Android (ytd-android, mostrada na Figura 1) e o iPhone (ytd-iphone).

Segurança

Segurança e autenticação também são aspectos importantes do desenvolvimento de aplicativos para celular do YouTube. Embora algumas operações de API estejam disponíveis para clientes não autenticados, outras solicitações exigem a autorização, que é realizada por meio de um token de autenticação enviado na solicitação de API. Essas operações incluem envios de vídeo, além de quaisquer outras operações que modifiquem ou gravem dados ou que acessem informações privadas do usuário.

A API suporta três métodos de autenticação: AuthSub, OAuth e ClientLogin. ClientLogin é o método mais simples de se usar para aplicativos para celular e no Android é possível usar o , android.os.Handler)">AccountManager para obter facilmente os tokens de autenticação. No entanto, os aplicativos que integram um cliente para celular e vários back-ends da web devem considerar o uso do OAuth, que é preferido por ser um padrão aberto, ou o AuthSub, que é específico do Google. Consulte este aplicativo para obter um exemplo de autenticação OAuth no Android, e GDataOAuthViewControllerTouch para obter um exemplo de implementação no iPhone iOS.  

Reprodução

E, por fim, os vídeos existem para que as pessoas possam assisti-los. Novamente, a plataforma do YouTube oferece várias opções.

  • A maioria das plataformas modernas para celular vem agrupadas com um player do YouTube, possibilitando uma integração rápida. Caso sua plataforma não inclua um player do YouTube, faça odownload de um. Um aplicativo para celular inicia um player usando um serviço de plataforma. Por exemplo, no Android, um aplicativo usa a intenção ACTION_VIEW e no iPhone um aplicativo pode iniciar o player usando o método openURL da classe UIApplication abordado nesta postagem do blog.
  • O site para celular do YouTube, http://m.youtube.com, permite que você integre facilmente a reprodução de vídeo a um aplicativo da web.
  • Para obter um controle maior da experiência de reprodução, os aplicativos nas plataformas compatíveis com Adobe Flash podem estender o player AS3 do YouTube, que oferece uma reprodução com qualidade superior.

Envie quaisquer dúvidas e comentários sobre este artigo ou outras sugestões para desenvolvedores que criam aplicativos para celular para o YouTube no Fórum de desenvolvedores da API do YouTube.