-
Notifications
You must be signed in to change notification settings - Fork 694
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
Add subsonic playlist functionality #1083
base: master
Are you sure you want to change the base?
Conversation
Connects to a Subsonic server and displays the user's playlists as icons on the demo desktop. The playlists can be activated and loaded into Webamp and played from Subsonic. (Creating and saving playlists not supported.) This should live in a media library window mentioned in captbaritone#627 but fake files are good enough for now. The URL must have parameters u, s, t, and (optionally) d for the username, salt, token, and domain respectively (if omitted, defaults to current page's domain). Token is md5(user's password + salt) in hexadecimal encoding, see http://www.subsonic.org/pages/api.jsp for more. Subsonic server may need proper CORS configuration. I built and used this with a personal Funkwhale instance.
Cool! I'll admit I had to Google Subsonic and Funkwhale (links below for others like me who are uninitiated). This is a cool idea, thanks for sharing the code! I don't personally use Subsonic so I'm hesitant to merge this in since I won't be able to test it or validate that it doesn't break moving forward. That said, I can imagine folks who do use Subsonic might find this fun. If you'd like to setup a public instance of Webamp that includes this feature, by all means do. One question/piece of feedback: Is it save to include the password hash in the URL? From https://neilmadden.blog/2019/01/16/can-you-ever-safely-include-credentials-in-a-url/:
Note: The Netlify build failure is not your fault. I broke that. If you rebase on top of #1084 it should be fixed. |
I'll look into setting up something small for Subsonic functionality. URL parameters are likely not the best solution, but they were the fastest to implement, particularly in the use case of clicking a link in the main Funkwhale interface to switch to Webamp. A form would probably be ideal for security, but I didn't see any existing forms to copy and build from. (right?) Re the build: I read the log, and figured I didn't do it, heh. |
Adds form to connect to Subsonic. Try to detect Subsonic login automatically. Correct font stack for desktop icons.
Connects to a Subsonic server and displays the user's playlists as icons on the demo desktop. The playlists can be activated and loaded into Webamp and played from Subsonic. (Creating and saving playlists not supported.) This should live in a media library window mentioned in captbaritone#627 but fake files are good enough for now. The URL must have parameters u, s, t, and (optionally) d for the username, salt, token, and domain respectively (if omitted, defaults to current page's domain). Token is md5(user's password + salt) in hexadecimal encoding, see http://www.subsonic.org/pages/api.jsp for more. Subsonic server may need proper CORS configuration. I built and used this with a personal Funkwhale instance.
Adds form to connect to Subsonic. Try to detect Subsonic login automatically. Correct font stack for desktop icons.
borrowed from Windows 93 https://www.windows93.net/
Don't pass metadata so music-metadata-browser will scan and load more data
I've implemented a form to enter credentials, and deployed it to my Funkwhale instance, and set up a demo account there. https://music.theandrewbailey.com/webamp/ I'll email you credentials for the login. |
Connects to a Subsonic server and displays the user's playlists as icons on the demo desktop. The playlists can be activated and loaded into Webamp and played from Subsonic. (Creating and saving playlists not supported.) This should live in a media library window mentioned in #627 but fake files are good enough for now.
The URL must have parameters u, s, t, and (optionally) d for the username, salt, token, and domain respectively (if omitted, defaults to current page's domain). Token is md5(user's password + salt) in hexadecimal encoding, see http://www.subsonic.org/pages/api.jsp for more. Subsonic server may need proper CORS configuration.
I built and used this with a personal Funkwhale instance.