15 November 2011 API, GData, HowTo, YouTube Robert Muehsig

Vor sehr, sehr langer Zeit hatte ich drüber gebloggt, wie man mit den Google Data APIs auf YouTube zugreift. Da einige Zeit vergangen ist, gibt es natürlich auch neue Wege wie man nun die Daten abrufen kann. Google stellt für YouTube eine “einfachere” Schnittstelle zur Verfügung. Wer low-Level HTTP calls machen möchte, der kann dies natürlich auch machen.

Ziel: Ich möchte die Daten zu diesem YouTube Video – dabei habe ich die genaue URL bereits:

http://www.youtube.com/watch?v=ItqQ2EZziB8 (anders als mein alter Blogpost, wo ich Dinge gesucht habe)

Per NuGet die Bibliotheken runterladen

Für das komfortable Zugreifen eignet sich die Google Data APIs. Diese findet man auch auf NuGet.

Benötigt werden das Google.GData.Client und das Google.GData.YouTube Package:

image

Code

(da mein Testclient eine Konsolenanwendung ist und ich Funktionalität aus der System.Web Assembly benötige, habe ich es auf das volle .NET 4.0 Framework umgestellt.)

			Uri youTubeLink = new Uri("http://www.youtube.com/watch?v=ItqQ2EZziB8");
            var parameters = System.Web.HttpUtility.ParseQueryString(youTubeLink.Query);
            var videoId = parameters["v"];

            Uri youTubeApi = new Uri(string.Format("http://gdata.youtube.com/feeds/api/videos/{0}", videoId));
            YouTubeRequestSettings settings = new YouTubeRequestSettings(null, null);

            YouTubeRequest request = new YouTubeRequest(settings);
            var result = request.Retrieve<Video>(youTubeApi);

            Console.WriteLine(result.Title);
            Console.WriteLine(result.Description);
            Console.WriteLine(result.ViewCount);

            Console.ReadLine();

 

Erklärung

In Zeile 3 hole ich mir den “v”-Parameter für das Video. In Zeile 5 lege ich leere YouTubeRequestSettings an – damit kann ich alle öffentlichen Daten abrufen, allerdings keine Kommentare verfassen oder Videos hochladen (was eigentlich klar ist).

Danach wird über request.Retrieve das Video abgeholt. Danach stehen mir allerhand Meta Informationen zum Video zur Verfügung.

Keine “Retrieve”-Methode zu sehen?

Ich hatte beim Entwickeln ein seltsames Problem – unter dem Request-Objekt hatte ich keine Retrieve oder Get Methode. Ich bin mir nicht sicher woran es lag. Jedenfalls stammt die YouTubeRequest Klasse aus dem Google.YouTube Namespace – evtl. hatte ich eine andere Klasse erwischt.

Weitere Infos gibts es auf der YouTube API .NET Seite.

Ergebnis meines Codes

image

[ Code on Google Code ]


Written by Robert Muehsig

Software Developer - from Saxony, Germany - working on primedocs.io. Microsoft MVP & Web Geek.
Other Projects: KnowYourStack.com | ExpensiveMeeting | EinKofferVollerReisen.de