Minimal Music player, built with Python + Flask.
- Minimal. No genre or liked/starred song feature. Just song name, duration, and player
- The player can be easily controlled through keyboard shortcuts:
- Space bar: Toggles play/pause
- +/- keys: Increase (+) or decrease (-) the volume
- Arrow keys: Seek forward (right arrow) or backward (left arrow)
- Loop, Shuffle
- Playlists. Made when creating a folder in the
music
folder - Updates the browser tab title with the currently playing song information
- Progresses automatically when the current one ends
- Web
- Playlist feature?, separated by folder
- Shuffle feature
- Handling when 2 songs are played at the same time
- Looping feature
- Random feature
- Change UI
- Keyboard control
- Change the title when playing a song
-
If click on a playing song, stop it. Keep it simple - Go to the main page when clicking on the header
- Bug: after seeking by mouse, cannot stop or play the song, maybe there is a bug with the focus
- sort songs in alphabetical order of All songs route
-
Keep song playing when change route - Download Soundcloud song
- Using yt-dlp
- Crawl all the links of liked songs on Soundcloud, then use Selenium to download songs (not download all of that)
- Also get the song's name, and format it when downloading
- add a route for downloading songs? or keep it simpe?
- If have lots of songs, implement fuzzy search for searching songs, or just show random songs
- song in multiple playlists? SQL?
- Another way to get the duration of the song, remove librosa
- Maybe delete the current approach for playlist, using a database instead for better speed?
- database: Schema: id, name, length, path
- Store song duration, for customized player bar, and no more using librosa lib to get duration
- Clone this repo
git clone https://github.com/ngntrgduc/musyc-player.git
flask run
- Go to http://127.0.0.1:5000/ and relax