SEPIA-Framework / sepia-docs

Documentation and Wiki for SEPIA. Please post your questions and bug-reports here in the issues section! Thank you :-)
https://sepia-framework.github.io/
236 stars 16 forks source link

Music play ??? #213

Open cap-blackbeard opened 1 year ago

cap-blackbeard commented 1 year ago

Hallo Florian, ich frage mich, ob der Client Musik (Ordner auf dem Server) abspielen/ streamen kann? Internetradio funktioniert ja sehr gut. Ich habe einige Alben auf meinem NAS und würde den Client gerne als Musicplayer benutzen. Durch KODI sind alle Titel auch fein säuberlich (getagged???). Naja, zumindest hat jeder Titel: Künstler, Album, Genre, Jahr... hinterlegt. Richtig toll wäre so etwas wie: "Spiele bitte alle Lieder von Volbeat im Zufallsmodus." Oder: "Spiele alle Lieder aus dem Genre Rock im Zufallsmodus."

Grüße Christian

fquirin commented 1 year ago

Grundsätzlich ja, aber es gibt leider (noch) keine KODI API Integration. Dafür ist das Music-Player Widget vorgesehen, was bisher aber nur den "Demo" und Youtube unterstützt. Die Integration ist nicht besonders kompliziert, das das Widget selbst schon alle Daten wie "Artist", "Genre", "Song" bekommt und man diese dann nur an KODI schicken müsste (plus start, pause, next, volume, usw.), aber es erfordert Kenntnis der KODI API und ein Testsystem, was ich beides momentan nicht habe ^^

fquirin commented 1 year ago

Was eventuell gehen könnte wäre Playlist URLs von KODI via Teach-UI zu nutzen, falls sowas bei KODI möglich ist, also Streaming via URL.

cap-blackbeard commented 1 year ago

Ich dachte eher, komplett ohne KODI. Wie funktioniert das Music-Player Widget? Ich habe die Musik ja einfach nur als .mp3 auf der Platte. Was muss ich konfigurieren, dass Sepia auf meine Musik zugreifen kann?

fquirin commented 1 year ago

So ganz einfach ist das leider nicht. Man braucht mindestens eine dieser Voraussetzungen:

1) Webserver, der die Mp3 Dateien bereitstellt (das kann in SEPIA entweder der SEPIA Assist-Server oder der Nginx Proxy sein) 2) Ein Programm wie KODI, das Mp3s via (REST) API abspielen kann (die Beste Option) 3) Eine direkte Schnittstelle zum Betriebssystem, die Mp3s startet (nicht zu empfehlen, aber theoretisch möglich mit z.B. SEPIA Mesh-Node oder CLEXI)

In Fall 1 und 3 bräuchte man noch einige zusätzliche Funktionen, wie z.B. einen Index, der Song, Künstler etc. mit dem Dateinamen (und somit auch der potentiellen URL) verbindet.

Wie funktioniert das Music-Player Widget?

Das fungiert als Abstraktions-Layer zwischen SEPIA und einem beliebigen Musik Service. Im Falle von Youtube wurde früher z.B. der Input (Künstler, Song, Genre etc.) in eine Youtube search URL umgewandelt und dann die Ergebnis-Playlist geladen. Seitdem das von Google abgeschafft wurde, wird die URL vorher vom SEPIA Server über die Youtube API generiert und dann direkt ans Media-Player Widget weitergegeben. Zusätzlich wurde die Youtube Player API implementiert, für Befehle wie "stop, vor, zurück".

Der Demo-Player ist ganz einfach so aufgebaut:

Kurz gesagt, was du machen könntest wäre die Mp3s in einen Ordner zu legen, den der Nginx Proxy öffnen kann und dann eine Mp3 URL-Liste ins Widget per Hand einfügen. Damit es nicht in endlosen name-checks endet könnte man noch mehrere Mp3s zu Listen zusammenfügen und mit Stichworten versehen wie Genre oder Playlist name ("Spiele die Playlist mit Namen XY"). Ich glaube hier wird dann aber auch ziemlich schnell klar, warum man am Besten direkt die KODI API ansteuern würde, bzw. das ganze Name -> Mp3 mapping einem dedizierten Musik Tool überlässt (optimalerweise mit Datenbank und Such-API).

cap-blackbeard commented 1 year ago

Na, da hab ich ja mal wieder ne Frage gestellt. Jetzt landen wir schon wieder bei der KODI-Geschichte, ohne dass ich darüber nachgedacht habe. Meine KODI-Steuerung mittelts Teach-UI läuft noch gut.

2. Ein Programm wie KODI, das Mp3s via (REST) API abspielen kann (die Beste Option)

KODI selbst streamt eigentlich nicht (nur per Addon). Aber das onboard Web Interface (Chorus2) bietet die Möglichkeit die Filme oder Musik am KODI-Host abzuspielen oder lokal auf dem "PC" per Stream. Wobei für Filme halt immer der richtige Codec vorhanden sein muss. Der Codec ist ja bei Musik aber erstmal egal.

Im Web Interface gibt es auch einen API Browser der alle Kommandos auflistet.

fquirin commented 1 year ago

Meine KODI-Steuerung mittelts Teach-UI läuft noch gut.

😎

Dann müsste KODI auf dem Client installiert sein? Schafft der Raspi 3 das? Da bin ich mir nicht so sicher.

Wahrscheinlich etwas knapp 😅 , Musik spielen alleine müsste aber eigentlich nicht so Ressourcen hungrig sein. RAM ist vielleicht ein Problem. Vielleicht gibt es eine simplere Alternative 🤔, also ein Programm, was nur dafür gedacht ist ohne den ganzen UI Schnickschnack ^^. VLC kann das übrigens glaube ich auch. Auf Android kannst du die VLC App steuern mit SEPIA :-) (leider ist allerdings start, stop kaputt gerade in der neuesten Version 🤦). Die VLC API ist aber auch nicht integriert bisher.

Oder als docker container auf men Server installieren

Vielleicht eine gute Option, ja. Dieser Headless Container ist allerdings "deprecated" und wurde 2019 das letzte mal aktualisiert :-(

cap-blackbeard commented 1 year ago

Vielleicht eine gute Option, ja. Dieser Headless Container ist allerdings "deprecated" und wurde 2019 das letzte mal aktualisiert

Dann nehmen wir den? https://hub.docker.com/r/matthuisman/kodi-headless

fquirin commented 1 year ago

Vielleicht auch interessant: mStream

cap-blackbeard commented 1 year ago

Tatsächlich interessant. Aber Lösung mit einem KODI-Server wäre mir aus einem weiteren Grund am liebsten: Mit einem zentralen KODI-Server könnte ich meine zwei KODI-„Clients“ synchronisieren. Ich hätte die selben Wiedergabelisten, bei Serien den selben Stand der geschauten Episoden, selben Stand der Abspielzähler bei Musik und Videos (Rangliste ggf. = Beliebtheit???). Übrigens habe ich gestern den KODI-headless-Kontainer installiert. Fehlt noch etwas Feintuning und die Verknüpfung zu den Medien, aber läuft und die Web-UI ist auch schon da.

Am 17.11.2022 um 11:58 schrieb Florian Quirin @.***>:

 Vielleicht auch interessant: mStream

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.

fquirin commented 1 year ago

Ich wäre definitiv an einem KODI Media Player Widget für SEPIA interessiert. Vielleicht teste ich diesen Container auch mal :-)

[EDIT] Gerade zufällig gefunden ^^: https://magpi.raspberrypi.com/books/raspberry-pi-media-player

cap-blackbeard commented 1 year ago

Guck mal in Dein E-Mail-Postfach 😄