irs | ||
tests | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
setup.cfg | ||
setup.py |
Ironic Redistribution System
(Shields: Gotta Catch Em All)
A music downloader that understands your metadata needs.
A tool to download your music with metadata. It uses Spotify for finding metadata and Youtube for the actual audio source.
Works with Python 2 and 3.
Demo and Usages
This is a demo of the CLI displayling its features:
The usages can be found with the -h
or --help
flag:
usage: irs [-h] [-a ARTIST -s SONG] [-A ALBUM [-a ARTIST]]
[-u USERNAME -p PLAYLIST] [-l LOCATION] [-o] [-c]
optional arguments:
-h, --help show this help message and exit
-a ARTIST, --artist ARTIST
Specify artist name. Must be used with -s/--song or
-A/--album
-s SONG, --song SONG Specify song name. Must be used with -a/--artist
-A ALBUM, --album ALBUM
Specify album name
-u USERNAME, --username USERNAME
Specify username. Must be used with -p/--playlist
-p PLAYLIST, --playlist PLAYLIST
Specify playlist name. Must be used with -u/--username
-l LOCATION, --location LOCATION
Specify a directory to place files in.
-o, --organize Organize downloaded files.
-c, --config Display path to config file.
So all of these are valid commands:
$ irs -a "Brandon Flowers" -s "Lonely Town"
$ irs -u "spotify" -p "Brain Food"
$ irs -A "Suicide Squad: The Album"
But these are not:
$ irs -s "Bohemian Rhapsody"
$ irs -p "Best Nirvana"
Install & The Dependencies (my new band name \s)
Really there's only one actual external dependency: ffmpeg
. For windows, you'll want to follow this guide. For OSX, you'll want to install it through brew
with this command:
$ brew install ffmpeg
For Linux, most package managers have ffmpeg
in their default repositories, so it can be installed like so:
$ sudo apt-get install ffmpeg
Or whatever your appropriate package manager is.
Other than ffmpeg
though, all other dependencies are automatically installed with pip
:
$ sudo pip install irs
Spotify Playlists
To download spotify playlists, you'll want to head to their Dev Apps page, here. After doing that you'll want to create a new app. Name it whatever you want and then once you've done that, find the Client ID
and Client Secret
keys. You'll want to take those keys and paste them into your system's environment variables as SPOTIFY_CLIENT_ID
and SPOTIFY_CLIENT_SECRET
, correspondingly. Viola! You can now download playlists!
Metadata
Currently, the program attaches the following metadata to the downloaded files:
- Title
- Artist
- Album
- Album Art
- Genre
- Track Number
- Disc Number
- Compilation (iTunes only)
Philosophy
When I made this program I was pretty much broke and my music addiction wasn't really helping that problem. So, I did the obvious thing: make an uber-complicated program to steal download music for me! As for the name, its acronym spells IRS, which I found amusing, seeing as the IRS takes steals money while my program gives reimburses you with music.
The design/style inspiration of pretty much everything goes to k4m4.
Wishlist
- Full album downloading
- Album art metadata correctly displayed
- Spotify playlist downloading
- GUI/Console interactive version - in progress
- Lyric metadata
- 99% success rate for automatic song choosing