deter0 / Music-Player

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CANNOT GURRANTE SAFETY NOR FUNCTIONALITY OF THIS PROJECT ANYMORE

I've abondoned it, might restart on it at some point. If I do I will probably rewrite it.

Music Player

WARNING: WORK IN PROGRESS

Please note that a name has not been decided and "Music Player" is not the final name, obviously. But if you have name suggestion send them to me, please!!

An audio player, Spotify downloader, lyric finder, playlist maker, song organizer, song searcher, or anything you want it to be.

Supported formats: .M4A, .MP3, .WAV (and most likely more; testing needed)

Home Page

Liked songs

All data is saved locally. None is sent, ever.

Intelligent Search

Powered by Fuse.js

Spotify Song Download

How it works:

You first have to create an application on the Spotify developer website, then it will ask you to put in the client id and client secret. After that it will log you in with your Spotify account. You can search songs with the Spotify api. It then makes a Youtube search query "${song_name}"+lyrics (Can customize) to get the most relavent video then downloads it through youtube-dl. After it has been saved as an .m4a file the corresponding metadata is attached to the file e.g. the album cover, the title, the artist, etc.

Album Page

Lyrics

Powered by Musixmatch

Running

currently the only method is to run from source, this will change in the future.

Running from source

Dependencies: NodeJS, python, pip
First you'll have to clone the repo do so by running the following commands.

$ git clone https://www.github.com/deter0/Music-Player

then cd into the /Run folder and if not installed do. It is a folder for simple scripts I've made to make the process of installing dependencies and running easier.

$ ./install.sh

If it fails you might need to do chmod +x ./install.sh && chmod +x ./run.sh this just adds the executable permission.
After installation of modules has finished. Simply run the /Run/run.sh script.

$ ./run.sh

or manually do it by cd into /ReactApp/app/ and running

$ npm start

and in a seperate terminal tab run the server by cd'ing into /Server and also running

$ npm start

After running It will take you through a first time setup. If you somehow happen to input it wrong (don't be ashamed I've done it) you can see all the data in /Server/Data. Primarily the first time setup data is stored in /Server/Data/Paths.txt simply edit it and then restart the server. I will likely include this in settings page in the future.

TODO

Backend

  1. Spotify Download (and Youtube Download)
    • Integrate https://github.com/piyx/YoutubeSpotifyDL
    • Downloads page
    • Add a "Download" button to the songs
    • Add a "Download" button to the playlist
    • Add a "Download" button to the albums
    • Youtube link download
      • Integreated Youtube search
  2. Song Page
  3. Artist Page

Frontend

  1. Artist
  2. Song Page
  3. Artist Page
  4. Queues
  5. Better tracking of where you left of playing music

Other

  1. Command line interface

About


Languages

Language:TypeScript 76.3%Language:SCSS 14.9%Language:Python 7.9%Language:HTML 0.8%Language:Shell 0.1%