DLNA/UPNP: Get Metadata from UPNP-Server (like Album-Art)

Hello,
I would like to use DLNA/UPNP binding to control my AssetUPnP server on which my CD collection is stored. I have created a small widget that lists the contents of the AssetUPNP server.
grafik

2024-04-03 11:59:42.094 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'Manfreds_Music_Current_Media_Id' received command co4AFDE6D5A0BC7B09

2024-04-03 11:59:42.095 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'Manfreds_Music_Current_Media_Id' predicted to become co4AFDE6D5A0BC7B09

2024-04-03 11:59:42.096 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'Manfreds_Music_Current_Media_Id' updated to co4AFDE6D5A0BC7B09

2024-04-03 11:59:42.098 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Manfreds_Music_Current_Media_Id' changed from co736402B3A49D2796 to co4AFDE6D5A0BC7B09

2024-04-03 11:59:42.101 [DEBUG] [l.internal.handler.UpnpServerHandler] - Handle command co4AFDE6D5A0BC7B09 for channel upnpcontrol:upnpserver:57DFB6F5-2168-8ACF-0-123456789abc:browse on server Manfreds Music

2024-04-03 11:59:42.103 [DEBUG] [l.internal.handler.UpnpServerHandler] - Navigating to node co4AFDE6D5A0BC7B09 on server Manfreds Music

2024-04-03 11:59:42.104 [DEBUG] [control.internal.handler.UpnpHandler] - UPnP device Manfreds Music invoke upnp action Browse on service ContentDirectory with inputs {SortCriteria=+dc:title, ObjectID=co4AFDE6D5A0BC7B09, Filter=*, BrowseFlag=BrowseDirectChildren, RequestedCount=0, StartingIndex=0}

2024-04-03 11:59:42.107 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'Manfreds_Music_Current_Media_Id' updated to co4AFDE6D5A0BC7B09

2024-04-03 11:59:42.109 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'Manfreds_Music_Titel' updated to The Dandy Warhols

2024-04-03 11:59:42.110 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Manfreds_Music_Titel' changed from [D..] to The Dandy Warhols

2024-04-03 11:59:42.113 [DEBUG] [control.internal.handler.UpnpHandler] - UPnP device Manfreds Music invoke upnp action Browse on service ContentDirectory reply {TotalMatches=1, UpdateID=399, NumberReturned=1, Result=<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/"><container id="co05165CE28083451B" parentID="co4AFDE6D5A0BC7B09" restricted="0" searchable="1"><dc:title>This Machine</dc:title><dc:creator>The Dandy Warhols</dc:creator><dc:date>2012-01-01</dc:date><upnp:artist>The Dandy Warhols</upnp:artist><upnp:genre>Rock; Pop; Alternative Rock</upnp:genre><upnp:albumArtURI dlna:profileID="JPEG_TN">http://192.168.178.177:26125/aa/76954182709160/cover.jpg?size=0</upnp:albumArtURI><upnp:class>object.container.album.musicAlbum</upnp:class></container></DIDL-Lite>}

2024-04-03 11:59:42.117 [DEBUG] [l.internal.handler.UpnpServerHandler] - UPnP device Manfreds Music received variable TotalMatches with value 1 from service ContentDirectory

2024-04-03 11:59:42.118 [DEBUG] [l.internal.handler.UpnpServerHandler] - UPnP device Manfreds Music received variable UpdateID with value 399 from service ContentDirectory

2024-04-03 11:59:42.119 [DEBUG] [l.internal.handler.UpnpServerHandler] - UPnP device Manfreds Music received variable NumberReturned with value 1 from service ContentDirectory

2024-04-03 11:59:42.120 [DEBUG] [l.internal.handler.UpnpServerHandler] - UPnP device Manfreds Music received variable Result with value <DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/"><container id="co05165CE28083451B" parentID="co4AFDE6D5A0BC7B09" restricted="0" searchable="1"><dc:title>This Machine</dc:title><dc:creator>The Dandy Warhols</dc:creator><dc:date>2012-01-01</dc:date><upnp:artist>The Dandy Warhols</upnp:artist><upnp:genre>Rock; Pop; Alternative Rock</upnp:genre><upnp:albumArtURI dlna:profileID="JPEG_TN">http://192.168.178.177:26125/aa/76954182709160/cover.jpg?size=0</upnp:albumArtURI><upnp:class>object.container.album.musicAlbum</upnp:class></container></DIDL-Lite> from service ContentDirectory

2024-04-03 11:59:42.124 [DEBUG] [l.internal.handler.UpnpServerHandler] - Filtering content on server Manfreds Music: false

2024-04-03 11:59:42.126 [DEBUG] [l.internal.handler.UpnpServerHandler] - UP added to selection list on server Manfreds Music

2024-04-03 11:59:42.128 [TRACE] [l.internal.handler.UpnpServerHandler] - co05165CE28083451B added to selection list on server Manfreds Music

2024-04-03 11:59:42.130 [DEBUG] [l.internal.handler.UpnpServerHandler] - 2 entries added to selection list on server Manfreds Music

2024-04-03 11:59:42.135 [DEBUG] [l.internal.handler.UpnpServerHandler] - Server Manfreds Music, raw result list [This Machine]

2024-04-03 11:59:42.137 [DEBUG] [l.internal.handler.UpnpServerHandler] - Server Manfreds Music, filtered result list []

2024-04-03 11:59:42.139 [DEBUG] [l.internal.handler.UpnpServerHandler] - Nothing to serve class="afterFrom marked"> from server Manfreds Music to renderer Volumio-UPnP/AV

2024-04-03 11:59:42.141 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'Manfreds_Music_Current_Media_Id' updated to co4AFDE6D5A0BC7B09

2024-04-03 11:59:42.143 [INFO ] [openhab.event.ItemStateUpdatedEvent ] - Item 'Manfreds_Music_Titel' updated to The Dandy Warhols
  1. Is it possible to access the link for ‘Albumart (Albumcover)’ in addition to the text information (band name, album name, title etc.)? The data is at least listed in the debug log.

grafik

  1. After selecting a song from an album (last level of the listing), the first level of the server content is displayed again (Artists, Genre…). Can this be prevented so that the complete song list of the CD is always displayed?

Any idea is welcome.

Thanks

What specifically are you referring to? Is it the upnp:class entry you are referring to? That can contain many values and is not something I would call an album type. It is the object type of an entry in the UPnP directory (which can be albums, tracks, directories…).

Sorry for the typo. It has to be ‘albumArtUri’ resp. ‘Albumcover’ see example

2024-04-03 11:59:42.120 [DEBUG] [l.internal.handler.UpnpServerHandler] - 
UPnP device Manfreds Music received variable Result with value 
<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/">
<container id="co05165CE28083451B" 
parentID="co4AFDE6D5A0BC7B09" restricted="0" searchable="1">
<dc:title>This Machine</dc:title>
<dc:creator>The Dandy Warhols</dc:creator>
<dc:date>2012-01-01</dc:date>
<upnp:artist>The Dandy Warhols</upnp:artist>
<upnp:genre>Rock; Pop; Alternative Rock</upnp:genre>
<upnp:albumArtURI dlna:profileID="JPEG_TN">http://192.168.178.177:26125/aa/76954182709160/cover.jpg?size=0</upnp:albumArtURI>
<upnp:class>object.container.album.musicAlbum</upnp:class>
</container></DIDL-Lite> from service ContentDirectory

That is available on the renderer, not the server at the moment. It gets shown when playing, not when browsing.