MusicDown

MusicDown is a mobile app allowing you to listen to and download audio files from your own server on your mobile phone.

You can either use the example server software and host it yourself, or develop/create your own HTTP/S server (REST API).


How to use the "MusicDown" app with the example server software ?

Please note that this software is an example Python script, and although it can be used as is, it is recommended that you adapt it to your needs.
The example server software only supports MP3 files with ID3 title and artist tags (if the tags are missing, it won't work).

  1. Download MusicDown from the App Store (iOS) or Google Play (Android).
  2. Download the example server script here.
    Your server must have Python 3 installed with the requirements specified in the "requirements.txt" file.
  3. Change the content of the "password.txt" file with your own password.
  4. Place all your MP3 files in the "music" folder.
  5. Run the Python script called "main.py" on your server.
    You can change the server port by editing the script and replacing the port specified at the bottom of the file before running the script if needed.
  6. Open the MusicDown app on your phone.
  7. Set the server URL (e.g.http://192.168.1.23:25250/musicdown), and type the password you set. Then press "Ok".
  8. Each time you add new MP3 files on the server, press the "Reload server" button in the app.
  9. You can now use MusicDown and enjoy your audio files.


How to create your own server software for the "MusicDown" app ?

This section is intended for people who wish to develop/create their own server software (REST API) for "MusicDown" with appropriate endpoints.

Here is the list of endpoints needed for the "MusicDown" app

  1. /
    Must return a list of all available music in JSON format (see below) with 200 success status.
  2. /reload
    Must return a 200 success status when reload or server action finished.
  3. /[FILE_NAME]Where "[FILE_NAME]" is the name of the MP3 file
    Must return the MP3 file to download or play with 200 success status or a 404 not found status.
  4. /image/[FILE_NAME]Where "[FILE_NAME]" is the name of the MP3 file
    Must return the cover art image of the MP3 file with 200 success status or a 404 not found status.
Please note that you can also return an unauthorized 401 status for all endpoints if the password sent as a parameter to the "GET" request does not match the password defined by the server.

Here is the JSON format needed for the / endpoint
[
  {
    "artist": "Artist name",
    "path": "demo_music.mp3",
    "title": "Music title"
  },
  ...
]


Troubleshooting and FAQ using the example server


Support

As MusicDown is a project made during my free time. There's no actual support, but you can always contact me by email (me@koizeay.com).

koizeay.com


Privacy

MusicDown does not collect any data.