Xbox album art reason

Anonymous
2012-02-05
2014-01-13

  • Anonymous
    2012-02-05

    Good evening,

    Love the software, been using the software for about 3 years now.

    Just wanted to ask for the reason why the xbox album art is not supported.  I know that xbox have a non-standard way of doing this so its not going to get picked up by default. 

    However is it just a case that nobody as done the network capture, analysis and coding to make it work or is there some other more complex reason?

     
  • Justin Maggard
    Justin Maggard
    2012-02-05

    I believe it's just that nobody has done the work.  Have you used any other server software that can get the Xbox to show album art?

     

  • Anonymous
    2012-02-05

    I haven't used any other server software.  However I had read that the Windows Media Player does it.

    I just booted into Windows 7 (for the first time in ages) and grabbed a wireshark network capture:
    http://www.hannent.co.uk/capture-of-Wildlife-upnp-screen-image.pcap.7z

    Frame 107 is when the xbox appears to request the album art, however its appears to be doing a GET request with an added query string parameter of albumArt=true

    I haven't figured out where you are sending the album art, however I saw in upnphttp.c you are looking for "/AlbumArt/", which is clearly different from the xbox request I saw.

     
  • Justin Maggard
    Justin Maggard
    2012-02-07

    Do you ever see any of that type of request coming to MiniDLNA?

     

  • Anonymous
    2012-02-07

    The:

    GET /WMPNSSv4/2057153819/0_ezlDM0YxMTczLTRGQkYtNEU1Ri05OTg4LUExQzYyOTE1RTNCMH0uMC4yQzE5NTgxOQ.wmv?albumArt=true HTTP/1.1
    User-Agent: Xbox Live Client/2.0.14699.0
    Connection: Keep-alive
    Host:192.168.0.9:10243

    in frame 107 is the only request for artwork.  How is it normally structured?

    Then the server replies with:

    %~FE`:@ (9M(@2PDA_HTTP/1.1 200 OK
    Content-Length: 6473
    Content-Type: image/jpeg
    Server: Microsoft-HTTPAPI/2.0
    Accept-Ranges: bytes
    TransferMode.DLNA.ORG: Interactive
    Date: Sun, 05 Feb 2012 19:36:08 GMT

    and the data follows.

     
  • Justin Maggard
    Justin Maggard
    2012-02-08

    Right.  I mean when you're browsing your MiniDLNA server, do you see album art requests come in?  I vaguely remember trying it a few years back when I had access to a 360, and I didn't see any cover art requests.

    In any case, I whipped up a quick patch that will respond to those requests.  You can try compiling with the patch I posted in https://sourceforge.net/tracker/?func=detail&aid=3485549&group_id=243163&atid=1121518 and see if it works for you.

     

  • Anonymous
    2012-02-08

    Thanks for knocking up the patch, its really awesome of you.

    Well I tried the patch, however the xbox never asked for the albumArt with the get request.

    I've captured the exchange between the xbox and minidlna to look through to see if there is some sort of capability advertisement.  Of course it could just be that it only performs the get if its talking to what it thinks is a Microsoft server. 

     
  • Justin Maggard
    Justin Maggard
    2012-02-08

    I doubt the flags have anything to do with it, but I just posted a new patch in the same tracker that adds support for DLNA.ORG_FLAGS.

     

  • Anonymous
    2012-02-09

    You were correct, I retried this morning with your patch and no GET request for the albumArt came from the xbox.

    I'll setup a minidlna instance with the same single folder, single video as the Windows Media Centre and capture the network traffic to see what else is different.

     

  • Anonymous
    2012-02-09

    Just reviewing this mornings capture I see the xbox post this:

    POST /ctl/X_MS_MediaReceiverRegistrar HTTP/1.1
    User-Agent: Xbox/2.0.14699.0 UPnP/1.0 Xbox/2.0.14699.0
    Connection: Keep-alive
    Host:192.168.0.50:8200
    SOAPACTION: "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1#IsAuthorized"
    CONTENT-TYPE: text/xml; charset="utf-8"
    Content-Length: 304

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
       <s:Body>
          <u:IsAuthorized xmlns:u="urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1">
    <DeviceID></DeviceID>      </u:IsAuthorized>
       </s:Body>
    </s:Envelope>

    And then after the ACK minidlna replies with:

    HTTP/1.1 500 Internal Server Error
    Content-Type: text/xml; charset="utf-8"
    Connection: close
    Content-Length: 396
    Server: 3.0.0-16-generic DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0
    Date: Thu, 09 Feb 2012 07:39:15 GMT
    EXT:

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
    <s:Fault>
    <faultcode>s:Client</faultcode>
    <faultstring>UPnPError</faultstring>
    <detail>
    <UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
    <errorCode>402</errorCode>
    <errorDescription>Invalid Args</errorDescription>
    </UPnPError>
    </detail>
    </s:Fault>
    </s:Body>
    </s:Envelope>

     

  • Anonymous
    2012-02-09

    Looking at upnpsoap.c in IsAuthorizedValidated, you are checking DeviceID is set to something.  However the Microsoft documentation says that an Empty DeviceID is ok and you should use the devices mac address instead:

    http://msdn.microsoft.com/en-us/library/ff632632(v=prot.10).aspx

     

  • Anonymous
    2012-02-09

    Reading Microsoft  NetCompat_WMP11.docx document suggests two things.  Firstly that the <upnp:albumArtURI> is used for thumbnails, which I haven't seen minidlna use at all.

    However it also says:

    "WMP Sharing provides a thumbnail URI for all images that support transcoding. The most direct method for thumbnail retrieval is for the device to use the resource (<res>) element with the image of the desired format and resolution. For every JPEG and YUV image, WMP Sharing exposes at least one “thumbnail version” of the image with a resolution less than or equal to 160x160 pixels."

    Which reads to me that because Windows Media Centre transcodes (which minidlna does not and doesn't advertise with the DLNA.ORG_CI=0 flag), that the xbox knows to just perform a get request for the thumbnail.

     
  • Justin Maggard
    Justin Maggard
    2012-02-10

    The IsAuthorizedValidated issue has already been fixed in CVS.  I misunderstood one of the new requirements for UPnP MediaServer compliance, which is required by DLNA.

    Regarding the upnp:albumArtURI tag, the video browse request from the 360 in your pcap asks us to filter out the upnp:albumArtURI element.  You could try forcibly enabling it by always setting the FILTER_UPNP_ALBUMARTURI bit in the set_filter_flags() function.

    The sentence "WMP Sharing provides a thumbnail URI for all images that support transcoding." indicates that it is talking about images, not videos.  We already supply thumbnails for images, and I believe that works fine today on the 360.

     

  • Anonymous
    2012-02-13

    Ok, I spent probably 3 hours at the weekend tweaking the code and capturing network analysis.

    I haven't bottomed it all out currently, however I suspect its to do with the authorisation with X_MS_MediaReceiverRegistrar.  I was able to pass back an IsAuthroized and IsValidatedResponse soap commands.

    However I then see the xbox do SSDP discovery again and minidlna respond announcing itself for the second time.  Is this something that could reset the X_MS_MediaReceiverRegistrar information on the xbox, because shortly after the xbox then does the browse and I would expect the GET requested to be generated out of the browse response?

     

  • Anonymous
    2012-02-14

    Nope, the WMC capture also shows that WMC also resends SSDP discovery details.

     

  • Anonymous
    2012-03-04

    Good afternoon,

    I am back on the case of my xbox albumArt.  I've been looking over the traces and looking more at the initial discovery phase since the later SOAP conversation looks good.

    The SSDP setup does look different and I wanted to share that.  The xbox is searching with:

    M-SEARCH * HTTP/1.1
    Host: 239.255.255.250:1900
    Man: "ssdp:discover"
    MX: 2
    ST: uuid:4d696e69-444c-164e-9d41-001966c1693f

    The WMC is responding with:

    HTTP/1.1 200 OK
    ST:urn:schemas-upnp-org:service:ContentDirectory:1
    USN:uuid:367de6c5-e9d9-41f7-b18e-47637762429f::urn:schemas-upnp-org:service:ContentDirectory:1
    Location:http://192.168.0.9:2869/upnphost/udhisapi.dll?content=uuid:367de6c5-e9d9-41f7-b18e-47637762429f
    OPT:"http://schemas.upnp.org/upnp/1/0/"; ns=01
    01-NLS:7ebfa04c3af6b8f71e9da91ecf8d8c9a
    Cache-Control:max-age=900
    Server:Microsoft-Windows-NT/5.1 UPnP/1.0 UPnP-Device-Host/1.0
    Ext:

    Then the xbox ask for this:

    GET /upnphost/udhisapi.dll?content=uuid:367de6c5-e9d9-41f7-b18e-47637762429f HTTP/1.1
    User-Agent: Xbox/2.0.14699.0 UPnP/1.0 Xbox/2.0.14699.0
    Connection: Keep-alive
    Host:192.168.0.9:2869

    However minidlna is responding with:

    HTTP/1.1 200 OK
    CACHE-CONTROL: max-age=1810
    DATE: Sat, 11 Feb 2012 13:33:09 GMT
    ST: uuid:4d696e69-444c-164e-9d41-001966c1693f
    USN: uuid:4d696e69-444c-164e-9d41-001966c1693f
    EXT:
    SERVER: 3.0.0-16-generic DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.0
    LOCATION: http://192.168.0.50:8200/rootDesc.xml
    Content-Length: 0

    There appear to be a lot of things which MS are doing which are "different", there 2869 port number, the addition of the OPT: value, ST being the service to be discovered, it looks like they are breaking the standard by not having upper case names, etc.  What do you think?

     
  • Justin Maggard
    Justin Maggard
    2012-03-20

    Are you sure WMC is responding to the "ST: uuid:4d696e69-444c-164e-9d41-001966c1693f" search request with "ST:urn:schemas-upnp-org:service:ContentDirectory:1"?  Because that would be a total violation of the spec.  HTTP headers are case-insensitive, so they aren't doing anything strange there.

     

  • Anonymous
    2012-05-13

    I have installed Serviio and noticed that it actually displays the artwork on the xbox 360.

     
  • of6
    of6
    2012-12-03

    Was anyone able to figure out how to get the Xbox to see thumbnails for videos & audio files?

     
  • Martin Purcell
    Martin Purcell
    2014-01-13

    I also would like to know if there's any luck getting thumbnails to appear.

    I'm not sure if this will help, but I know that TwonkyServer 7 supports artwork on Xbox 360.

    edit: This seems like it could be important http://www.ps3mediaserver.org/forum/viewtopic.php?p=30348#p30348

     
    Last edit: Martin Purcell 2014-01-13
  • Martin Purcell
    Martin Purcell
    2014-01-13

    I installed Twonky and managed to do some packet sniffing. It appears that Twonky presents itself to XBox as a Windows Media Connect client.
    I grabbed any XML responses that seemed important, and uploaded them for someone smarter than I to digest.

    http://clients.silicomedia.com/twonky/index.html