mediathekview/mediathekviewweb

[Vorschlag] Integration von Livestreams

Opened this issue · 5 comments

Hey, das hier ist definitiv kein "Issue", sondern nur eine Idee, die mir grade kam, als ich diesen minimalen "Online-Player für Livestreams deutscher TV-Sender" gebastelt habe:
https://59de44955ebd.github.io/tv-player/
Er besteht nur aus ein paar Zeilen Code, läuft komplett im Frontend (Browser-JS) und holt sich die HLS-Livestream-URLs per fetch über die MediathekViewWeb-API. Ein entsprechender Player könnte vielleicht ja auch direkt in die MediathekViewWeb-Seite integriert werden, z.B. als neuer Menüeintrag "Livestreams" oben rechts im Menü? Nur so als Gimmick, server-seitig würde das wie gesagt nichts kosten.

Cooles Projekt und ich fände das auch cool.
Sollte das Dropdown Qualität funktionieren? Zumindest auf dem
iPhone scheint er keine auswählen zu lassen?

Mir war überhaupt nicht bewusst, dass in der MediathekView-Datenbank auch Livestreams gelistet sind. Zapp nutzt dafür ja eine eigene API, die aber zusätzlich auch aktuelle Programminformation zur Verfügung stellt.

@MrFly72 Bin kein Experte für HLS, aber ich verstehe es so, dass per default der Browser/das System eine bestimmte Qualität je nach aktueller Internetzugangsgeschwindigkeit aussucht. Im Qualitäts-Dropdown wird immer die tatsächlich aktuell verwendete Qualität angezeigt, und sie kann auch ohne User-Interaktion mittendrin mal wechseln. Wenn ein User aber selbst eine bestimmte Qualität aussucht, wird versucht, diese zu forcieren, indem alle anderen deaktiviert und nur diese aktiviert wird, und in Desktop-Chrome und Firefox scheint das auch zu funktionieren. Wenn es in iOS nicht funktioniert, bedeutet das wohl, dass sich dort das System einfach nicht reinreden lässt und immer selbst die sinnvollste Qualität aussucht. Inzwischen habe ich aber sowieso noch ein bisschen responsive CSS zugefügt, und bei kleinen Bildschirmgrößen wird das Dropdown jetzt sowieso ausgeblendet, dort gibt es dann nur die Sender.

@d-k-bo Danke für den Hinweis, habe mir die Zapp-API grade mal angeschaut, sie ist einfach gehalten und hat wohl nur 2 Endpoints:

1.) Liste aller Channels/Livestreams:
https://api.zapp.mediathekview.de/v1/channelInfoList

2.) Aktuell laufende Sendung eines bestimmten Channels (am Beispiel zdf):
https://api.zapp.mediathekview.de/v1/shows/zdf

Es wäre eigtl. ja cool, das in den kleinen Online-Player zu integrieren, zB als kleines (i)-Overlay-Icon, und bei Klick auf dieses wird dann immer die aktuell laufende Sendung des aktuell gewählten Programms in einem Overlay-Div angezeigt. Aber leider geht das nicht, da - anders als bei der MediathekViewWeb-API - bei der Zapp-API ein "Access-Control-Allow-Origin: *" Header fehlt, sie kann daher leider nicht direkt per Browser-JS aufgerufen werden (um CORS zu umgehen bräuchte man zusätzlich noch ein serverseitiges Proxy-Script, z.B. PHP, Node oder whatever).

bei der Zapp-API ein "Access-Control-Allow-Origin: *" Header fehlt

Mit der aktuellen Version der API sollte der Header mit gesendet werden und die Antworten daher in Javascript weiter verarbeitet werden können.