Wir bieten seit einigen Woche eine neue Programmierschnittstelle an. Das API (https://api.podcast.de) ermöglicht es, viele Funktionalitäten und Daten, die aus dem podcast.de Portal bekannt sind, in eigene Software und Webdienste zu integrieren.
Der Großteil der Funktionalität (Public actions/OAuth Actions) steht für jeden offen. Bis auf Weiteres gibt es auch keine Nutzungseinschränkung (unter Vorbehalt). Ein spezieller Teil (Private actions) kann nur mit einem eigens generierten Schlüssel genutzt werden. Details hierzu stehen direkt in der API-Dokumentation (hier).
Authentifizierung zum Schutz persönlicher Daten
Für den Zugriff auf persönliche Daten, wie Playlisten und Favoriten, ist eine Authentifizierung notwendig. Zum Start stand dafür nur HTTP Basic Auth über SSL zur Verfügung, wobei Benutzernamen und Passwort abgefragt werden. Für eigene Tests und Software, wo die Authentifizierungsdaten nicht in der Cloud, sondern nur auf persönlichen Devices, gespeichert werden, ist dieser Mechanismus mit der verschlüsselten Übertragung des Passwortes über SSL akzeptabel. Werden die Zugangsdaten allerdings in einem Fremdsystem hinterlegt, wird schnell der Ruf nach einem anderen Authentifizierungsmechanismus laut.
API mit OAuth-Unterstützung
Weit verbreitet ist das Autorisierungsframework oAuth, was wir jetzt in dieser Version (RFC 5849) unterstützen. Ich habe mich erst einmal gegen die Version 2.0 entschieden, weil die immer noch in der Entwicklung ist und sich fortlaufend ändert. Es gibt z.Z. den Draft 31!
Für den Zugriff per OAuth werden auf Entwicklerseite ein Consumer key und ein Consumer secret benötigt. Um diese zu erhalten, sind folgende Schritte notwendig:
- Registriere dich auf podcast.de, falls du noch kein Benutzerkonto bei uns hast
- Lege deine Anwendung hier an, um Consumer key and Consumer secret zu erhalten
- Hole dir einen Request token mit dem Consumer key und Consumer secret aus Schritt 2
Möglichkeiten mit dem API
Das gute an einer offenen Schnittstelle ist, dass vorab nicht absehbar ist, was kreative Köpfe damit anstellen. Die bereits implementierten Funktionen sollten einige Dinge ermöglichen. Grundlegend dreht sich alles um Podcasts (Kanäle, bzw. channels in Englisch) und deren Folgen (Episoden, bzw. shows).
Um Kanäle abzurufen, gibt es z.Z. drei Möglichkeiten im öffentlichen Teil des API:
- Suche
- Charts
- Abos
In den Details zu einem Kanal stehen die Daten zu den Folgen des Kanals, worüber wiederum mit der Folge gearbeitet werden kann.
Mit Folgen sind einige Dinge möglich:
- Folge kann in einer Playliste gespeichert und gelöscht werden
- Folge kann als Favorit markiert werden
- Die aktuelle Abspielposition einer Folge kann gespeichert und abgerufen werden
Viele Möglichkeiten bieten die Playlisten-Funktionen:
- Playliste erstellen
- Playliste benennen/umbenennen
- Playliste löschen
- Playlisten abrufen
- Folge in Playliste speichern
- Folge aus einer oder allen Playlisten entfernen
- Folge(n) in Playliste abrufen
Das API folgt strikt dem Programmierparadigma REST. Alle Aufrufe erfolgen verschlüsselt. Das einzige Ausgabeformat ist z.Z. JSON. Der einfachste Weg einen Test durchzuführen, ist eine öffentliche Funktion ohne Benutzerverknüpfung zu wählen, z.B. die Suche. Der genaue Aufbau der URLs wird in der Dokumentation für jeden Call erläutert.
Falls du Anregungen oder Fragen zum API hast, hinterlasse einen Kommentar oder schicke mir eine E-Mail an api [ät] podcast [punkt] de. Ich werde dir dann, so schnell es meine Zeit erlaubt, antworten.
Also ich finde die Api auch sehr praktisch. Was man z.B. damit anstellen kann zeigt car2go hier hat man Zugriff auf die Api um die App zu nutzen, welche einem ermöglicht fahrzeuge zu finden und zu buchen. Tolle Sache.