node package manager



The intelligent SoundCloud downloader. Downloads any url, and tags it automatically.


npm install scdl -g

scdl requires either ffmpeg or eyed3 to be installed.
FFmpeg is the default tag writing driver, eye3d can also be used, but seems to be rather unstable from my own tests.


Linux (debian): apt-get install ffmpeg
OSX: brew install ffmpeg (if you haven't already, get homebrew)
Windows: choco install ffmpeg (if you haven't already, get chocolatey)


Simply install it trough pip with

sudo pip install eyed3

or optionally on osx (doesn't require sudo)

brew install eyed3

CLI usage

$ scdl --help
  Usage: scdl [options] <url>
    -h, --help                      output usage information
    -V, --version                   output the version number
    -d, --driver [value]            ID3 tagging driver, either ffmpeg or eyed3.
    -l, --logging                   If present, a scdl.log will be created in the current directory.
    -o, --output-directory [value]  Change output directory in which files will be stored. (no trailing slash)


If you want to use SCDL from your own app, you can!
Install scdl as a local dependency, var scdl = require('scdl') and you're good to go

.url(url, callback)

  • url SoundCloud URL (playlist, profile, individual track, whatever)
  • callback(error, files) Callback that gets called when everything has been downloaded & tagged.
    • error: will contain error object if error occured
    • files: array of outputted files

.on(event, callback)

  • event: Any of the following: 'start', 'progress', 'end'.
  • callback Callback function, every call except 'progress' will have the filename as the 1st argument.
    'progress' returns the percentage and as 2nd argument the filename