More complete UPnP field parsing
#1
At the moment, running Kodi Leia, it seems that only
  • dc:title,
  • upnp:album,
  • upnp:artist,
  • upnp:genre, and
  • relevant time information

get parsed at the start of playback when Kodi is a UPnP/DLNA Renderer.

No "Year" is available for the track, even though (upon inspecting the SetAVTransportURI details) a dc:date of "2010-01-01T00:00:00" was provided.  Would it be possible for Kodi to parse dc:date and make use of it as Year?

Additionally, is upnp:author role="Composer" parsed?

If I can be pointed at the relevant code, I can take a stab at what the necessary changes would be, but I have never attempted building Kodi before. 

Thanks for considering!
  Matt
Reply
#2
(2020-10-17, 21:56)mblovell Wrote: No "Year" is available for the track, even though (upon inspecting the SetAVTransportURI details) a dc:date of "2010-01-01T00:00:00" was provided.  Would it be possible for Kodi to parse dc:date and make use of it as Year?

Additionally, is upnp:author role="Composer" parsed?

Returning to this topic, is Kodi Matrix considering any additions / enhancements to the Platinum UPnP parsing?

Below is a capture of the information that JRiver Media Center sends in one of its SetAVTransportURI updates.  Included is the dc:date field I mentioned, as well as a upnp:author role="Composer" field.  It looks like PLT_MediaObject::ToDidl() is aware of dc:date, and forwards it to an m_Date field:

https://github.com/xbmc/xbmc/blob/2d993a...#L301-L305

That function also looks for "actor", "author", and "directory", but doesn't currently look for "composer".

Would it be possible to get the UPnP fields captured, such that they're available to MusicPlayer.* InfoLabels?

Thanks for any suggestions,
  Matt


xml:
<u:SetAVTransportURI xmlns:u="urnConfusedchemas-upnp-orgConfusedervice:AVTransport:1">
<InstanceID>0</InstanceID>
<CurrentURI>http://10.0.0.3:52100/Music/F8681751.flac?Reader=23</CurrentURI>
<CurrentURIMetaData><;DIDL-Lite xmlns="urnConfusedchemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:upnp="urnConfusedchemas-upnp-org:metadata-1-0/upnp/"
  xmlns:dlna="urnConfusedchemas-dlna-org:device-1-0" xmlns:av="urnConfusedchemas-sony-com:av"
  xmlns:pv="http://www.pv.com/pvns/" xmlns:jriver="urnConfusedchemas-jriver-com:jriver">;
<;item id="F8681751" parentID="0" restricted="1">;
<;dc:title>;Sinfonia in G Major, Altner G4: II. Andante<;/dc:title>;
<;upnp:class>;object.item.audioItem.musicTrack<;/upnp:class>;
<;upnp:artist>;Helsinki Baroque Orchestra<;/upnp:artist>;
<;upnp:artist role="Performer">;Helsinki Baroque Orchestra<;/upnp:artist>;
<;upnp:artist role="AlbumArtist">;Helsinki Baroque Orchestra, Aapo H..kkinen<;/upnp:artist>;
<;dc:creator>;Helsinki Baroque Orchestra<;/dc:creator>;
<;upnp:album>;Dussek_F : Four Symphonies<;/upnp:album>;
<;upnp:genre>;Classical<;/upnp:genre>;
<;upnp:author role="Composer">;Franz Xaver Dussek<;/upnp:author>;
<;upnp:originalTrackNumber>;2<;/upnp:originalTrackNumber>;
<;upnp:playbackCount>;5<;/upnp:playbackCount>;
<;dc:date>;2010-01-01T00:00:00<;/dc:date>;
<;pv:playcount>;5<;/pv:playcount>;
<;pv:lastPlayedTime>;2020-10-17T10:30:46<;/pv:lastPlayedTime>;
<;pv:addedTime>;1600225186<;/pv:addedTime>;
<;pv:modificationTime>;1600225377<;/pv:modificationTime>;
<;upnp:albumArtURI dlna:profileID="JPEG_LRG">;http://10.0.0.3:52100/AArl/8681751.jpg<;/upnp:albumArtURI>;
<;upnp:albumArtURI dlna:profileID="JPEG_MED">;http://10.0.0.3:52100/AArm/8681751.jpg<;/upnp:albumArtURI>;
<;upnp:albumArtURI dlna:profileID="JPEG_SM">;http://10.0.0.3:52100/AArs/8681751.jpg<;/upnp:albumArtURI>;
<;upnp:albumArtURI dlna:profileID="JPEG_TN">;http://10.0.0.3:52100/AArt/8681751.jpg<;/upnp:albumArtURI>;
<;res protocolInfo="http-get:*:audio/x-flacBig GrinLNA.ORG_PN=FLAC;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000"
  duration="0:03:05.000"
  size="58697704"
  nrAudioChannels="2"
  sampleFrequency="96000"
  bitsPerSample="24"
  bitrate="315625">;http://10.0.0.3:52100/Music/F8681751.flac?Reader=23<;/res>;
<;res protocolInfo="http-get:*:image/jpegBig GrinLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=00;DLNA.ORG_CI=1">;http://10.0.0.3:52100/ARrl/8681751.jpg<;/res>;
<;res protocolInfo="http-get:*:image/jpegBig GrinLNA.ORG_PN=JPEG_MED;DLNA.ORG_OP=00;DLNA.ORG_CI=1">;http://10.0.0.3:52100/ARrm/8681751.jpg<;/res>;
<;res protocolInfo="http-get:*:image/jpegBig GrinLNA.ORG_PN=JPEG_SM;DLNA.ORG_OP=00;DLNA.ORG_CI=1">;http://10.0.0.3:52100/ARrs/8681751.jpg<;/res>;
<;res protocolInfo="http-get:*:image/jpegBig GrinLNA.ORG_PN=JPEG_TN;DLNA.ORG_OP=00;DLNA.ORG_CI=1">;http://10.0.0.3:52100/ARrt/8681751.jpg<;/res>;
<;/item>;
<;/DIDL-Lite>;
</CurrentURIMetaData>
</u:SetAVTransportURI>
Reply

Logout Mark Read Team Forum Stats Members Help
More complete UPnP field parsing0