5 votes

Recherche sur YouTube avec l'API pour .NET

J'essaie d'utiliser l'API YouTube pour effectuer une recherche sur YouTube à l'aide d'un texte de recherche. L'exemple de code est le suivant.

using Google.YouTube;
using Google.GData.YouTube;
using Google.GData.Client;
using Google.GData.Extensions;

(..)

YouTubeQuery query = new YouTubeQuery(YouTubeQuery.DefaultVideoUri);

//order results by the number of views (most viewed first)
query.OrderBy = "viewCount";

// search for puppies and include restricted content in the search results
// query.SafeSearch could also be set to YouTubeQuery.SafeSearchValues.Moderate
query.Query = "puppy";
query.SafeSearch = YouTubeQuery.SafeSearchValues.None;

Feed<Video> videoFeed = request.Get<Video>(query);

printVideoFeed(videoFeed);

Mon problème est que query.Query , request y printVideoFeed n'existent pas - comment utiliser l'API pour effectuer une recherche sur YouTube ?

3voto

casperOne Points 49736

Bien que vous puissiez utiliser le Bibliothèque client .NET pour YouTube En ce qui concerne le protocole lui-même, je trouve que l'API .NET est en retard par rapport aux développements en cours (par exemple, je ne suis pas sûr que l'on puisse encore obtenir les informations "like/dislike" à partir de l'API).

Je vous recommande plutôt d'utiliser la fonction Protocole de l'API des données Il utilise HTTP et XML (en Format ATOM ) que .NET a des classes qui peuvent facilement utiliser/parser. La documentation est également très complète, et la composition de vos requêtes sera assez facile.

Dans votre exemple, l'URL de votre requête serait la suivante :

http://gdata.youtube.com/feeds/api/videos?v=2&orderby=viewCount&safeSearch=none&q=puppy

Ce qui renverrait ensuite un document XML structuré comme suit (bien que les données puissent être différentes, car je suppose que de nouvelles vidéos de chiots sont téléchargées en permanence) :

<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' 
    xmlns:app='http://www.w3.org/2007/app' 
    xmlns:media='http://search.yahoo.com/mrss/' 
    xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/'  
    xmlns:gd='http://schemas.google.com/g/2005' 
    xmlns:gml='http://www.opengis.net/gml'   
    xmlns:yt='http://gdata.youtube.com/schemas/2007'  
    xmlns:georss='http://www.georss.org/georss' 
    gd:etag='W/&quot;C0cBR38zfCp7I2A9WhdUEU4.&quot;'>
    <id>tag:youtube.com,2008:videos</id>
    <updated>2011-09-27T13:44:16.184Z</updated>
    <category scheme='http://schemas.google.com/g/2005#kind' 
        term='http://gdata.youtube.com/schemas/2007#video'/>
    <title>YouTube Videos matching query: puppy</title>
    <logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo>
    <link rel='alternate' type='text/html' href='http://www.youtube.com'/>
...
    <entry gd:etag='W/&quot;CEINR347eCp7I2A9WhdUEEQ.&quot;'>
        <id>tag:youtube.com,2008:video:vkeETehk8C8</id>
        <published>2007-05-21T02:02:00.000Z</published>
        <updated>2011-09-27T03:03:16.000Z</updated>
        <category scheme='http://schemas.google.com/g/2005#kind' 
            term='http://gdata.youtube.com/schemas/2007#video'/>
...

Vous pouvez également obtenir le XML et le placer dans les structures du client YouTube .NET pour un accès facile (même si ce n'est pas facile, c'est possible) si vous voulez capitaliser sur les modèles d'objets qu'ils ont déjà, mais descendre jusqu'au XML pour obtenir des valeurs que l'API n'expose pas.

0voto

John-Philip Points 607

Ce que vous recherchez se trouve dans le Chapitre sur l'authentification de leur guide .NET .

En principe, vous devez ajouter ceci au début :

YouTubeRequestSettings settings = new YouTubeRequestSettings("example app", clientID, developerKey);
YouTubeRequest request = new YouTubeRequest(settings);

En printVideoFeed est juste une démo pour imprimer toutes les méta-données, mais vous pouvez la trouver dans le guide également . Vous voudrez probablement faire quelque chose d'autre avec le Feed vous obtenez.

query.Query ne devrait pas manquer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X