Allgemein

MEIN UPnP Control Point für Windows – frei und schlicht

Ein abgehangener Standard, massenhaft Apps und dennoch fehlt eine "Fernbedienung" für Windows ...

UPnP/DLNA hat eine wunderbare Architektur: Der Server liefert die Musik, der Renderer spielt sie ab und über den Control Point wird gesteuert. Server gibt es reichlich und meist laufen sie unter Linux. Renderer gibt es auch reichlich, von Kodi über Smartphones bis zum Netzwerk-HiFi-Receiver. Aber bei Steuer-Software wird es knifflig - bislang.

Was genau es mit UPnP und DLNA, Server, Renderer und Control Point auf sich hat, habe ich früher schon mal erklärt. Die ganze Architektur ist ist übersichtlich, flexibel - und alt. Es gibt etliche Dutzend Anwendungen rund um DLNA, für Desktops, Handys, Fernseher. Mal einzeln, mal verwoben. Ein Audio-Player wie foobar2000 zum Beispiel kann alle drei Rollen übernehmen. Ein Media-Center wie Kodi dient millionenfach als Renderer. Nur der Control Point wird oft ein wenig stiefmütterlich behandelt.

Das praktische Szenario:

  • Server: MiniDLNA auf einem Linux-Server
  • Renderer: Denon DRA-900H 2.2 (HiFi-Verstärker)
  • Control Point: HEOS-App auf dem Smartphone. Und unter Windows?

Server und Renderer sind kein Problem. MiniDLNA stellt schlicht Medien in gegebenen Ordnern zur Verfügung und der Denon-Verstärker ist ein HiFi-Baustein, um den man sich auch keine Gedanken machen muss.

Das Problem liegt bei der Steuerung: Die vorgesehene HEOS-App ist im Grunde einfach nur ein Ärgernis. Die Navigation ist Grütze, sie ist unzuverlässig, hässlich und nervt an allen Ecken und Enden. Immerhin: Es gibt für Smartphones durchaus ein paar Control-Point-Apps, wenn auch nichts Tolles. Zur Not kann man selbst mit der HEOS-App leben, wenn man nicht gerade viel in der Sammlung stöbern will.

Richtig mies wird es unter Windows: Meine Suche nach einem freien Control Point ist schlicht gescheitert. Manche Lösungen sind so alt, dass sie gar nicht mehr laufen wollten. Andere wurden so lange nicht aktualisiert, dass die Erkennung von UPnP-Diensten nicht mehr klappt - so zum Beispiel die in meinem alten Denon-Artikel empfohlene App Kinsky.

Aber wir leben ja im KI-Zeitalter ;)

MEIN Control Point für Windows

Meine Ansprüche sind hier ziemlich gering, ich brauche keinen vollwertigen UPnP-Media-Player - dafür habe ich zum Beispiel foobar2000 auf dem Rechner, der wiederum per Audiokabel mit dem Denon verbunden ist. Und wenn ich viel in der Musiksammlung stöbere UND am Rechner sitze, brauche ich dafür kein UPnP. Aber bisweilen läuft Musik nun mal über UPnP, bisweilen wird der Audioausgang am PC anderweitig genutzt ... da will ich dann auch eine Möglichkeit haben, auf dem Desktop zu steuern. Am Rechner sitzen und mit dem ollen Handy steuern? Geht gar nicht ;)

Meine Anforderungen:

  • Automatische Erkennung von Servern und Renderern im Netzwerk
  • Player-Steuerung (Play, Pause, Vor/Zurück, Lautstärke)
  • Lokale Queue
  • Anzeige von Metadaten
  • Album-Art-Ansicht (Grid)
  • Ordner-Ansicht
  • Navigation über Breadcrumbs

Also die KI angeschmissen, yada yada yada, und so sieht's aus:

upnp control point hauptbildschirm.
UPnP Control Point mit Grid-Ansicht

Nach dem Start sucht das Tool automatisch nach UPnP-Diensten, die sich über die Dropdown-Menüs auswählen lassen. Anschließend lässt sich nach Ordnern oder Metadaten durch die vom Server angebotenen Medien browsen. Dazu gesellt sich eine simple Queue-Funktion - keine vollständige Playlist-Verwaltung! Alben lassen sich als Liste oder Cover-Art-Wall darstellen und wie einzelne Titel per Kontextmenü der Queue hinzufügen.

Das ganze Ding ist ein einziges Python-Skript mit nur einer Abhängigkeit: Die Bibliothek pillow wird benötigt, um die Album-Cover anzuzeigen.

Was es nicht kann:

  • Metadaten in der Bibliothek
  • Playlist-Verwaltung
  • Von anderen Control-Points initiierte Titel/Listen anzeigen
  • Kein Drag&Drop

Installation:

  • Python muss vorhanden sein
  • pillow installieren: py -m pip install pillow
  • Control Point starten: python ./upnp_control.py

Downloads:

  • Python-Skript - anpassbar, schlank
  • EXE-Datei - komfortabel, Doppelklick und gut is' (Ist so groß, Wordpress will nicht ... wenn sie wirklich jemand will: Einfach Kommentar mit EXE hinterlassen, dann hoste ich die Datei irgendwo.)

Update: Na gut, hier der EXE-Download - ohne Garantie, aber sollte klappen ;)

Wer sich selbst eine EXE-Datei kompilieren will:

pipx install pyinstaller
pyinstaller --onefile --windowed --name UPnP-Control-Point upnp_control_v1.2.py

Python muss natürlich auch vorhanden sein. So bekommt man jedenfalls eine EXE-Datei, die unter Windows irgendwie sympathischer ist als ein py-Skript

Ein Wort zur Entwicklung: KIs können derlei Dinge mittlerweile richtig gut! Früher musste ich noch viel manuell durch den Code gehen und Kleinigkeiten korrigieren. Später mussten zumindest noch sehr explizite Anweisungen eingereicht werden. Heute laufen solche Dinge fast von allein - wenn man halbwegs versteht, wie so ein Projekt funktioniert und man auf Standards setzt.

Und genau das macht die App - und sieht daher auch so schrecklich banal aus ;) UPnP/DLNA sind gut dokumentierte und abgehangene Standards - daher war es überhaupt kein Problem, eine bessere Discovery-Funktion zu bekommen als die meisten existierenden Tools anbieten. Die Oberfläche nutzt auch nur Standard-Design - das hat die KI vollständig vorgegeben. Nun, fast. Microsofts Windows-Richtlinien und ein paar Wünsche meinerseits haben auch eine Rolle gespielt.

Um es ganz klar zu sagen: Ich habe mehr Zeit mit der erfolglosen Suche nach einem passenden Programm verbracht als mit der Entwicklung meines eigenen Control Points - in einer ersten, minimalen Version. Danach sind schon noch ein paar Stunden eingeflossen. Und so solltet Ihr das Skript eigentlich auch verwenden - als Ausgangspunkt für etwas eigenes. Schmeißt es einfach in die KI Eurer Wahl und fragt nach weiteren Features. Die Chancen stehen gut, dass das klappt.

Aber Otto Normalverbraucher kann auch schlicht das Skript starten und Musik steuern ;)

Wie sieht es bei Euch aus - sucht Ihr noch Tools, oder entwickelt Ihr gleich alles selbst neu?

Das hier ist übrigens eine hübsche Möglichkeit, Old-School-Stereoanlagen um DLNA zu erweitern:

×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

4 Kommentare

  1. Vielen Dank für die App! 👍 Tkinter ist leider nicht barrierefrei, aber es sollte ein Leichtes sein mit ein bisschen Wxpython nachzuhelfen um den Controler für mich nutzbar zu machen.

      1. DLNA nutze ich ganz gerne – früher Serviio für Filme (das macht jetzt Jellyfin + Jellyfin-Windows-Player ohne DLNA), aber auch MediaMonkey Gold für DLNA-Musikstreaming an meinen Denon-Receiver oder auch Medienbibliothekssync ans Mobilgerät.

        Hier gibts eine Software fürs Audio-Streaming als virtuelle Soundkarte (ähnlich Stardock AcousticBridge), wobei DLNA auch als Ziel implementiert ist: https://github.com/marcomorosi06/WiFiAudioStreaming-Desktop. Bissl Latenz ist dabei, liegt aber am Protokoll.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"