Samsung SmartTV App - Vorschlag: API

Hallo,

nachdem ja nun das alte Abo-Modell abgeschafft wurde, und damit meine Zweier-Combo (Fernsehkritik-TV & Pressesch(l)au) nur noch minimal günstiger wäre als ein Komplettabo, habe ich auf ein solches hochgerüstet.

Jetzt hatte ich das Problem, dass ich plötzlich „einen Haufen Zeug“ zum Ansehen habe, so dass mein bisheriger Ansatz, die einzelnen Folgen am PC herunterzuladen und von dort aus per WLAN auf meinen TV zu streamen, ziemlich unübersichtlich und v.a. zeitaufwändig wird (am PC runterladen -> am TV erst mal per Fernbedienung hinnavigieren zum richtigen Ordner -> richtiges File auswählen -> anschauen -> wieder vom PC löschen).

Ich habe mir übers Wochenende daher eine App für meinen (Samsung 2012er?) Smart-TV gebaut, damit ich dort bequem durch die neuesten Videos oder die einzelnen Magazine springen und einfach das Video, das ich sehen möchte, auswählen und ansehen kann.

Funktioniert soweit auch ganz gut, aber beim Entwickeln ist mir doch eines aufgefallen:

Ein fertig nutzbares Backend wäre sehr praktisch :slight_smile: Im Moment behelfe ich mir, indem ich mein eigenes (REST-)Backend auf meinem Internet-Webserver zusammengeschustert habe; dieses nimmt HTTPS-Anfragen mit den massengeschmack-Login-Daten im Basic Auth entgegen, fragt damit dann bei den massengeschmack.tv-Servern nach den notwendigen Daten (via xmbc-Plugin-„API“ und den jeweiligen RSS-Feeds), bereitet diese auf und sendet sie an den Aufrufer (im JSON-Format mit Access-Control-Allow-Origin: „*“) zurück.

Im Grunde sind für so eine Basis-App v.a. zwei Informationen notwendig (die daher auch von meinem Bastel-Backend geliefert werden):

  1. Welche Magazine hat der User im Abo?
  2. Welche Videos (inkl. Metadaten) gibs zu einem bestimmten abonnierten Magazin?

Mehr Infos/Einstellmöglichkeiten wären natürlich toll :slight_smile:

Da dieses Backend dann letzten Endes für alle möglichen Anwendungsfälle (Website, mobile App z.B. für Android oder iOS, SmartTV-App, Windows-8-App, …) nutzbar wäre, möchte ich an dieser Stelle mal den Vorschlag äußern, dass sowas offiziell seitens massengeschmack angeboten werden könnte. Damit könnte dann jeder, dem der Sinn danach steht, ne App o.ä. entwickeln (Wunsch und Bedarf scheinen ja lt. Forum durchaus vorhanden zu sein), ohne jedesmal diesen Umweg über undokumentierte oder für den Anwendungsfall holprige Schnittstellen gehen zu müssen. Die Basisfunktionalität (s.o.) sollte ja auch sehr schnell und einfach umzusetzen sein, da sie im Grunde eh schon implementiert sind.

… Meinungen? :wink:

[QUOTE=simmscmi;400909]1) Welche Magazine hat der User im Abo?[/QUOTE]
http://massengeschmack.tv/api/?action=listSubscriptionsID

wget "http://massengeschmack.tv/api/?action=listSubscriptionsID" --http-user=xxx --http-password=xxx

Ich weiß, das hab’ ich ja in meinen „API-Proxy“ integriert (per https, ist immerhin nur Basic Auth mit Klartext-Passwörtern) - aber das müsste man halt mal zu ner kompletten Schnittstelle ausbauen und dokumentieren, dann könnte man das zukunftssicher für alle Anwendungen nutzen :slight_smile:

Achso, sry … falsch verstanden :mrgreen:.

      • Aktualisiert - - -

Eine Frage haette ich da aber noch: was genau meinst du mit einer “kompletten Schnittstelle”? Meinst du so etwas in die Richtung, dass man die API erweitert mit zusaetzlicher Funktionalitaet, sie besser (und offiziell) dokumentiert und man beispielsweise mit API keys statt Passwoertern arbeitet? Also quasi einmal ordentlich ueberarbeiten?

Ja genau, einfach mal die Grundfunktionen sauber dokumentiert und an einer Stelle (statt verteilt) offen anbieten; API-Keys scheinen mir im Moment “Kanonen auf Spatzen” zu sein, die Username/Passwort-Basic Auth mit https ist recht einfach clientseitig umzusetzen find

Im Moment muss man sich per API (wie von dir auch genannt) die Subscriptions (ein einfaches Integer-Array) holen, während man wiederum auf die Videos nur umständlich per RSS-feed heranzukommen scheint; das alles auch ohne CORS-HTTP-Header, so dass man’s im Webumfeld aus Sicherheitsgründen nicht nutzen kann (und sowieso nen Proxy wie von mir gebastelt hinstellen muss, was für Multi-User-Einsatz eigentlich ja mal gar nicht geht, weil ein Dritter so an Username und Passwort kommt). Obendrein muss man als App-Programmierer Annahmen treffen, die sich aber seitens massengeschmack jederzeit ändern können (z.B. “wo liegen die Teaser-Bilder”, oder “welche IDs gehören zu welchem Format”, oder “wie bekomme ich SD und HD-Feeds”), was auch eher ein Glücksspiel ist auf lange Sicht.

Würde man das alles zentral in ne API packen, wär das ein guter Startpunkt für alle möglichen Anwendungen (z.B. eben das XBMC-Plugin, oder für den Win8-App-Programmierer aus dem anderen Thread - oder für ne Android/Chromecast-App, die dann auch nur noch vergleichsweise geringer Aufwand wäre, wenn die “Basisdaten” zentral vom massengeschmack-Server kämen).

Oh da hast du dir eine coole App gebastelt :slight_smile: Mein Samsung-Fernseher hat ein ähnliches Alter, ich hätte Spaß das darauf zu benutzen.
Entsprechend befürworte ich die API für Bastler :wink:

Ich muss den Einstellungs-Dialog für die MG-Zugangsdaten noch überarbeiten, denn den kann man im Moment nur mit ner am TV angeschlossenen Tastatur/Maus nutzen - aber ich hab’ da so eine Funk-Medien-Minitastatur, die eh dran hängt, so dass ich da keinen Handlungsbedarf hatte. Sobald er auch mit der Fernbedienung nutzbar ist, kann ich dir ja alles Notwendige zukommen lassen, wenn du magst?

Im Grunde könnte man das auch in den Samsung-App"store" stellen, aber da müsste ich mir erst mal bei denen nen Account machen faul, und eigentlich wäre das eher was für Alsterfilm als für so nen „unbekannten Dritten“ wie mich :wink: (der sich dafür erst mal den Segen von Alsterfilm einholen würde).

So, ich hab’ den Einstellungs-Dialog der App überarbeitet; mangels Bereitstellung im offiziellen Samsung AppStore musst du zum ausprobieren den Developer-Account zusätzlich am TV einrichten (ist non-destruktiv), damit du die IP-Adresse einstellen kannst, von wo aus Apps synchronisiert werden; müsste in etwa wie dort beschrieben funktionieren:

http://www.ullrich.es/userappstore-app-auswahl-und-installation/userapp_synchronisierung/

Als IP-Adresse (die man beim Punkt „IP Settings“ in den jeweiligen Beschreibungen eingeben soll) die 188.40.55.100 verwenden, dann sollte er sich die App ziehen (ca. 30 KB) und du kannst sie ganz normal starten/rumschieben/etc. Hat zumindest bei mir im Test vorhin problemlos geklappt…

Falls du’s ausprobierst würd’ ich mich über kurzes Feedback freuen :slight_smile:

Der Vollständigkeit halber hier noch von meinem Server der simple Proxy-Code, welcher den App(s) eine simple API bietet und den Clientcode deutlich vereinfacht/vereinheitlicht/überhaupt erst ermöglicht: https://thegremium.org/~doc/massengeschmack/massengeschmack-api-proxy.tgz

Wenn man die Daten direkt aus der Datenbank bekommt, statt wie im Moment per getrennten Datenquellen, die erst noch per Webaufruf geladen und danach verarbeitet werden müssen, sollte es sogar noch einfacher umzusetzen sein (und performanter laufen). Dafür könnte man dann die Funktionalität erweitern :slight_smile: [z.B. Gesamtanzahl Videos im Magazin; Paging; weitere Metadaten]

Update: Ich habe dann mal Sakura ins Magazin-Auswahl-Menü der Samsung-App integriert (in der “Neueste Videos”-Übersicht war die Folge 1 natürlich schon aufgeführt).

Hallo simmscmi,

ich habe jetzt auch einen Samsung SmartTV und stelle mich vermutlich gerade megadoof an. Ich würde deine App auch gerne testen, aber so ganz blicke ich noch nicht durch, wie ich die App auf das TV bekomme. Du hast ja oben ulango verlinkt, aber die dort beschrieben Schritte kann ich nicht gehen, weil ich mich nicht als develop anmelden kann, da immer eine Mail-Adresse verlangt wird anstatt eines einfachen Benutzernamens.

Vermutlich mache ich irgendwas gnadenlos falsch, aber ich hab das Teil erst seit gestern und blicke noch nicht wirklich durch. Hast du eine kleine Hilfestellung für mich?

@simmscmi

Du wirst Deine App wohl als inoffizielle App im Samsung-Store veröffentlichen müssen.
So wie ich meine FireTV-App im Amazon-Store - die es im Moment dort aber noch nicht gibt.

Unabhängig vom ganzen Rest bin ich mir jetzt im Moment gar nicht mehr sicher, ob ich die App noch wie beschrieben im öffentlichen Zugriff habe, sprich: dass sie jeder einfach so installieren kann.

Für diese SmartTV-App hatte ich mir ein eigenes Backend gebastelt, was aber bedeutet, dass die Zugangsdaten für massengeschmack an meinen Server geschickt werden - für mich allein kein Problem, aber IMHO nichts, das die ganze Welt machen sollte :slight_smile: [die sollte die Zugangsdaten für Dienste nur dem Betreiber des Dienstes übermitteln, nicht irgendwelchen dahergelaufenen Dritten wie mir]

Oder anders formuliert: „Folge nicht dem dunklen Pfad!“ (den ich oben beschrieben habe) :wink: - vielleicht hilft dir zwischenzeitlich die Android-App weiter, mit denen du die massengeschmack-Videos auf den TV senden kannst?

Von daher hat ädnän schon recht, wenn er schreibt:

Das hatte ich mir auch schon überlegt, aber (IIRC) zum einen müsste das Datenhandling trotzdem über meinen Server laufen, da die massengeschmack-Dienste nicht von Haus aus mit Webapplikationstechniken harmonieren (daher ja meine Frage nach einem offiziellen API, um diesen Missstand mal zu beheben), zum anderen kann man in dem Samsung Store zunächst nur Applikationen für die USA veröffentlichen - um für das deutsche mgtv-Zielpublikum eine App anbieten zu können im Samsung Store, müsste ich mich erst mal bei Samsung Deutschland als „Partner“ bewerben und von denen akzeptiert werden.

Da bis gerade eben niemand Interesse an der SmartTV-App hatte (und eigentlich der Unterbau zuvor noch geändert werden müsste, was nicht direkt in meiner Hand liegt), hatte ich das gelassen; zumal ja auch eine Fernsteuerung per Android-App möglich ist, so dass man da wenigstens einen Workaround hat.

Ich mach’s im Moment über das iPad und Chromecast bzw. demnächst AppleTV, das ist auch ok, aber eine interne Lösung hätte Charme.

Allerdings kann ich MG da auch verstehen - die haben gerade andere Prioritäten, als sich um solche Bonus-Features zu kümmern. Ist zwar schade (besonders für dich, da du dir diese Mühe gemacht hast), aber damit müssen wir jetzt leben. Danke dir für deine Antwort.

Ich will ja niemanden etwas unterstellen: Aber auch wenn ich meine Login-Daten „nur“ auf einen Client lasse, wer versichert mir denn, dass dieser Client die Login-Daten nicht woanders hinschickt. Ist vermutlich recht unrealistisch (was will man schon groß Böses mit den Login-Daten anstellen), aber eine vernünftige Authentifizierung über OAuth wäre mir schon lieber.

Ansonsten wäre eine richtige API schon was feines, damit solche Apps sich besser verbreiten können und „Zulunftsicher“ gestaltet werden können… Ist halt wieder eine Frage wie hoch da der Aufwand ist :wink:

[QUOTE=t-dog;416468]Ansonsten wäre eine richtige API schon was feines, damit solche Apps sich besser verbreiten können und “Zulunftsicher” gestaltet werden können… Ist halt wieder eine Frage wie hoch da der Aufwand ist ;)[/QUOTE]

Da der Webmaster 364 Tage im Jahr im Prüfungsstress ist, wird das sowieso nichts :mrgreen:

Ja, das wäre schon nicht schlecht, wenns das auch gäbe - aber ich glaube, dass eine Umsetzung/Bereitstellung überhaupt erst realistisch wird, wenn der Aufwand seitens Alsterfilm möglichst gering ist (die plagen schließlich andere Sorgen als ein API für Drittanbieter bereit zu stellen).

Die Sicherheits-Situation würde dadurch ja nicht schlechter, wenn man das bisherige Schema der HTTP-Auth erst mal übernimmt; später, wenn mehr Ressourcen übrig sind, kann man das ja z.B. um OAuth erweitern, das muss sich alles ja nicht gegenseitig ausschließen.

Das mit der Zukunftssicherheit wird auch interessant, wenn sich jetzt dann das Modell in Richtung Netflix ändert, und dann vielleicht so „Mini-Magazine“ über 5 Folgen oder so hinzukommen, oder auch bzgl. Live-Streams - mal sehen, was wir App-Programmierer dann plötzlich alles anpassen müssen. Ich hoffe zwar: nur wenig, aber wer weiß das jetzt schon :frowning:

Und auch da die Frage nach der Zukunftssicherheit: Der ist ja, wenn ich das letztens bei MG Direkt richtig verstanden habe, demnächst mit dem Studium fertig - ob er dann noch für Alsterfilm weiterarbeiten kann/will/darf?

Ich muss mich hier auch mal zur Wort melden:
Wie bereits erkannt wurde, der Webmaster ist ein Fall für die Tonne. Es befinden sich einige Schönheitsfehler auf der Seite. So ist das Massengeschmack Logo oben links noch immer in bunten Farben anstatt in orange/grau (btw: hat er zu diesem Zeitpunkt Channel 21 geschaut?!). Und kostet das Komplettpaket nun 4,99€ oder 6,99€. Das ist die Frage… Jedenfalls geben sich einige Forenuser richtig viel Mühe, die nicht mal 1% wertgeschätzt werden. Es werden Apps programmiert, Wiki erstellt, aber scheint von Alsterfilm niemand so wirklich zu interessieren. Wäre doch eine perfekte Werbestrategie, man könnte wunderbare Trailer erstellen, dass man solche Formate auch am TV ansehen kann und eben nicht nur am PC. Was macht denn Clipfish und Myvideo, sie haben sich von der Youtube Kopie verabschiedet und setzen nun auf Musik und Filme/Serien mit der Einbindung ans TV. Aber die Zeit für solche Trailer bleibt ja nicht, denn man spielt ja lieber ein Brettspiel und behauptet dann, man hätte soooo viel Zeit. Aufwachen Holger.

[QUOTE=schmatzler;416470]Da der Webmaster 364 Tage im Jahr im Prüfungsstress ist, wird das sowieso nichts :mrgreen:[/QUOTE]

2016 ist ein Schaltjahr, da hat er dann doppelt so viel Zeit für die MG-Seite :voegsm:

Zum Relaunch ist eine richtige API und eine Seite für die Community-Projekte angestrebt.