Google Data API – YouTube Direct Upload
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:
- Modo Direct uploading
- Modo Browser-based uploading
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:
- AuthSub proxy authentication;
- ClientLogin username/password authentication
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.
autor: nuno.lourenco
Tags: Google, Video Upload, YouTube