Jellyfin
Musik Streaming Server zum selber hosten. Open Source und komplett kostenlos. Kann Musik, Videos, Serien und Bücher bereitstellen. Die Dateien können auch online bearbeitet werden. Multi-User Support, es können Gruppen gesteuert werden, Sonos Unterstützung, Streaming per DLNA. Sehr umfangreicher Server mit vielen Möglichkeiten.
- Installation
- Einblicke
- Administrator Übersicht
- Streaming
- Bibliotheken
- Benutzerverwaltung
- Schnellverbindung
- Gruppen
- Metadaten-Manager
- Lautstärke anpassen
Installation
Die Installation ist mit Docker Compose ruck zuck erledigt. Es wird nur ein Container benötigt. Da DLNA-Server immer etwas schwierig sind, empfiehlt die offizielle Dokumentation das verwenden des Netzwerk-Modus host.
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
# user: uid:gid
network_mode: 'host'
volumes:
- /pfad/zur/jellyfin/config:/config
- /pfad/zum/jellyfin/cache:/cache
- /pfad/zur/beschreibbaren/jellyfin/media:/media
- /pfad/zur/nur/lesbaren/musik/:/musik:ro
restart: 'unless-stopped'
# Optional - alternative address used for autodiscovery
environment:
- JELLYFIN_PublishedServerUrl=http://example.com
# Optional - may be necessary for docker healthcheck to pass if running in host network mode
extra_hosts:
- "host.docker.internal:host-gateway"
Für ein einfaches Home Set-Up reicht es die Volumes anzupassen, sodass die absoluten Pfade zur Verzeichnisstruktur des Servers passen. Außerdem können die beiden Zeilen für environment auskommentiert werden.
Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d
oder sudo docker compose up -d
(keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml
zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.
Anschließend ist die Web-Oberfläche über http://Server-IP:8096 erreichbar.
Einblicke
Einige Einblicke in Jellyfin, ein paar Screenshots zeigen und Funktionen kurz vorstellen.
Administrator Übersicht
Die Übersicht bietet, wie der Name schon sagt, eine Übersicht über den Server, aktive Geräte (des Users), die letzten Aktivitäten (wie z. B. Remotesteuerungen), Pfade des Servers. Einige Einblicke sind nur für Admins sichtbar, im folgenden Screenshot ist die Ansicht eines Admins zu sehen.
Streaming
Sofern Jellyfin im lokalen Netzwerk als Server installiert ist, z. B. auf einem Raspberry Pi mittels Docker (), kann von jedem Gerät im LAN mit einem Browser auf die Seite zugegriffen werden. Nach dem erfolgreichen Login kann dann direkt vom Server gestreamt werden. Auch auf Mobulilgeräten kann der Browser genutzt werden, die Seite ist vollständig responsiv. Wer lieber Apps nutzt, kann auch im Play Store oder Apple Store nach Jellyfin suchen, in beiden gibt es passende Apps zur Auswahl. Egal welcher Weg gewählt wird, die Songs lassen sich nicht nur auf dem gerade genutzten Gerät anhören, sondern können auch dazu genutzt werden, um ein anderes Gerät zu steuern. Hier kann entweder eine andere Browser Session oder eine Musikanlage wie z. B. Sonos angesteuert werden. Die Musik wird wie bei Spotify direkt vom Server zum gewählten Gerät gestream, d. h. die Musik spielt weiter, auch wenn die App oder der Browser geschlossen werden.
Um auf ein Gerät zu stream kann einfach oben rechts das Streaming-Icon ausgewählt werden:
Daraufhin werden die im Netzwerk gefunden Geräte und aktiven Browser Sitzungen angezeigt. Um das Streaming zu starten, einfach eines der Geräte anklicken.
Sollte das Gerät bereits vom Server streamen, so wird die Sitzung fortgesetzt und mit dem aktuellen Browser oder der App kann die bereits bestehende Wiedergabe auf dem Gerät gesteuert werden. In diesem Fall lief bereits ein Stream und im Browser wurder der Stream der Sonos Box fortgesetzt.
Bibliotheken
Es können in den Einstellungen im Browser einfach neue Bibliotheken hinzugefügt werden. Die Bibliotheken sind nicht mit Verzeichnissen zu verwechseln, denn jede Bibliothek kann mehrere Quellen, wie z. B. lokale Verzeichnisse haben. Für jede Bibliothek lässt sich der Medientyp festlegen und ein Name vergeben.
Je nachdem welcher Typ ausgewählt wird, werden weitere Einstellungen abgefragt, wie z. B. woher die Metadaten geladen werden sollen, wann diese zu aktualisieren sind.
Auch die Quellen werden hier eingestellt, wobei es dort noch eine Besonderheit gibt. Neben lokalen Verzeichnissen auf dem Server können auch Netzwerkordner eingebunden werden. Die lokalen Ordner werden automatisch erkannt und können einfach ausgewählt werden. Bei den Netzwerkpfaden ist es schwieriger, diese müssen manuell eingegeben werden.
Benutzerverwaltung
Es können eigene Benutzer angelegt werden, die z. B. nur auf einige Bibliotheken Zugriff erhalten.
Nachdem der Benutzer erstellt wurde, lassen sich noch viel mehr Einstellungen vornehmen. Dazu einfach den Benutzer auswählen und anschließend können diverse Einstellungen vorgenommen werden. Es können einzelne Funktionen wie Streaming, Download, Zugänge zu Bibliotheken, Kindersicherungen und Loginmöglichkeiten (Easy PIN Code, Geräte Beschränkungen) konfiguriert werden.
Schnellverbindung
Es gibt im Browser die Möglichkeit neue Sitzungen mit einem Schnellverbindungs-Code aufzunehmen, anstatt die Logindaten eingeben zu müssen. Dazu kann in einer bereits angemeldeten Sitzung einfach auf das eigene Icon rechts oben geklickt werden, dann Schnellverbindung wählen. Zum Schluss noch den Code vom zu verbindenden Gerät ablesen, hier eintragen und auf Autorisieren klicken.
Gruppen
Es kann ganz einfach und schnell eine Gruppe erstellt werden bzw. in eine bereits bestehende Gruppe eingetreten werden. Dazu einfach rechts oben neben den Streaming-Symbol und dem Icon für den eigenen User auf das Gruppen-Symbol klicken. Dann entweder auf Neue Gruppe oder eine bestehende Gruppe klicken. Anschließend ist direkt die gemeinsame Wiedergabe verfügbar. Sobald der Ersteller das Lied wechselt beginnt die Wiedergabe auf dem beigetretenen Gerät.
Beim Gruppenersteller wird der Benutzername des beigetretenen angezeigt und über das selbe Icon sind jederzeit alle Teilnehmer sichtbar. An der selben Stelle kann auch jederzeit die Wiedergabe gestoppt oder die Gruppe verlassen werden.
Metadaten-Manager
Mit dem Metadaten-Manager können, wie der Name schon aussagt, die Metadaten von den Dateien bearbeitet werden.
Dieser lässt sich jederzeit z. B. während der aktiven Wiedergabe oder aus einer Playlist heraus für einen Song öffnen, indem auf die 3 Punkte neben dem Song geklickt wird, anschließend ist Medadaten bearbeiten auszuwählen.
Der Manager öffnet sich als Pop-Up im Browser, sodass nach der Bearbeitung wieder die vorherige Ansicht geöffnet ist.
Lautstärke anpassen
Leider kann Jellyfin nicht automatisch die Audiodateien einmalig normalisieren, sondern nur beim Abspielen direkt die Lautstärke anpassen.
Anpassung beim Abspielen
Um die Einstellungen für die Anpassung der Lautstärke beim Abspielen anzupassen, in die Übersicht der Administration wechseln.
Hier nun etwas herunterscrollen und unter dem Punkt AUdio kann nun die Anpassung eingestellt werden.
Dauerhafte Anpassung mit MP3Gain
Statt jedes Mal beim Abspielen die Lautstärke anzupassen, kann auch das lokal zu installierende Tool MP3Gain verwendet werden. Besonders unter Linux ist die Terminal-Variante üblich, welche eine leicht zu automatisierende Normalisierung ermöglicht. Folgende werden die beiden Seiten Installation und Normalisieren per Bash aus dem Buch MP3Gain vorgestellt.
MP3Gain steht für mehrere Plattformen zum Download bereit. Im folgenden wird kurz gezeigt, woher die Windows und Linux Varianten bezogen werden können.
Windows
Für Windows gibt es MP3Gain als GUI Anwendung z. B. auf Heise MP3Gain Windows Installer. Die Installation ist simpel, weiter, weiter, fertigstellen. Anschließend die Anwendung einfach gestartet werden, ein Verzeichnis oder einzelne Dateien auswählen und die Lautstärke anpassen lassen.
Linux (GUI)
Für Linux gibt es auch eine GUI Installation, die jedoch noch nicht getestet wurde. Näheres hierzu kann auf MP3Gain-GUI Ubuntuusers nachgelesen werden.
Linux (Terminal)
Der Vorteil bei der Installation der Terminal Anwendung ist, dass sich die Schritte zum Anpassen der Lautstärke hervorragend automatisieren lassen, z. B. als Cronjob oder nachgelagert nach Kopiervorgängen. Die Installation ist bei den meisten Linux Distributionen mit einem Paketmanager schnell erledigt, weil in der Bibliothek verfügbar.
Für APT ist das Kommando wie folgt.
sudo apt update
sudo apt -y install mp3gain
Anschließend kann das Programm über die Bash mit mp3gain
aufgerufen werden.
Weitere Infos zu der Anwendung finden sich hier: MP3Gain Ubuntuusers
Der Vorteil der Installation der Terminal-Variante von mp3gain (unter Linux der Standard) ist, dass sich Aufgaben wie z. B. das Normalisieren von Ordnern wunderbar automatisieren lassen.
Einzelne Dateien
Eine einzelne Datei lässt sich mit folgendem Befehl an die Standardlautstärke anpassen.
mp3gain -r /Pfad/zur/Musik/Songname.mp3
Ordner
Statt alle Dateien einzeln anzugeben, können auch alle Dateien und Unterordner in einem Ordner automatisch analysiert und normalisiert werden. Dies geht mit folgendem Befehl. Hier wurde zusätzlich noch der Filter auf .mp3
Dateien hinzugefügt, dieser kann auch entfernt werden, um alle Dateien zu analysieren und zu normalisieren, sofern möglich.
mp3gain -r /Pfad/zur/Musik/*.mp3
Order mit Unterordner
Wenn nicht nur die Dateien im angegebenen Ordner normalisiert werden sollen, sondern auch die Dateien in den Unterordnern dieses Ordners, so ist dies mit dem folgenden Befehl möglich. Bitte die beiden neuen **
vor dem .mp3
beachten.
mp3gain -r /Pfad/zur/Musik/**/*.mp3
Ordner automatisiert
Angenommen es wird regelmäßig Musik in einem Ordner auf einem Raspberry Pi abgelegt. Dieser stellt ein SMB-Laufwerk im Netzwerk zur Verfügung, von welchem ein Musikplayer die Lieder abspielt. Dann könnte entweder jedes Mal auf dem Rechner, auf dem die Musik heruntergeladen wird, diese mit MP3Gain normalisiert werden oder auf dem Raspberry Pi wird z. B. täglich ein Skript ausgeführt.
Im folgenden Beispiel wird z. B. die Musik in den Ordner /Musik/Uploads/
hochgeladen und dann jeden Morgen um 2 Uhr verarbeitet. Einige Musikplayer streamen die Musik im Ordner /Musik/Archiv/
.
Dann würde folgendes Skript (/Musik/musik_normalisieren.sh
) erstellt werden.
mp3gain -r /Musik/Uploads/*.mp3
mv /Musik/Uploads/*.mp3 /Musik/Archiv/
Nun noch den Cronjob einstellen mit crontab -e
:
0 2 * * * /bin/bash /Musik/musik_normalisieren.sh
Fertig. Ab jetzt wird jede Nacht um 2 Uhr die Lautstärke der neuen Lieder automatisch angepasst.