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).
- Download MusicDown from the App Store (iOS) or Google Play (Android).
- Download the example server script here.
Your server must have Python 3 installed with the requirements specified in the "requirements.txt" file.
- Change the content of the "password.txt" file with your own password.
- Place all your MP3 files in the "music" folder.
- 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.
- Open the MusicDown app on your phone.
- Set the server URL (e.g.http://192.168.1.23:25250/musicdown), and type the password you set. Then press "Ok".
- Each time you add new MP3 files on the server, press the "Reload server" button in the app.
- 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
- /
Must return a list of all available music in JSON format (see below) with 200 success status.
- /reload
Must return a 200 success status when reload or server action finished.
- /[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.
- /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
- I can not access my music files via the app.
- Make sure you have access to the server (e.g. you may need to be on the same network as the server).
- I do not have any music shown in the app.
- Make sure you have reloaded the server via the app. You need to reload it each time you add new MP3 files.
- It does not work
- Make sure you only have valid .mp3 files in the "music" folder on the server. Your MP3 files need to have ID3 title and artist tags in it.
- Can I use it over HTTPS ?
- In theory, yes. But you will need to have a valid certificate.
- Can I use it over internet ?
- Yes, you can access it over internet if you open the ports on your router/firewall or via a VPN.
- Can use it without password ?
- No, but you don't need to enter a strong password, although this is recommended.
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.