All Projects → peguerosdc → subplayer

peguerosdc / subplayer

Licence: GPL-3.0 license
A music player frontend compatible with Subsonic backends

Programming Languages

javascript
184084 projects - #8 most used programming language
Less
1899 projects

Projects that are alternatives of or similar to subplayer

amplyfm
A free and open-source web app for streaming music.
Stars: ✭ 46 (-30.3%)
Mutual labels:  music-player, audio-streaming, music-streaming
Airsonic
📡 ☁️ 🎶Airsonic, a Free and Open Source community driven media server (fork of Subsonic and Libresonic)
Stars: ✭ 1,876 (+2742.42%)
Mutual labels:  self-hosted, subsonic, airsonic
auddly
Self hosted music streaming app
Stars: ✭ 60 (-9.09%)
Mutual labels:  music-player, self-hosted
multi-scrobbler
Scrobble plays from multiple sources to multiple clients
Stars: ✭ 54 (-18.18%)
Mutual labels:  subsonic, airsonic
amperfy
Amperfy is an iOS app to play songs from an Ampache or Subsonic server
Stars: ✭ 117 (+77.27%)
Mutual labels:  music-player, subsonic
Tizonia Openmax Il
Command-line cloud music player for Linux with support for Spotify, Google Play Music, YouTube, SoundCloud, TuneIn, iHeartRadio, Plex servers and Chromecast devices.
Stars: ✭ 1,556 (+2257.58%)
Mutual labels:  music-player, audio-streaming
deplayer
Decentralized mediaplayer which runs entirely in the browser.
Stars: ✭ 14 (-78.79%)
Mutual labels:  music-player, subsonic
SourceRadio
Stream music from YouTube while playing games on Steam
Stars: ✭ 10 (-84.85%)
Mutual labels:  music-player, music-streaming
Lms
Lightweight Music Server. Access your self-hosted music using a web interface.
Stars: ✭ 315 (+377.27%)
Mutual labels:  music-player, self-hosted
Private-Cloud-Music
Private Cloud Music - a really simple and easy-to-use online music player.
Stars: ✭ 40 (-39.39%)
Mutual labels:  music-player, music-streaming
PyTunes
A lightweight music player made in Python
Stars: ✭ 38 (-42.42%)
Mutual labels:  music-player
aurial
A browser client for streaming music from servers implementing the Subsonic API
Stars: ✭ 28 (-57.58%)
Mutual labels:  subsonic
rocket2
🚀 The official UBC Launch Pad Slack bot and team management platform
Stars: ✭ 17 (-74.24%)
Mutual labels:  self-hosted
YuMusic
A Music Player Build with JavaFX WebView, iView,RequireJS
Stars: ✭ 17 (-74.24%)
Mutual labels:  music-player
Proxmox
Proxmox Helper Scripts
Stars: ✭ 3,882 (+5781.82%)
Mutual labels:  self-hosted
drive-music-player
Fully client side Music Player for Google Drive
Stars: ✭ 567 (+759.09%)
Mutual labels:  music-player
minimal-player
This is a minimal, clean audio/music/mp3 player with spinning cover images, built with jQuery, TweenMax.js and SVG images.
Stars: ✭ 48 (-27.27%)
Mutual labels:  music-player
laravel-analytics
Analytics for the Laravel framework.
Stars: ✭ 138 (+109.09%)
Mutual labels:  self-hosted
anyfesto
Low cost Raspberry Pi /Linux based access point with audio, education and communications local content server. Inspired by the ideas of sharing with others. Anyfesto - a platform from which to speak.
Stars: ✭ 66 (+0%)
Mutual labels:  audio-streaming
KTAudioSoundWave
🍐KTSoundWave-根据语音绘制波浪动画,录音波形图及分贝检测
Stars: ✭ 22 (-66.67%)
Mutual labels:  audio-streaming

Subplayer

codecov Build Status Docker Pulls

This is a frontend application designed to be a simple, functional and nice looking web player to be used with a Subsonic backend (tested with spl0k/supysonic and deluan/navidrome).

Overview

Live Demo: Subplayer at Netlify

Features

  • Play and seek audio
  • View/create/edit playlists
  • Add/remove songs from Starred
  • Search artists/albums/songs
  • Browse your music by Artist, Albums and Genres (only compatible with v1.13.0)
  • Star/unstar albums
  • Scrobble
  • Add/Remove from queue
  • Theming

Building custom themes

By default, the only themes available are Blue, Orange, Green and Grey (all in light and dark mode). If you want to create your custom themes, you can edit /themes.config.js with your own object to change how Rsuite will look like. Each theme must be named starting with either "light" or "dark" to let the compiler know which settings to load.

To see the list of variables that you can define for customization, visit RSuite's documentation.

NOTE: the tool that Rsuite provides to create custom themes is not designed to work with create-react-app (which is how this project was built), so the implementation here is considered a hack and, as a result, it has (as far as I found) two downsides:

  1. you can't create a lot of themes as the compiler will run out of memory (that's why I only defined 4 colours by default) and
  2. on the first run, you will see a blank page. After reloading, the application will work as expected.

Installation

Running the source code

Clone the repository and run from the root folder:

$ yarn install
$ yarn start

Docker installation

To build the image yourself:

$ docker build . -t peguerosdc/subplayer

Or using the experimental buildx to build (and push) for multiple platforms:

$ docker buildx build --platform linux/arm64,linux/amd64 --push -t peguerosdc/subplayer .

To run the image:

$ docker run --name mysubplayer \
    -p 8000:80 \
    --restart unless-stopped \
    -d peguerosdc/subplayer

To stop:

$ docker stop mysubplayer

TODO

  • Implement CI to push Docker image automatically when merged to master
  • There are some TODOs in the unit tests, but most features are tested.
  • feature: Rearrange items in queue. I tried this with the current rsuite's Table but didn't like the final implementation. I am thinking in (someday) writing a new <SongsTable/> from scratch to add all the features I want.
  • Re-work MusicPlayer.
  • How to test components with hooks without 1) using mount and 2) re-doing all the unit tests with React Testing Library?

Contributions

Any TODO item, any bug you find and want to fix, any architecture/performance/Docker improvements, any new feature you think would be cool to have is welcome :) Just keep in mind that this project is meant to be a lightweight application.

NOTE: if you want to add new features, please implement at least the basic unit tests you can think of. Pull-requests will not be merged without testing.

Acknowledgements

License

Licensed under the GNU General Public License v3.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].