YouTube Search App – Grundlagen #1

Dieser Artikel ist ein Gastbeitrag von Tobias Oliver, Informatik-Student in Karlsruhe und begeisterter App-Entwickler. In diesem Artikel soll es um die XML-Verarbeitung (Atom) gehen. Allerdings an einem spannenden Beispiel, nicht dem alt-bekannten RSS-Reader. Wir holen uns einen Video-Feed von YouTube, stellen ihn hübsch dar und wollen am Ende natürlich das Video sehen.

Damit es nicht zu viel wird, soll es in diesem Artikel erst einmal nur um die benötigten theoretischen Grundlagen rund um die YouTube Data API gehen.

Man kann auf 2 verschiedene Arten mit der API kommunizieren. Entweder ein Get-Request um Video-, Kommentare- und Playlistfeeds zu bekommen oder ein Post-Request um Favoriten, Playlisten oder andere Aktionen durchzuführen. Um einen Post durchzuführen, muss man allerdings registrierter Entwickler sein und man braucht die Genehmigung des Nutzers. Darum soll es an dieser Stelle erst einmal nicht gehen.

Wir wollen also nur einen Videofeed von der API bekommen. Dazu können wir zwischen JSON, Atom und RSS 2.0 wählen. Da die Community Features (Favoriten, Like, Kommentare,…) ausschließlich mit Atom-Feeds arbeiten, sollte man an dieser Stelle auch schon den Atom-Feed nutzen.

Um nun die API aufzurufen, reicht es z.B. aus diese Url aufzurufen:

Die Stamm-Url ist immer „http://gdata.youtube.com/feeds/api/“ und dann das was man haben möchte. Also „video“ für eine Suche, oder „users/<USERID>/uploads“ für die hochgeladenen Videos eines Nutzers. Dazu gibt es dann immer noch ein paar Parameter die notwendig oder optional sind. Bei der Suche beispielsweise ist der Suchbegriff („q=<QUERY>“) notwendig für den Feed und bei allen Videos ist der Versions-Parameter „v=2“ notwendig. Ansonsten wird die Version 1 der API genutzt (deprecated). Eine Übersicht über alle Feeds und deren Parameter findet man in der offiziellen „YouTube Data API Documentation“ unter

Um etwas mit den verschiedenen Feeds zu experimentieren und zu analysieren bietet sich die „Interactive YouTube Data API Demo“ an:

 

Schauen wir uns nun die Response der API an. Beim Aufruf der Url in einem Atom/RSS-Feed-fähigen Browser sieht man nur so etwas:

YouTube Data API Response im Browser

Doch es steckt viel mehr dahinter, als man im ersten Moment vielleicht denkt. Beschreibung, Kategorie, Likes, Dislikes, Views, Video-ID, Autor, Bewertung, Vorschaubilder, …. Kurz: Alle Informationen die man auf der YouTube-Seite eines Videos auch sieht. In kurzer Schreibweise sieht der Feed im Hintergrund etwa so aus:

Gehen wir noch eine Stufe tiefer und sehen uns an was im „entry“ steckt. Ebenfalls gekürzt:

Und damit haben wir schon alles was wir brauchen.

Für das Projekt brauchen wir folgende Werte:

  • Name des Autor („<name>…“ in Zeile 11)
  • Beschreibung des Videos („<media:description>…“ in Zeile 31)
  • URL des Vorschaubildes („<media:thumbnail … />“ in Zeile 38)
  • Titel des Videos („<media:title>…“ in Zeile 42)
  • Dauer in s („<yt:duration … />“ in Zeile 45)
  • Hochgeladen am („<yt:uploaded>…“ in Zeile 46)
  • Ganz wichtig: videoId („<yt:videoId>…“ in Zeile 48)
  • Likes, Dislikes, Views („<yt:statistics … />“ in Zeile 51 & 52)

Das ganze lässt sich sehr leicht in einer Klasse kapseln, z.B. „YouTubeDataItem“.

Die Form der Videofeeds sieht übrigens immer ganz genau so aus, also muss man nur einmal einen Algorithmus entwickeln der den Feed verarbeitet und sich nur noch um die URL kümmern.

Im nächsten Teil der Serie geht es dann um dieses „YouTubeDataItem“, die eigentliche Feedverarbeitung sowie die Gestaltung der App.

You may also like...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *