WHAT IS THIS
suan-dl is a python script (and standalone executable) for ripping music from playlists found on suan.fm, hopefully with as little fuss as possible.
WHY IS THIS
Because suan.fm is a really good service, and the fact that everything on it is hosted offsite - on sites with tried-and-true download methods - makes it really easy to rip stuff off of it without destroying their bandwidth, or triggering a bazillion DMCA claims. (RIP 8tracks, probably.)
Also, it'd be nice to not have to worry about losing all of these playlists because tracks get taken down/moved around on YouTube/Soundcloud.
HOW IS THIS
suan-dl was written and tested under Python 2.7.10, and uses the following external modules:
- requests (http://docs.python-requests.org/en/master/)
- youtube-dl (https://rg3.github.io/youtube-dl/)
The code itself is less than 200 lines and is pretty straightforward. There are also some standalones, for people who don't know how to/don't want to use Python.
As part of youtube-dl, suan-dl also needs ffmpeg installed - sort of, at least; the script should run fine without it, but the output files tend to be broken, and likely won't work in most music players. You can get ffmpeg here (https://ffmpeg.org/). More details on installation are in the OS-specific standalone folders.
OK JUST GIVE ME IT
You've got a few solutions.
Use the script
The only python script in this repo is suan-dl.py. Once you have the two external libraries installed (both should be easily accessible through pip), you run it like any other script. It's only tested under Python 2.7.10 at the moment, and I don't really plan on changing that - it might work on earlier/older versions, but no guarantees.
Run the standalone
Currently, I have standalones for 64-bit OS X and Windows. If you have everything you need installed, you should be able to double click the enclosed executables with not problems; if you run into issues, check the enclosed readmes.
Either way, the script has only one argument, and it's optional: the URL of the suan.fm mix to rip from. Syntax for different systems is as follows:
python suan-dl.py URL
OS X Standalone:
Windows Standalone (uh, i think):
You can also double click on either of the executables, and you will be prompted for a URL instead.
The output is a folder, with the same name as the mixtape at the given URL, located at the location of the shell/terminal/command line/whatever.
The script will fail if it's given a malformed URL, if it can't open the given URL, or if there's already a folder where the script wants to create one for the mixtape. It might crash in some other ways, too.
UHH ANYTHING ELSE
pyinstaller --onefile suan-dl.py
I wrote this in an afternoon so don't @ me (or actually, maybe do?)