Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jamstash doesn't play #58

Open
apiontek opened this issue Mar 23, 2017 · 11 comments
Open

jamstash doesn't play #58

apiontek opened this issue Mar 23, 2017 · 11 comments

Comments

@apiontek
Copy link

I have set up supysonic for testing -- what a fascinating project! -- and it's working with DSub. I'm not terribly experienced but I have successfully run supysonic with uwsgi and with gunicorn, with bits and pieces of gathered info. Apache didn't work for me but I'm sure I was doing it wrong.

With DSub, it's working both directly (IP:port) in my LAN, and through nginx reverse proxy via domain name --
as I've always run Subsonic --but with jamstash it won't work with either. The artist list loads up, and I can browse music, but when I try to play something, nothing happens.

I'm not sure how to generate appropriate logs, or where to look. The supysonic log is empty.

@spl0k
Copy link
Owner

spl0k commented Mar 24, 2017

I have no issue with Jamstash. What type of file are you trying to play? Do you have transcoding set up?

@duperray
Copy link

Hi,
I can't see music in jamstash neither.
In Dsub, it works.
I copied pasted the transcoding section from README, and verified all command line encoder/decoder
where installed.
I see the "web" request of jamstash on the server no error, just nothing to play.
any idea?

By the way thanks for this excelent piece of software.

@spl0k
Copy link
Owner

spl0k commented Jun 26, 2017

@duperray can you at least browse your library? This might be another issue. I have to click on tabs for Jamstash to display stuff the first time I open it.

If you can browse but can't listen:
Is DSub configured to use transcoding? Or did you force transcoding in Supysonic's web interface?
As stated above Jamstash works for me, but I'm only streaming mp3s as-is. I know some formats might require to be converted to be played by certain clients (the FLAC/Jamstash combo could be one of them)

@duperray
Copy link

no I can't, but for now I'm using mysql + server.py, perhaps jamstash can't be used on a local network?
I don't know nothing about html5 apps

@spl0k
Copy link
Owner

spl0k commented Jun 27, 2017

I remember being able to use Jamstash on a local instance.
But if you're planning to just use supysonic you shouldn't use server.py directly. It doesn't serve more than one request at a time, meaning you wan't be able to play and browse your library at the same time (among many more limitations)

@spl0k
Copy link
Owner

spl0k commented Jun 27, 2017

@duperray if you want to keep using server.py, be sure to remove any trailing / in the server setting of Jamstash. http://server-address:port should work, http://server-address:port/ won't.

As for the original issue, Jamstash seems to only be able to play ogg/oga, m4a and mp3 files. Setting transcoding on the server won't help the way it's handled. I need a better understanding of how transcoding is supposed to work, the Subsonic API documentation is very vague about the response objects.

@duperray
Copy link

duperray commented Jul 9, 2017

@sl0k I set nginx + uwsgi, I can authenticate with jamstash and subfire, I see in the uwsgi logs things like that:
[pid: 16246|app: 0|req: 21/36] 192.168.0.254 () {46 vars in 834 bytes} [Sun Jul 9 23:13:05 2017] POST /zic/rest/getAlbumList2.view => generated 319 bytes in 16 msecs (HTTP/2.0 302) 4 headers in 340 bytes (1 switches on core 0)

but no music, no album. If it's an encoding issue, do you have a pointer to a file which is know to work?

thx for support

ps: the supysonic-cli folder scanned for 2 mp3 and one m4a, no success

@apiontek
Copy link
Author

Sorry, I haven't had time since I originally reported this and actually had to wipe out the instance I was testing with anyway.

I have time again and have set up a new instance of supysonic. Still having some trouble

My setup:

  • supysonic at commit 62bcce3, running in an ubuntu 16.04 lxd container with its own LAN IP
  • mariadb running in same container
  • default transcoding config (from config.sample, all apps installed)
  • lastfm scrobbling enabled with key/secret
  • minetypes enabled (not sure if necessary) with 'flac = audio/flac' added, I have a lot of FLAC
  • log_file now set to DEBUG
  • apache2 2.4.18 installed with the following config:
<VirtualHost *>
WSGIDaemonProcess supysonic user=myuser group=myuser threads=5
WSGIScriptAlias / /opt/supysonic/cgi-bin/supysonic.wsgi
<Directory /opt/supysonic/cgi-bin>
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    Require all granted
#    Order deny,allow
#    Allow from all
</Directory>
</VirtualHost>

For internal use I can go straight to my IP. say, 172.22.1.17

For external use I have a separate nginx proxy that I use for a number of services, including a concurrent Subsonic 6.1.1 server on a different internal lxd container/IP.

The nginx proxy settings are:

    location / {
        proxy_pass http://172.22.1.17;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#        add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
#        add_header X-Content-Type-Options "nosniff";
#        add_header X-XSS-Protection "1; mode=block";
#        add_header X-Robots-Tag none;
#        proxy_redirect off;
        proxy_force_ranges on;
     }

This is basically the same as what I use for Subsonic, except the commented lines are uncommented so the interface works properly, and I'm running Subsonic with https on so a couple of the other proxy settings are slightly different.

With all of that, here's what works and what doesnt:

Scanning media: worked great.
DSub: works flawlessly, both direct to internal IP when on local Wifi, and using the nginx proxy when outside my network. I can see the library and play files just fine, both MP3 and FLAC

Jamstash:

  • on local IP, using jsonp, I can load the library and search, but nothing plays
  • on local IP, using json, same.
  • on external proxy, using jsonp, nothing loads at all
  • on external proxy, using json, library loads with 2-3 jamstash "Error... not implemented" errors, and still nothing plays

I don't see anything helpful in the apache logs for Jamstash, just requests to load data, but nothing related to playing, and nothing shows up in the supysonic.log file.

Perisonic:

  • on local IP, loads and plays just fine
  • on external proxy, I just get "error connecting to server," and the following shows up in apache "other_vhosts_access.log":
127.0.1.1:80 172.22.1.41 - - [10/Oct/2017:16:24:44 +0000] "GET /rest/ping.view?u=adam&p=enc:72544f52417379636f6e2437&c=perisonic&v=1.8.0&f=jsonp&callback=jQuery21007795648296062347_1507649797759&_=1507649797778 HTTP/1.0" 200 535 "http://robinbakker.nl/perisonic/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"

Uncertain if I should try moving supysonic to my nginx proxy server and running it direct with fast cgi on nginx, avoiding the proxy? Or try using gunicorn like glogiotatidis/supysonic-docker does, or try to set up uWSGI, or...?

Happy to do some debugging/tinkering and try to figure this out!

@apiontek
Copy link
Author

Additional: just realized the files I had tried playing in jamstash were all flac. I tried an MP3 and it played fine.

But the flac files play fine in DSub? Is Jamstash maybe asking for them to be transcoded in a different way?

I tried commenting out decoder_flac = flac -d -c -s %srcpath in supysonic config but that didn't help.

@spl0k
Copy link
Owner

spl0k commented Oct 14, 2017

As stated above, Jamstash only supports ogg, m4a or mp3. In the meantime I made some changes to help clients be aware of transcoding (1e1b475) so Jamstash should now accept to load transcoded files.

I tried playing FLAC files with both DSub and Jamstash, and both with or without transcoding to mp3. Here are the results:

  • DSub without transcoding: works
  • DSub with transcoding: works
  • Jamstash without transcoding: does nothing
  • Jamstash with transcoding: still doesn't work, but at least there's a request coming up to the server

My guess is that this is coming from jPlayer (which Jamstash uses). Running Jamstash in debug mode we can see that it complains about an unsupported format if one tries to play a FLAC without transcoding, while saying it can't load the media URL if transcoding is enabled.

Quick reminder: to enable transcoding you have to set the transcoding section in the config, but you also need to go to supysonic's web UI to tell you want it for one client or another.

@apiontek
Copy link
Author

Thanks. The reminder was helpful because I missed that line about setting client transcoding settings in the admin interface. I set it to do mp3 @ 320 for jamstash (One just puts "mp3" in the format box, right?), did a git pull putting me up to da4cde7, but I see it's still failing to load media:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)
scripts.min.877d4a61.js:1 Keycode Triggered: 123
scripts.min.877d4a61.js:2 jPlayer error:  {type: "e_no_support", context: "{supplied:'mp3, oga, m4a'}", message: "It is not possible to play any media format provid…dia() on this browser using your current options.", hint: "Video or audio formats defined in the supplied option are missing."}
scripts.min.877d4a61.js:2 Stream interrupted, retrying from position:  0
scripts.min.877d4a61.js:2 jPlayer error:  {type: "e_url_not_set", context: "play", message: "Attempt to issue media playback commands, while no media url is set.", hint: "Use setMedia() to set the media URL."}
scripts.min.877d4a61.js:2 Stream interrupted, retrying from position:  0
vendor.min.bdea8d7f.js:19 [Deprecation] Using the Notification API on insecure origins is deprecated and will be removed in M61, around September 2017. You should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants