memen45 / SubMusic

Sync music and podcasts to your Garmin watch from your own SubSonic or Ampache server
GNU General Public License v3.0
122 stars 13 forks source link

error 200 #5

Closed Vendo232 closed 3 years ago

Vendo232 commented 4 years ago

Hi

I`m using Nextloud, downloaded couple MP3 podcasts, followed your guide. Connect on my watch Garmin 5 PLus , can see and check my playlists and then when I want to synch it gives me blank screen with "200"

my link to ampache is http://.... although the web I access nextcloud through is https://

any idea what to do?

memen45 commented 4 years ago

Have you tried the 'Test Server' option on the watch? This option provides more information when an error occurs.

It is weird that you are getting an http address in the nextcloud while accessing it from https. Did you setup the redirect properly? As far as I know http access should work, but if you have https available I would recommend using https.

Vendo232 commented 4 years ago

changed link to https

I got Test Succeeded, then sync gives me "200" ( using subsonic)

When I switch to ampache the test shows "Inlog OK" the circle is half way complete and sync gives "200"

memen45 commented 4 years ago

Thanks for testing. I noticed that the error checking during sync is more strict than for the Test Server option. Therefore, the test probably crashes upon retrieving the playlist songs from the Ampache backend and does not show the actual error. Error 200 indicates that the server responded, however the response is either malformed or reports an Ampache error. Which version of nextcloud and nextcloud music are you using?

Vendo232 commented 4 years ago

I`m running Nextcloud behind NGINX Proxy Manager, so here is what I have done so far

Ampache backend will give error "Music Synch Error" , test will show "inlog OK" half circle Subsonic will pretend it is working , but progress will show 0%, on cancel and redo it will show progress reaching 100% but have to cancel the synch and playlists remain empty.

memen45 commented 4 years ago

Inlog OK with half circle would indicate the server never responds to playlist_songs action. Or the response is filtered by the watch software and the callback does not occur. Since it is throwing an error during the sync, I suspect there is something wrong with the response. I am currently working on an update, so I will try and finish that before I can debug on an updated nextcloud music (0.16).

memen45 commented 4 years ago

I have just checked and my server actually runs the latest version of nextcloud music (v0.16) and it is working smoothly with the SubMusic app. Therefore I think the problem is with your setup. If you are able to provide me (privately) with some temporary login, I could debug the problem in more detail in the simulator.

It is interesting to see that you are actually able to retrieve the list of playlists, but not the playlist songs.

Thanks in advance for sharing your findings.

Vendo232 commented 4 years ago

May I ask you, if you have time to check if you could reproduce my issues?

I`m getting error in logg, not sure what it means

`[PHP] Error: fseek(): stream does not support seeking at /var/www/html/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php#82

GET /apps/music/api/album/48/cover from 73.181.52.166 by admin at 2020-10-03T15:42:29+00:00`

I do have my storage linked as SMB storage, using Open Medial Vault + Docker Airsonic to download podcasts.

Is there any other Linux method other than Nextcloud how to host Server for the watch synch process?

memen45 commented 4 years ago

I just tested on your server and indeed get to the Login OK. I found that some of the metadata is null, and therefore an exception is thrown when trying to convert the null to a number. First, this is a bug that has been reported here, and is indeed related to your external SMB storage. Please check in on that issue to get the root cause solved. Secondly, I can fix the problem by checking for null values on the response. It can take a few days, since I am simultaneously working on some larger rework of the app.

Other (open source) solutions you can use to connect to are Ampache/Ampache, AirSonic and (closed source) Subsonic.

Vendo232 commented 4 years ago

I have tried AirSonic and it did not work, Ampache using Ampache API appeared it is working, I was able to synch playlist and it showed lenght under the playlist but could not make it play.

Because I was not able to setup shared folder to work with Nextcloud other than SMB this is probably dead end for me.

Thank you for your effort and help.

memen45 commented 4 years ago

For Airsonic you need to change the backend in the settings to Subsonic API, as well as the url to the correct one.

With the Ampache API backend, were you able to select the playlist for playback? Or is the music player still empty?

Up until now, I have not received any reports that the app is not working with either Airsonic or Ampache. Your problem with SMB is one I can and will address in the next update, however the other two solutions should just work if you use a default setup and the correct settings. If you need specific help that is unrelated to this issue, you can use the contact developer option in the Garmin app store.

If it is okay with you, I will leave this issue opened until v0.0.16 is available.

Vendo232 commented 4 years ago

Would you be able to advise where is the API setting in Airsonic, I was not able to find it

memen45 commented 4 years ago

Airsonic implements the Subsonic API, so you need to go to the connect iq app, open the SubMusic app page, go to settings and then change the first setting 'API backend' to Subsonic API. Also change the url to the url that you use in the browser to open the Airsonic web page, and of course use the same login name and password as you use in the browser.

Vendo232 commented 4 years ago

ohh, I did that, the same I did use for Ampache. tried Ampache and Subsonic API in the IQ Subsonic app Setting. Used my HTTPS://XYZ Domain I use to connect to Ampache and Subsonic. Used Login and Password to get to the Ampache and Subsonic.

Let me do it again and write down the error codes for each way

Vendo232 commented 4 years ago

What I did was to uninstall the Subsonic app from my watch everytime I changed setting, Also had to restart phone IQ app several times.

Using : Airsonic

Using Ampache

I must say that there is a user level influence in these tests, the whole Music streaming AND operation with apps on Garmin watch is new to me and I have made most likely some mistakes.

My primary interest is to setup some semi-automated process to get Podcasts into my watch. I`m not willing to pay 60$ a year for Runcast. The Airsonic can download automatically selected podcasts, now using Subsonic API I should be able to upload them to the watch in case there is no restriction to length or size of the MP3.

memen45 commented 4 years ago

Thanks for the update!

The wifi speed is very low on watch devices, so if you try to sync such a large file, it may take a while. For normal length songs (3 mins, 4 MB) it might already take up to a minute, so for lengthy podcasts (190 mins, ~240 MB?) it might take a long time to sync. I cannot find the size limits for audio files, so that would need some testing to find out.

Airsonic

Ampache

memen45 commented 4 years ago

Hi,

The update was released just now under v0.0.16-pi. It addresses some problems you mentioned here as well (e.g. the Nextcloud external storage bug), so let me know if it works better now. Download speed will still be low though, due to watch limitations.

Vendo232 commented 4 years ago

Hello, great news, will give it a try tomorrow and will report back.

memen45 commented 4 years ago

According to #6, the sync of a single podcast can take up to 6 minutes. In the meantime, the progress will not update, so it might look like it is not working.