Ich habe eine Medienbibliothek mit hunderten Filmen und Serien drauf. Die sind an einem RPi 4 auf einer HDD. Auf dem RPi ist Kodi installiert und UPnP ist aktiviert. Ich kann mit dem VLC über UPnP auf alle Medien zugreifen.
Nun ist VLC ein bisschen "anstrengend". Ich muss mich jedesmal beim Öffnen durch die Pfadhierarchie quälen. Vorschauen, Beschreibungen und dergleichen gibt es auch nicht. Darum habe ich mir eine Datenbank angelegt, die entsprechenden Infos dort eingetragen.
Nun habe ich eine Weboberfläche mit Suchfunktion, Vorschauen, Beschreibungen und allem Pipapo in PHP programmiert. Ich würde die Medien gern auch von dort aus abspielen, komme aber nicht an die entsprechenden Informationen, weil ich UPnP nicht kenne und mir vom Lesen der fast 200seitigen Dokumentation schon schwindlig ist.
Github habe ich auch "abgegrast". Da waren ein paar nützliche Scripts dabei, an denen ich mich orientieren konnte. Aber ich komme nicht über den Scan und den Empfang der http://*ip*:*port*/DeviceDescription.xml hinaus. http://*ip*:*port*/X_MS_MediaReceiverRegistrar/***********/scpd.xml geht auch noch über http, aber das war es dann auch.
Es gibt ältere Beispiele für PHP, neuere für Python, die ich nicht ganz verstehe und mit denen ich wenig anfangen kann. Ich kapiere nicht, wo und wie ich entsprechende SoapActions formulieren/anwenden muss. Da hat es noch nicht klick gemacht. Ich möchte Soap (PHP) verwenden, um das UPnP:rootdevice später anzufunken. Aber erstmal muss ich verstehen, was der Server von mir erwartet und was er mir über seine Benutzung mitzuteilen hat. Ich kann mit den Antworten wenig anfangen.
Hier mal als Beispiel die Ausgabe der DeviceDescription, die mir ansich verraten sollte, wie ich weiterkommen kann:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | <?xml version="1.0" encoding="UTF-8"?> <root configId="3929907" xmlns="urn:schemas-upnp-org:device-1-0" xmlns:dlna="urn:schemas-dlna-org:device-1-0"> <specVersion> <major>1</major> <minor>1</minor> </specVersion> <device> <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType> <friendlyName>Kodi (raspberrypi)</friendlyName> <manufacturer>XBMC Foundation</manufacturer> <manufacturerURL>http://kodi.tv/</manufacturerURL> <modelDescription>Kodi - Media Server</modelDescription> <modelName>Kodi</modelName> <modelNumber>18.7 Git:*******-*********</modelNumber> <modelURL>http://kodi.tv/</modelURL> <UDN>uuid:*******-****-****-****-************</UDN> <presentationURL>http://*ip*:8080/</presentationURL> <dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC> <iconList> <icon> <mimetype>image/png</mimetype> <width>256</width> <height>256</height> <depth>8</depth> <url>/icon256x256.png</url> </icon> <icon> <mimetype>image/png</mimetype> <width>120</width> <height>120</height> <depth>8</depth> <url>/icon120x120.png</url> </icon> <icon> <mimetype>image/png</mimetype> <width>48</width> <height>48</height> <depth>8</depth> <url>/icon48x48.png</url> </icon> <icon> <mimetype>image/png</mimetype> <width>32</width> <height>32</height> <depth>8</depth> <url>/icon32x32.png</url> </icon> <icon> <mimetype>image/png</mimetype> <width>16</width> <height>16</height> <depth>8</depth> <url>/icon16x16.png</url> </icon> </iconList> <serviceList> <service> <serviceType>urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1</serviceType> <serviceId>urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar</serviceId> <SCPDURL>/X_MS_MediaReceiverRegistrar/*******-****-****-****-************/scpd.xml</SCPDURL> <controlURL>/X_MS_MediaReceiverRegistrar/*******-****-****-****-************/control.xml</controlURL> <eventSubURL>/X_MS_MediaReceiverRegistrar/*******-****-****-****-************/event.xml</eventSubURL> </service> <service> <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType> <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId> <SCPDURL>/ContentDirectory/*******-****-****-****-************/scpd.xml</SCPDURL> <controlURL>/ContentDirectory/*******-****-****-****-************/control.xml</controlURL> <eventSubURL>/ContentDirectory/*******-****-****-****-************/event.xml</eventSubURL> </service> <service> <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType> <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId> <SCPDURL>/ConnectionManager/*******-****-****-****-************/scpd.xml</SCPDURL> <controlURL>/ConnectionManager/*******-****-****-****-************/control.xml</controlURL> <eventSubURL>/ConnectionManager/*******-****-****-****-************/event.xml</eventSubURL> </service> </serviceList> </device> </root> |