Subsonic and derivatives are music storage servers. Major functionality are, file based organization, tagging functions, transcoding capacities (for bandwidth saving), lastFM infos, podcasts management, and more. Web based, they also can be accessed from dedicated apps in both Android and iOS worlds.
Thus coupled with Volumio, they can be used to build a complete personal Audiophile solution for your hi-res files (studio masters, DSD, …) at home, and as a bonus, lets you access your music from the outside world via a web browser, a phone or a tablet.
Hello, I am a noob starting adventure with volumio. I already have a subsonic server running and would like to test volusonic.
When I try to intall manually the plugin in my volumio , i am always frustrated:
Steps:
1 copy volusonic.zip to /mnt/USB/volusonic (used windows explorer access)
2 sudo -i
3 cd /mnt/USB/volusonic
4 miniunzip volusonic.zip
5 cd volusonic
6 npm i (intall modules with a bunch of depecrated warnings)
7 volumio plugin install
it starts fases ok: plugin sucessfully compressed, progress 10
status : Downloading plugin … and stays like that forever…
maybe I am lost on what i am doing, not sure at all about how to install
. any help?
Install the plugin, it takes some minutes be patient. Dependencies are installed automatically
volumio plugin install
You should get something like this and be good
[code]
This command will install the plugin on your device
Compressing the plugin
No modules found, running “npm install”
npm WARN notice [SECURITY] mime has the following vulnerability: 1 moderate. Go here for more details: https://nodesecurity.io/advisories?search=mime&version=1.3.6 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm WARN notice [SECURITY] hoek has the following vulnerability: 1 moderate. Go here for more details: https://nodesecurity.io/advisories?search=hoek&version=2.16.3 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm WARN deprecated hoek@2.16.3: This version is no longer maintained. Please upgrade to the latest version.
npm WARN deprecated cryptiles@2.0.5: This version is no longer maintained. Please upgrade to the latest version.
npm WARN deprecated boom@2.10.1: This version is no longer maintained. Please upgrade to the latest version.
npm WARN notice [SECURITY] tunnel-agent has the following vulnerability: 1 moderate. Go here for more details: https://nodesecurity.io/advisories?search=tunnel-agent&version=0.4.3 - Run npm i npm@latest -g to upgrade your npm version, and then npm audit to get more info.
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN volusonic@0.0.1 No repository field.
Plugin succesfully compressed
Progress: 10
Status :Downloading plugin
Progress: 30
Status :Creating folder on disk
Progress: 40
Status :Unpacking plugin
Progress: 50
Status :Checking for duplicate plugin
Progress: 60
Status :Copying Plugin into location
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 70
Status :Installing dependencies
Progress: 90
Status :Adding plugin to registry
Progress: 100
Status :Plugin Successfully Installed
Done![/code]
Nice plugin, just tested and it streamed perfectly from my airsonic server … One thing that did not work was coverart, it did not populate at all in my listings.
Thanks for a great and very usefull plugin
Edit: Well the artwork populated after a reboot on device… So now everything works perfectly .
I am testing volumio with several plugins, multiroom: VOLUMIO 2.513
Sound Output -> I use HDMI output only
1 Raspberrypi 3 -> Music lib from NAS share (12000tracks)
SNAPCAST plugin (Server + client)
Spotify plugin
Volumio Spotify Connect 2
and now -> Volusonic
2x RaspiZeroW with same configuration except for Snapcast server (only client)
My SUBSONIC : 6.1.3 (build e408c9) – October 31, 2017
VOLUSONIC RESULT:
1-- Navigation across lib is OK, but when anything is selected to play, or , play button is pressed, the green message with “track name” is playing, pops up,…but play button stays with triangle and music never play…
2 – No Coverartwork when navigating in volusonic plugin, only artista name, álbum name and track name. When inside Artist, a Artwork is visible at first line.
Any ideia why?
Certenally I will repeat test with fresh volumio install, might have some issue conflit between plugins…
Camg70 could you please upgrade your subsonic server to the last version (6.1.5) ?
6.1.3 is known, once is not custom, to be API bugged and things have been fixed up on new versions, so please try again once updated and let me know what’s going on.
Volumio Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
e]0;volumio@volumio: ~avolumio@volumio:~$ sudo -i
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
root@volumio:/mnt/USB/volusonic# miniunzip volusonic.zip
e[Kroot@volumio:/mnt/USB/volusonic# miniunzip volusonic.zip
MiniUnz 1.01b, demo of zLib + Unz package written by Gilles Vollant
more info at winimage.com/zLibDll/unzip.html
This command will install the plugin on your device
Compressing the plugin
No modules found, running “npm install”
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN volusonic@0.0.1 No repository field.
Plugin succesfully compressed
Progress: 10
Status ownloading plugin
HI Rodan, I had same troubles before.
Please follow exactly foobarjo intruction.
ssh you Volumio (no sudo is needed) (if ssh not enabled go to your address “volumioname”.local/deb or volumioIP/dev and enable it
in ssh just follow instruction step1:wget, step2:unzip step3: change dir step4 : install plugin, just as esplained by foobarjo.
Restarted test with a fresh installation subsonic 6.1.5 + fresh installation VOLUMIO (2526)+ VOLUSONIC 0.0.1
Added music folder and played server locally with admin user
configured sucessfully Volusonic with admin/admin credentials
.
All navigatio ok , but when select something to PLAY … nothing happens except pop up saying it is playing.
Edit: I did some serious upgrade on mpd control based on lostmyshape’s heavy work (phishin plugin). Please test with the last version prior to post your log.
Edit2: Please also upgrade to the last version of Volumio. [Settings- > system → Check Updates] should do the job.
Thanks for this awesome plugin. Installation was performed without any problem (using subsonic 6.1.6 and last version of Volumio), except at the end, when I was asked to activate the plugin. I answered “yes” but nothing happened. So Ctl-C to abort. I could activate and configure the plugin in the web IU, so it’s not really a problem.
I works ok. I have two questions:
is it possible to have a directory view in the web UI and navigate though it? I only see standard classification (new albums, random, by artists, etc…). Any way to have the directory view, like in subsonic?
I used to have my subsonic server using https port, but without any certificate. With Chrome or Firefox, you just have to add the exception at first login, and that’s it. But via volusonic, music does not play, saying that a certificate is missing for each track. Moving back to http port 4040 solves the issue. Any way to use https without certificate?
There is no Index view as in subsonic UI, but you may try to deactivate the ID3 option in the Volusonic settings. Depend on how your library is built, you should get something clother to your drive in the Artist section.
Short answer: no
Long answer: Depending of your subsonic’s OS and usage, you may want to get a valid ssl certificate. You can pay for it, there is a lot of peoples offering this service on the web. Or you can use letsencrypt but you will need a static IP, access to your router, and if you don’t already own one, register a domain name.
Subsonic wants the certificate in the PKCS12, so once openssl tools intalled you may run
First point looks great, I can access my library like in Index view of Volumio, but I get errors like the one below: Seems to be related to cover art, although album art looks fine in Subsonic and volumio. I have a “cover.jpg” file in any directory with flac or mp3 tracks.
For the certificate issue, this will come in a second step, I think.
Denis
[2020-05-13 23:10:49,411] WARN RESTFilter - Error in REST API: For input string: "undefined"
java.lang.NumberFormatException: For input string: "undefined"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.valueOf(Integer.java:766)
at net.sourceforge.subsonic.controller.CoverArtController.createCoverArtRequest(CoverArtController.java:140)
at net.sourceforge.subsonic.controller.CoverArtController.handleRequest(CoverArtController.java:91)
at net.sourceforge.subsonic.controller.RESTController.getCoverArt(RESTController.java:2199)
at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:473)
at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:410)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:81)
at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:132)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at net.sourceforge.subsonic.security.RESTRequestParameterProcessingFilter.doFilter(RESTRequestParameterProcessingFilter.java:95)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at net.sourceforge.subsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:25)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at net.sourceforge.subsonic.filter.RESTFilter.doFilter(RESTFilter.java:42)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at net.sourceforge.subsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:36)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at net.sourceforge.subsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:41)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Actually, i’m not sure this error is the root cause.
I can reach an album via the “new albums” menu, and I can play it. And I have some errors in the log, althuogh it plays music.
But when I try to go through the “Artists” item, I can see the directories, but I’am stuck after having selected a couple of items down, it just stops parsing bnd remains on the same level.
It looks like I cannot go deeper than 3 or 4 levels in the directroy tree without being stuck. I alos think that the errors that appear in the log, which seem to be related to CoverArt, are not normal. CovertArt seems to work fine in Subsonic., as far as I can see…