OrpheusDL
A modular music archival program
Table of content
About OrpheusDL
OrpheusDL is a modular music archival tool written in Python which allows archiving from multiple different services.
Getting Started
Follow these steps to get a local copy of Orpheus up and running:
Prerequisites
- Python 3.7+ (due to the requirement of dataclasses)
Installation
- Clone the repo
- Without modules:
git clone https://github.com/yarrm80s/orpheusdl.git
- Or with all modules
git clone --recurse-submodules https://github.com/yarrm80s/orpheusdl.git
- Without modules:
- Install all requirements
pip install -r requirements.txt
- Run the program at least once
python3 orpheus.py
- Enter your credentials in
config/settings.json
Usage
Just call orpheus.py
with any link you want to archive, for example Qobuz:
shell python3 orpheus.py https://open.qobuz.com/album/c9wsrrjh49ftb
Alternatively do a search (luckysearch to automatically select the first option):
shell python3 orpheus.py search qobuz track darkside alan walker
Configuration
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
Global/Formatting:
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.
Format variables
track_format
and album_format
variables are {title}
, {artist}
, {album_artist}
, {album}
, {track_number}
,
{total_tracks}
, {date}
, {isrc}
.
Contact
Yarrm80s (pronounced 'Yeargh mateys!') - @yarrm80s
Dniel97 - @Dniel97
Project Link: Orpheus Public GitHub Repository
Acknowledgements
- Chimera by Aesir - the inspiration to the project
- Icon modified from a freepik image