WiiM, MinimServer & BubbleUPnP

simbun

Major Contributor
Joined
Mar 4, 2023
Messages
782
Has anybody managed to get WiiM to play files natively from MinimServer using a control point other than WiiM?
Every file (FLAC, MP3, AAC) I try and play results in 'Invalid MIME-type or resource not find (code: 714)' from both BubbleUPnP and Hi-Fi Cast.
If I transcode them (which I typically do to apply replaygain) it's fine, if I play the same files through AssetUPnP it's fine, if I use the WiiM app to browse MinimServer they're fine, it's just not using another control point!
I'll try and dig into it some more, get some logs of what's going on, but I've seen MinimServer mentioned on this board a number of times and I can't believe everyone is doing it via the WiiM app.
 
I come from a long way back when 8.3 was the rule in Windows.
I do too, but it's been nearly 30 years now :)

I use all of the same tools but I have seen any of them try to write a file name with a dot like that.
But they wouldn't replace it if it were in a %title%.

I understand that it's not a default, but personally I don't understand why anyone would want/need anything else, it's not like I'm picking my songs from the filenames. I have song titles over 100 characters long, then there's titles that contain reserved characters, it'd be a mess.
Having said that I do use %albumartistsort% and %album% as folder names so there are compromises, but use unicode equivalents (visually) for those e.g. ':' instead of ':'
 
I use dbPoweramp as primary ripper and I have tinkered to produce file names in the format %discnumber%-%tracknumber%-%title%.FLAC - tracknumber being 2 digit with leading 0 when necessary. I don’t have a lot of classical so I might have tracks where the title contains a dot but never noticed.

On even further reflection. I withdraw my remark about file names entirely
 
It's slightly more nuanced (if that's possible) than I originally thought because if there's a space in those characters between the dots then it works!

I'm actually surprised that this hasn't been noticed before, because even if I did use something like %track% - %title% I still have over 100 tracks that wouldn't play. To identify those I used the foobar syntax:
Code:
"$strstr($right(%title%,3),'.')" GREATER 0 AND "$strstr($right(%title%,3),' ')" EQUAL 0

I haven't tried them all as I think I've spent enough time on this already.
 
We have use MinimServer to reproduce this issue, but there is a very strange issue on MinimServer. If we change the file name to 01.01.flac, we can't see this file on MinimServer with Bubble UPnP app. So we can't cast the music to WiiM device to reproduce this issue.

We also use other media server (Serviio) to cast the 01.01.flac to WiiM device and WiiM can play it normally.
 
We have use MinimServer to reproduce this issue, but there is a very strange issue on MinimServer. If we change the file name to 01.01.flac, we can't see this file on MinimServer with Bubble UPnP app. So we can't cast the music to WiiM device to reproduce this issue.
What does "we can't see this file on MinimServer" mean exactly? Does it mean BubbleUPnP hasn't connected AT ALL to the WiiM?
If I use BubbleUPnP to cast to WiiM it returns "Invalid MIME-type or resource not find (code: 714).
If I use Hi-Fi Cast to cast to WiiM it returns "Invalid MIME-type or resource not find (code: 714).
If I use mconnect to cast to WiiM it returns "Invalid file location"

If I use those apps to cast to Sonos or Volumio for instance, the track plays.

If I tell BubbleUPnP to create a log file of processing I can see the response from the WiiM in the log:
Code:
WiiM Mini: doSetAVTransportURI: failed (qq.c: Invalid MIME-type or resource not find)

If I use the WiiM Home App to browse my MinimServer library it plays fine, so the problem isn't MinimServer, and it can't be that all the UPnP control points have the same problem, but only when casting to the WiiM.

If I curl the resource from MinimServer that is being sent to WiiM I get the response:
Code:
curl -v "http://192.168.1.24:9790/minimserver/*/MUSIC_EXAMPLE/Adele/2008*20-*2019*20(Expanded*20Edition)/CD01/01.01.flac"
*   Trying 192.168.1.24:9790...
* Connected to 192.168.1.24 (192.168.1.24) port 9790 (#0)
> GET /minimserver/*/MUSIC_EXAMPLE/Adele/2008*20-*2019*20(Expanded*20Edition)/CD01/01.01.flac HTTP/1.1
> Host: 192.168.1.24:9790
> User-Agent: curl/7.83.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Date: Sat, 18 Mar 2023 08:07:04 GMT
< Content-Length: 19606640
< Content-Type: audio/x-flac
< Connection: keep-alive
< Last-Modified: Mon, 13 Mar 2023 21:09:29 GMT
So the file is absolutely being served.

We also use other media server (Serviio) to cast the 01.01.flac to WiiM device and WiiM can play it normally.
Yes, and do you know why, because it's not being sent to you as 01.01.flac, Serviio uses a different URL scheme, file 01.01.flac through Serviio is sent as: http://192.168.1.24:8895/resource/17/MEDIA_ITEM/FLAC-0/ORIGINAL (yours will obviously differ slightly).

Given that if I take the full stop out (0101.flac) or add more characters between the full stops (01.010101.flac) it works, my assumption is that the WiiM is receiving the request, for some reason it's then trying to extract the file extension of the served file - maybe using some broken regular expression - which is incorrectly returning something like 01.flac, that isn't in the valid list of extensions so you're then throwing an error back to the control point.

Look in your code around the 'doSetAVTransportURI' section, or for the part that throws a (qq.c: Invalid MIME-type or resource not find) exception, specifically when being cast from a third-party app, as browsing the MinimServer library from WHA is fine.

I can't believe that this is not a WiiM problem, but if there is something that is being sent incorrecly PLEASE give us some detailed information so we can investigate things our side. We have very responsive developers with BubbleUPnP and MinimServer and they would defintely look into it if they had anything to go by.
 
Last edited:
Only a masochist would put full stops within a file name - it's just asking for trouble :)
I know you're joking but had you seen the post 2 above yours? If I'd used %title% (which most people do) I would still have over 100 tracks that couldn't play - assuming I didn't tell my tagger to remove full stops from there too.
 
If i stream from Kodi server with Bubble upnp app to Wiim i get the same 714 error
 

Attachments

  • Screenshot_2023-03-16-21-32-45-956_com.bubblesoft.android.bubbleupnp.jpg
    Screenshot_2023-03-16-21-32-45-956_com.bubblesoft.android.bubbleupnp.jpg
    624.5 KB · Views: 4
If i stream from Kodi server with Bubble upnp app to Wiim i get the same 714 error
But that's probably because of the %2520 problem. In both cases WiiM is throwing a generic resource error (because it can't process the extension or the URL encoding or ...) and that's being sent to the control point, which then presents it to the user.
 
What does "we can't see this file on MinimServer" mean exactly? Does it mean BubbleUPnP hasn't connected AT ALL to the WiiM?
If I use BubbleUPnP to cast to WiiM it returns "Invalid MIME-type or resource not find (code: 714).
If I use Hi-Fi Cast to cast to WiiM it returns "Invalid MIME-type or resource not find (code: 714).
If I use mconnect to cast to WiiM it returns "Invalid file location"

If I use those apps to cast to Sonos or Volumio for instance, the track plays.

If I tell BubbleUPnP to create a log file of processing I can see the response from the WiiM in the log:
Code:
WiiM Mini: doSetAVTransportURI: failed (qq.c: Invalid MIME-type or resource not find)

If I use the WiiM Home App to browse my MinimServer library it plays fine, so the problem isn't MinimServer, and it can't be that all the UPnP control points have the same problem, but only when casting to the WiiM.

If I curl the resource from MinimServer that is being sent to WiiM I get the response:
Code:
curl -v "http://192.168.1.24:9790/minimserver/*/MUSIC_EXAMPLE/Adele/2008*20-*2019*20(Expanded*20Edition)/CD01/01.01.flac"
*   Trying 192.168.1.24:9790...
* Connected to 192.168.1.24 (192.168.1.24) port 9790 (#0)
> GET /minimserver/*/MUSIC_EXAMPLE/Adele/2008*20-*2019*20(Expanded*20Edition)/CD01/01.01.flac HTTP/1.1
> Host: 192.168.1.24:9790
> User-Agent: curl/7.83.1
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Date: Sat, 18 Mar 2023 08:07:04 GMT
< Content-Length: 19606640
< Content-Type: audio/x-flac
< Connection: keep-alive
< Last-Modified: Mon, 13 Mar 2023 21:09:29 GMT
So the file is absolutely being served.


Yes, and do you know why, because it's not being sent to you as 01.01.flac, Serviio uses a different URL scheme, file 01.01.flac through Serviio is sent as: http://192.168.1.24:8895/resource/17/MEDIA_ITEM/FLAC-0/ORIGINAL (yours will obviously differ slightly).

Given that if I take the full stop out (0101.flac) or add more characters between the full stops (01.010101.flac) it works, my assumption is that the WiiM is receiving the request, for some reason it's then trying to extract the file extension of the served file - maybe using some broken regular expression - which is incorrectly returning something like 01.flac, that isn't in the valid list of extensions so you're then throwing an error back to the control point.

Look in your code around the 'doSetAVTransportURI' section, or for the part that throws a (qq.c: Invalid MIME-type or resource not find) exception, specifically when being cast from a third-party app, as browsing the MinimServer library from WHA is fine.

I can't believe that this is not a WiiM problem, but if there is something that is being sent incorrecly PLEASE give us some detailed information so we can investigate things our side. We have very responsive developers with BubbleUPnP and MinimServer and they would defintely look into it if they had anything to go by.
I mean that we can't see the 01.01.flac file via MinimServer on the BubbleUPnP app so we can't cast this track to WiiM device. Also we used the Serviio media server and we can see the 01.01.flac file and cast it to WiiM device successfully.
9ADE3ABCACF5BBFFD691831BF58AFE95.jpg
 
EDIT:
I mean that we can't see the 01.01.flac file via MinimServer on the BubbleUPnP app so we can't cast this track to WiiM device. Also we used the Serviio media server and we can see the 01.01.flac file and cast it to WiiM device successfully.
I've just re-read your post and I may have missed your point. Are you saying that MinimServer isn't indexing your files (I didn't send you any flacs), and so you can't even see them in BubbleUPnP?

Once you've placed the files in the MinimServer content directory, did you instruct MinimServer to rescan for new and modified files? MinimServer doesn't monitor for new files as it prides itself on keeping resources low (and given moving files to your content directory is a manual process it's not too much to ask to also scan afterwards).

There are three ways of doing this:
i) Within BubbleUPnP, if you go to the section where you can select from your list of your music servers, and then select the vertical ellipsis next to the MinimServer library you'll be presented with the option to 'Rescan Library'
BubbleRescan.jpg
ii) If you're using MinimWatch on a desktop, right click on the MinimWatch icon and select the 'Rescan' option.

iii) Go to 'http://xxx.xxx.x.xx:9790/' (where xxx.xxx.x.xx is the ip of the MinimServer server) and click Rescan from the Status tab.

If you've already rescanned but the files still aren't showing in BubbleUPnP then there must be something wrong with your files and MinimServer is rejecting them.
If you're using MinimWatch to perform a rescan, right click on the MinimWatch icon, select 'Show log', then right click again on MinimWatch and select Rescan. If there any problems during indexing you'll see messages appear in the log window.
MinimWatch.jpg
If you're not using MinimWatch then the log file can be found in the data folder of your MinimServer install named minimserver.log.

If there aren't any warning messages and your files still don't appear in BubbleUPnP can you send me a copy of one of the files, as MinimServer will definitely index files named XX.XX.flac as all my files are named that way.


This was my original response that still contains some useful information so I'll keep it here, even if it wasn't relevant to your response :)

I don't know what you think this image is showing you, but it's not telling you how the file is served, 01.01 in the display is coming from the metadata delivered to BubbleUPnP from Serviio, most likely because you don't have a TITLE tag in your MP3 file.

The problem isn't with the file (I told you that if I rename the file then it works), it's with how the file is delivered to WiiM. If you click on the vertical ellipses just below the track time in your image
9ADE3ABCACF5BBFFD691831BF58AFE95.jpg
and then select 'Show Metadata' you'll see a line item called Stream #1, and that's how Serviio is sending the file to WiiM. You'll notice, as I said in my last post, that it looks something like:
If you then browse that same file from MinimServer and look at 'Show Metadata' screen, Stream #1 will look something like: http://xxx.xxx.x.xx:9790/minimserver/*/MUSIC/Adele/2008*20-*2019*20(Expanded*20Edition)/CD01/01.01.flac

It's the 01.01.flac on the end of the URL that is causing the problem, using Serviio/AssetUPnP e.t.c. "fixes" the problem because they use a different naming scheme.

Given that if I take the full stop out (0101.flac) or add more characters between the full stops (01.010101.flac) it works, my assumption is that the WiiM is receiving the request, for some reason it's then trying to extract the file extension of the served file - maybe using some broken regular expression - which is incorrectly returning something like 01.flac, that isn't in the valid list of extensions so you're then throwing an error back to the control point.

Look in your code around the 'doSetAVTransportURI' section, or for the part that throws a (qq.c: Invalid MIME-type or resource not find) exception, specifically when being cast from a third-party app, as browsing the MinimServer library from WHA is fine.

Thank you for your time.
 
Last edited:
EDIT:

I've just re-read your post and I may have missed your point. Are you saying that MinimServer isn't indexing your files (I didn't send you any flacs), and so you can't even see them in BubbleUPnP?

Once you've placed the files in the MinimServer content directory, did you instruct MinimServer to rescan for new and modified files? MinimServer doesn't monitor for new files as it prides itself on keeping resources low (and given moving files to your content directory is a manual process it's not too much to ask to also scan afterwards).

There are three ways of doing this:
i) Within BubbleUPnP, if you go to the section where you can select from your list of your music servers, and then select the vertical ellipsis next to the MinimServer library you'll be presented with the option to 'Rescan Library'
View attachment 560
ii) If you're using MinimWatch on a desktop, right click on the MinimWatch icon and select the 'Rescan' option.

iii) Go to 'http://xxx.xxx.x.xx:9790/' (where xxx.xxx.x.xx is the ip of the MinimServer server) and click Rescan from the Status tab.

If you've already rescanned but the files still aren't showing in BubbleUPnP then there must be something wrong with your files and MinimServer is rejecting them.
If you're using MinimWatch to perform a rescan, right click on the MinimWatch icon, select 'Show log', then right click again on MinimWatch and select Rescan. If there any problems during indexing you'll see messages appear in the log window.
View attachment 556
If you're not using MinimWatch then the log file can be found in the data folder of your MinimServer install named minimserver.log.

If there aren't any warning messages and your files still don't appear in BubbleUPnP can you send me a copy of one of the files, as MinimServer will definitely index files named XX.XX.flac as all my files are named that way.


This was my original response that still contains some useful information so I'll keep it here, even if it wasn't relevant to your response :)


I don't know what you think this image is showing you, but it's not telling you how the file is served, 01.01 in the display is coming from the metadata delivered to BubbleUPnP from Serviio, most likely because you don't have a TITLE tag in your MP3 file.

The problem isn't with the file (I told you that if I rename the file then it works), it's with how the file is delivered to WiiM. If you click on the vertical ellipses just below the track time in your image
View attachment 555
and then select 'Show Metadata' you'll see a line item called Stream #1, and that's how Serviio is sending the file to WiiM. You'll notice, as I said in my last post, that it looks something like:
If you then browse that same file from MinimServer and look at 'Show Metadata' screen, Stream #1 will look something like: http://xxx.xxx.x.xx:9790/minimserver/*/MUSIC/Adele/2008*20-*2019*20(Expanded*20Edition)/CD01/01.01.flac

It's the 01.01.flac on the end of the URL that is causing the problem, using Serviio/AssetUPnP e.t.c. "fixes" the problem because they use a different naming scheme.

Given that if I take the full stop out (0101.flac) or add more characters between the full stops (01.010101.flac) it works, my assumption is that the WiiM is receiving the request, for some reason it's then trying to extract the file extension of the served file - maybe using some broken regular expression - which is incorrectly returning something like 01.flac, that isn't in the valid list of extensions so you're then throwing an error back to the control point.

Look in your code around the 'doSetAVTransportURI' section, or for the part that throws a (qq.c: Invalid MIME-type or resource not find) exception, specifically when being cast from a third-party app, as browsing the MinimServer library from WHA is fine.

Thank you for your time.
Thanks very much for your so detailed information. We have add the folder path into the MinimServer and it seems that this server can index all the files except the 01.01.flac file. I thinks maybe the version of the MinimServer is older and we will update it to the latest version to check with this issue again.
 
Thanks very much for your so detailed information. We have add the folder path into the MinimServer and it seems that this server can index all the files except the 01.01.flac file. I thinks maybe the version of the MinimServer is older and we will update it to the latest version to check with this issue again.
@WiiM Team

The "so detailed information" described what to do if those files didn't appear in BubbleUPnP, I assume you chose to ignore that?
I've installed the oldest version I have of MinimServer before it went to v2 which was December 2019 and these files index perfectly.
At this point I have to assume that the only reason you're replying at all is to meet some ticket SLA, and that's only because I keep opening tickets as it's the only way to get any response whatsoever.

I raised this issue in a ticket back in July, the last response to which was:
We have already used these music files that your provided to reproduce this issue but we can't. We also will google this issue and check why it happened.
At the time I thought "but we can't" meant that the files worked with MinimServer, BubbleUPnP and WiiM, mainly because at that point I hadn't been able to pinpoint the root cause, but now I have I know that it didn't mean that.

Given that the UPnP browsing aspect of the WiiM app is woeful, yet you can't successfully interface with MinimServer, KODI, LibreELEC and possbily others through third-party apps, I feel duty-bound to warn others who may look to purchase this equipment for UPnP purposes through an Amazon review.

I understand that a fix would take time, not because of it's complexity in this case but just scheduling the work in, but the complete disregard for tickets has left me really disappointed, with a product that I thought had such huge potential.
 
I have at least 10 friends that use Kodi and I'm afraid to recommend them to take linkplay device because i don't know if the problem will be fix and they don't know anything about upnp servers and of course they don't want to build server that cost more than device.

I feel duty-bound to warn others who may look to purchase this equipment for UPnP purposes through an Amazon review.
 
Back
Top