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.
Gravando
O processo de gravação de vídeo é realizado usando a plataforma para celular subjacente. Por exemplo, o app pode disparar uma intent VIDEO_CAPTURE no Android:
Intent i = new Intent(); i.setAction(MediaStore.VIDEO_CAPTURE); startActivityForResult(i, CAPTURE_RETURN);
ou inicie 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 opções de gravação mais avançadas no iOS 4 e posteriores, você também pode usar a classe AVCaptureSession do AV Foundation Framework.
Fazendo upload
Seu aplicativo pode enviar um vídeo e seus metadados para o YouTube enviando um e-mail para um endereço de e-mail especial associado à conta do YouTube do usuário ou usando um destes três métodos de API: envio pelo navegador, envio direto ou envio retomável direto. Para aplicativos para dispositivos móveis, o upload retomável direto é a opção mais confiável, já que permite que um aplicativo se recupere de falhas de conectividade e retome um upload a partir do ponto de falha. O protocolo de envio interrompível do YouTube usa o mecanismo Content-Range/Range do HTTP 1.1 para transferir vídeos em partes e, em caso de 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 de elementos comuns, como categoria, descrição e título, os aplicativos para dispositivos móveis podem incluir facilmente dados de geolocalização do dispositivo GPS do smartphone. 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 buscam minimizar a interação do usuário, os uploads sem metadados são outra opção. Mais informações sobre isso estão disponíveis nesta palestra do Google I/O.
Compartilhamento
A API YouTube Data também oferece recursos avançados para atividades de compartilhamento de vídeo. Como outras APIs do Google Data, a API YouTube usa um protocolo inspirado em REST que oferece suporte a 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 a um aplicativo para dispositivos móveis por meio de bibliotecas de cliente específicas de uma linguagem de programação ou por meio da interação direta com os servidores de API do YouTube por 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 GData para Android ou a biblioteca GData do Objective-C 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 tem um código de servidor de código aberto pré-configurado para execução no Google App Engine, além de implementações de cliente de referência de envio de vídeos para Android (ytd-android, mostrado na Figura 1) e iPhone (ytd-iphone). |
![]() Figura 1: aplicativo YouTube Direct para Android |
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 oferece suporte a três métodos de autenticação: AuthSub, OAuth e ClientLogin. O método ClientLogin é o mais simples para aplicativos para dispositivos móveis, e o AccountManager do Android pode ser usado para receber tokens de autenticação com facilidade. 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 implementação 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. Se sua plataforma não inclui um player do YouTube, faça o download de um. Um aplicativo para celular inicia um player usando um serviço de plataforma. Por exemplo, no Android, um aplicativo usa a intent ACTION_VIEW, e no iPhone, um aplicativo pode iniciar o player usando o método
openURL
da classeUIApplication
, conforme abordado nesta postagem do blog. - O site para dispositivos móveis do YouTube, http://m.youtube.com, permite integrar facilmente a reprodução de vídeo a um aplicativo da Web.
- Para um controle mais preciso da experiência de reprodução, os aplicativos em plataformas compatíveis com Adobe Flash podem estender o player AS3 do YouTube, que oferece uma qualidade de reprodução superior.