Posts Tagged ‘Video Upload’

Google Data API – YouTube Direct Upload

Thursday, May 7th, 2009
Autor: nuno.lourenco


Neste post vou exemplificar como efectuar o upload de um video para uma conta de um utilizador do YouTube, através da Google Data API. A ideia não é explicar exaustivamente como tudo funciona, mas sim apresentar esta funcionalidade.

A Google Data API está disponível em diferentes bibliotecas para uso em diferentes linguagens. Uma das quais é a biblioteca para a framework .NET, esta API possibilita aos programadores o desenvolvimento de módulos que efectuem operações sobre as diferentes tecnologias da Google (como por exemplo: Picasa, YouTube, Google Calendar, etc.). A documentação da biblioteca .NET está disponível em .NET Google Data API Documentation. Existem dois modos para realizar o upload de videos para o YouTube:

Deixo ao leitor a discussão de quando se deve usar ou outro. Dito isto, o interessante é mesmo verificar como efectuar o upload de um video para uma conta de um utilizador do YouTube.

Os videos submitidos para uma conta de utilizador no YouTube estão disponíveis publicamente (apenas os que o utilizador definir como públicos). Existem operações que necessitam de autenticação para serem aceites, estas operações necessitam de uma chave, que ficará associada à conta Google do utilizador, para efectuar a autenticação.

As operações são autenticadas usando um dos seguintes mecanismos:

Para efectuar qualquer tipo de operação autenticada, é necessário criar uma instância do tipo YouTubeRequestSettings, que define a informação de autenticação. A operação é efectuada através de uma instância do tipo YouTubeRequest, parameterizada com a informação de autenticação definida na instância criada do tipo YouTubeRequestSettings.

 1: youtuberequestsettings settings = new youtuberequestsettings(
 2:    youtubeapplicationname,
 3:    youtubeclientid,
 4:    youtubedeveloperkey,
 5:    youtubeaccountusername,
 6:    youtubeaccountpassword
 7: );
 8: youtuberequest request = new youtuberequest(settings);

apenas de chamar a atenção que neste modo directo é necessário ter em consideração para que a operação não termine por timeout, por exemplo: no caso de upload de ficheiros grandes:

 1: settings.timeout = 1000000;

o código seguinte exemplifica como efectuar o upload de um video:

 1: video newvideo = new video();
 2:  
 3: newvideo.title ="my test movie";
 4: newvideo.tags.add(new mediacategory("autos",  youtubenametable.categoryschema));
 5: newvideo.keywords = "cars, funny";
 6: newvideo.description = "my description";
 7: newvideo.youtubeentry.private = false;
 8: newvideo.tags.add(new mediacategory("mydevtag, anotherdevtag", youtubenametable.developertagschema));
 9:  
 10: newvideo.youtubeentry.location = new georsswhere(37, -122);
 11: // alternatively, you could just specify a descriptive string
 12: // newVideo.YouTubeEntry.setYouTubeExtension("location", "Mountain View, CA");
 13:  
 14: newvideo.youtubeentry.mediasource = new mediafilesource("c:\\file.mov", "video/quicktime");
 15: video createdvideo = request.upload(newvideo);

seguir o link developer’s Guide: .NET para mais informações.

abraços.


Better Tag Cloud