Loewe TV-Playlist; UPnP2m3u8 Powershell Konverter

Antworten
telefonmann
Neues Mitglied
Beiträge: 4
Registriert: Di 19. Jan 2021, 16:45
Danksagung erhalten: 1 Mal

Loewe TV-Playlist; UPnP2m3u8 Powershell Konverter

#1 

Beitrag von telefonmann »

Hallo allerseits,

habe mir für ein TV im Gästezimmer einen Raspberry Pi4 mit Kodi zugelegt, der auch wunderbar funktioniert. Natürlich möchte ich darauf auch TV schauen können, ohne die ganze Infrastruktur dort nochmal aufzubauen (ginge alles, aber wofür gibt's streaming - und meinen Loewe?). Nach dem Aktivieren von UPnP in Kodi wird mein SL3xx auch erkannt und man kann durch die DR+-Ordner browsen und sich Ordner oder Sender als Favoriten anlegen. Die tauchen aber leider im Menü "TV" in Kodi nicht auf. Dafür gibt's ein IPTV-Addon (PVR IPTV Simple Client), der aber eine .m3u8-Liste haben möchte, kein UPnP.

Da ich dafür nirgendwo was Zweckmäßiges gefunden habe, das mir diesen Task automatisiert, habe ich einfach mal was gebastelt (in Windows Powershell). Wer es nutzen möchte, muss nur die Parameter in den ersten 2 Zeilen anpassen und das Skript dann in Powershell ausführen (einmalig oder regelmäßig per Scheduler). $loewe ist der Name/die IP Eures Geräts, den $folder ermittelt man am einfachsten in VLC (Ansicht>Wiedergabeliste>UPnP, dann das Gerät aufrufen und unter Live-TV den Ordner "Ausgewählte Sender" markieren, dann rechte Maustaste>Information auswählen. In den Metadaten steht die ObjectID).

Code: Alles auswählen

$loewe="http://loewetv:1543"
$folder='lt0/0/$1$slb1c36181-493d-45f1-a6c7-8c5097bbb067'
$body='<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 <s:Body><u:Browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
 <ObjectID>'+$folder+'</ObjectID>
 <BrowseFlag>BrowseDirectChildren</BrowseFlag>
 <Filter>*</Filter>
 <StartingIndex>0</StartingIndex>
 <RequestedCount>5000</RequestedCount>
 <SortCriteria></SortCriteria>
 </u:Browse>
 </s:Body>
 </s:Envelope>'
$soap=Invoke-WebRequest -uri "$loewe/happy/MediaServer_ContentDirectory/control" -Headers (@{SOAPAction='"urn:schemas-upnp-org:service:ContentDirectory:1#Browse"'}) -Method Post -Body $body -ContentType 'text/xml; charset="utf-8"'
$content=[xml]$soap.Content
$res=[xml]$content.Envelope.Body.BrowseResponse.Result
$i=0
Write-Host "#EXTM3U"
foreach ($itm in $res.'DIDL-Lite'.item)
{
$i++
Write-Host "#EXTINF:$i,"$itm.title.tostring()
Write-Host $loewe/$($itm.id.tostring())
}
Den resultierenden Output kann man einfach irgendwo abspeichern (z.B. als TV.m3u8 auf einem Netzwerkshare oder direkt auf dem Raspi) und dann im o.g. Addon eintragen. Und wie schick, die "Ausgewählten Sender" des Loewe werden dann alle direkt unter "TV" angezeigt und können aufgerufen/abgespielt werden. Grundsätzlich geht das mit jedem Ordner auf dem Loewe, also z.B. auch für Musik-Playlists/Streaming-Clients. Nur im Skript den $folder entsprechend anpassen.
Grundsätzlich kann man dieses Skript auch als Grundlage für allerhand weitere Projekte nehmen - man kann alles damit machen, was per UPnP auf dem Loewe möglich ist, also z.B. auch das Gerät steuern. Mehr Info zu den vom Gerät angebotenen Möglichkeiten findet man unter http://loewetv:1543/happy (loewetv=IP Eures Geräts).

Antworten

Zurück zu „DR+ und Netzwerk-Fragen“