mediathekview / mediathekviewweb

Eine Weboberfläche als Alternative zum Java-Client
https://mediathekviewweb.de/
GNU General Public License v3.0
884 stars 67 forks source link

[Vorschlag] Integration von Livestreams #309

Open 59de44955ebd opened 4 days ago

59de44955ebd commented 4 days ago

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.

MrFly72 commented 3 days ago

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?

d-k-bo commented 3 days ago

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.

59de44955ebd commented 3 days ago

@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.

59de44955ebd commented 3 days ago

@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).