A modular music archival program
OrpheusDL is a modular music archival tool written in Python which allows archiving from multiple different services.
Follow these steps to get a local copy of Orpheus up and running:
- Python 3.7+ (due to the requirement of dataclasses), though Python 3.9 is highly recommended
- Clone the repo
- Without modules:
git clone https://github.com/yarrm80s/orpheusdl.git
- Without modules:
- Install all requirements
pip install -r requirements.txt
- Run the program at least once, or use this command to create the settings file
python3 orpheus.py settings refresh
- Enter your credentials in
config/settings.json
Just call orpheus.py
with any link you want to archive, for example Qobuz:
python3 orpheus.py https://open.qobuz.com/album/c9wsrrjh49ftb
Alternatively do a search (luckysearch to automatically select the first option):
python3 orpheus.py search qobuz track darkside alan walker
Or if you have the ID of what you want to download, use:
python3 orpheus.py download qobuz track 52151405
You can customize every module from Orpheus individually and also set general/global settings which are active in every
loaded module. You'll find the configuration file here: config/settings.json
track_filename_format
: How tracks are formatted in albums and playlists. The relevant extension is appended to the end.
album_format
, playlist_format
, artist_format
: Base directories for their respective formats - tracks and cover art are stored here. May have slashes in it,
for instance {artist}/{album}.
single_full_path_format
: How singles are handled, which is separate to how the above work. Instead, this has both the folder's name and the track's name.
track_format
variables are {name}
, {album}
, {album_artist}
, {album_id}
, {track_number}
,
{total_tracks}
, {disc_number}
, {total_discs}
, {release_date}
, {release_year}
, {artist_id}
, {isrc}
,
{upc}
, {explicit}
.
album_format
variables are {name}
, {artist}
, {artist_id}
, {release_year}
, {UPC}
, {explicit}
, {quality}
.
Yarrm80s - @yarrm80s
Dniel97 - @Dniel97
Project Link: Orpheus Public GitHub Repository
- Chimera by Aesir - the inspiration to the project
- Icon modified from a freepik image