# Soundcloud Music Downloader
## Description
This script is able to download music from SoundCloud and set id3tag to the downloaded music.
Compatible with Windows, OS X, Linux.
## System requirements
* python3
* ffmpeg
## Installation Instructions
https://github.com/flyingrub/scdl/wiki/Installation-Instruction
## Configuration
There is a configuration file left in `~/.config/scdl/scdl.cfg`
## Examples:
```
# Download track & repost of the user QUANTA
scdl -l https://soundcloud.com/quanta-uk -a
# Download likes of the user Blastoyz
scdl -l https://soundcloud.com/kobiblastoyz -f
# Download one track
scdl -l https://soundcloud.com/jumpstreetpsy/low-extender
# Download one playlist
scdl -l https://soundcloud.com/pandadub/sets/the-lost-ship
# Download only new tracks from a playlist
scdl -l https://soundcloud.com/pandadub/sets/the-lost-ship --download-archive archive.txt -c
# Sync playlist
scdl -l https://soundcloud.com/pandadub/sets/the-lost-ship --sync archive.txt
# Download your likes (with authentification token)
scdl me -f
```
## Options:
```
-h --help Show this screen
--version Show version
-l [url] URL can be track/playlist/user
-s [search_query] Search for a track/playlist/user and use the first result
-n [maxtracks] Download the n last tracks of a playlist according to the creation date
-a Download all tracks of user (including reposts)
-t Download all uploads of a user (no reposts)
-f Download all favorites (likes) of a user
-C Download all tracks commented on by a user
-p Download all playlists of a user
-r Download all reposts of user
-c Continue if a downloaded file already exists
--force-metadata This will set metadata on already downloaded track
-o [offset] Start downloading a playlist from the [offset]th track (starting with 1)
--addtimestamp Add track creation timestamp to filename,
which allows for chronological sorting
(Deprecated. Use --name-format instead.)
--addtofile Add artist to filename if missing
--debug Set log level to DEBUG
--error Set log level to ERROR
--download-archive [file] Keep track of track IDs in an archive file,
and skip already-downloaded files
--extract-artist Set artist tag from title instead of username
--hide-progress Hide the wget progress bar
--hidewarnings Hide Warnings. (use with precaution)
--max-size [max-size] Skip tracks larger than size (k/m/g)
--min-size [min-size] Skip tracks smaller than size (k/m/g)
--no-playlist-folder Download playlist tracks into main directory,
instead of making a playlist subfolder
--onlymp3 Download only mp3 files
--path [path] Use a custom path for downloaded files
--remove Remove any files not downloaded from execution
--sync [file] Compares an archive file to a playlist and downloads/removes any changed tracks
--flac Convert original files to .flac. Only works if the original file is lossless quality
--no-album-tag On some player track get the same cover art if from the same album, this prevent it
--original-art Download original cover art, not just 500x500 JPEG
--original-name Do not change name of original file downloads
--original-metadata Do not change metadata of original file downloads
--no-original Do not download original file; only mp3, m4a, or opus
--only-original Only download songs with original file available
--name-format [format] Specify the downloaded file name format. Use "-" to download to stdout
--playlist-name-format [format] Specify the downloaded file name format, if it is being downloaded as part of a playlist
--client-id [id] Specify the client_id to use
--auth-token [token] Specify the auth token to use
--overwrite Overwrite file if it already exists
--strict-playlist Abort playlist downloading if one track fails to download
--add-description Adds the description to a seperate txt file (can be read by some players)
--no-playlist Skip downloading playlists
--opus Prefer downloading opus streams over mp3 streams
```
## Features
* Automatically detect the type of link provided
* Download all songs from a user
* Download all songs and reposts from a user
* Download all songs from one playlist
* Download all songs from all playlists from a user
* Download all songs from a user's favorites
* Download only new tracks from a list (playlist, favorites, etc.)
* Sync Playlist
* Set the tags with mutagen (Title / Artist / Album / Artwork)
* Create playlist files when downloading a playlist
Raw data
{
"_id": null,
"home_page": "https://github.com/flyingrub/scdl",
"name": "scdl",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "FlyinGrub",
"author_email": "flyinggrub@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/da/99/47d828db84c7e9cbc4a5117be77f27d531e8dd5d328627737445aecf48d2/scdl-2.12.3.tar.gz",
"platform": null,
"description": "# Soundcloud Music Downloader\n## Description\n\nThis script is able to download music from SoundCloud and set id3tag to the downloaded music.\nCompatible with Windows, OS X, Linux.\n\n\n## System requirements\n\n* python3\n* ffmpeg\n\n## Installation Instructions\nhttps://github.com/flyingrub/scdl/wiki/Installation-Instruction\n\n## Configuration\nThere is a configuration file left in `~/.config/scdl/scdl.cfg`\n\n## Examples:\n```\n# Download track & repost of the user QUANTA\nscdl -l https://soundcloud.com/quanta-uk -a\n\n# Download likes of the user Blastoyz\nscdl -l https://soundcloud.com/kobiblastoyz -f\n\n# Download one track\nscdl -l https://soundcloud.com/jumpstreetpsy/low-extender\n\n# Download one playlist\nscdl -l https://soundcloud.com/pandadub/sets/the-lost-ship\n\n# Download only new tracks from a playlist\nscdl -l https://soundcloud.com/pandadub/sets/the-lost-ship --download-archive archive.txt -c\n\n# Sync playlist\nscdl -l https://soundcloud.com/pandadub/sets/the-lost-ship --sync archive.txt\n\n# Download your likes (with authentification token)\nscdl me -f\n```\n\n## Options:\n```\n-h --help Show this screen\n--version Show version\n-l [url] URL can be track/playlist/user\n-s [search_query] Search for a track/playlist/user and use the first result\n-n [maxtracks] Download the n last tracks of a playlist according to the creation date\n-a Download all tracks of user (including reposts)\n-t Download all uploads of a user (no reposts)\n-f Download all favorites (likes) of a user\n-C Download all tracks commented on by a user\n-p Download all playlists of a user\n-r Download all reposts of user\n-c Continue if a downloaded file already exists\n--force-metadata This will set metadata on already downloaded track\n-o [offset] Start downloading a playlist from the [offset]th track (starting with 1)\n--addtimestamp Add track creation timestamp to filename,\n which allows for chronological sorting\n (Deprecated. Use --name-format instead.)\n--addtofile Add artist to filename if missing\n--debug Set log level to DEBUG\n--error Set log level to ERROR\n--download-archive [file] Keep track of track IDs in an archive file,\n and skip already-downloaded files\n--extract-artist Set artist tag from title instead of username\n--hide-progress Hide the wget progress bar\n--hidewarnings Hide Warnings. (use with precaution)\n--max-size [max-size] Skip tracks larger than size (k/m/g)\n--min-size [min-size] Skip tracks smaller than size (k/m/g)\n--no-playlist-folder Download playlist tracks into main directory,\n instead of making a playlist subfolder\n--onlymp3 Download only mp3 files\n--path [path] Use a custom path for downloaded files\n--remove Remove any files not downloaded from execution\n--sync [file] Compares an archive file to a playlist and downloads/removes any changed tracks\n--flac Convert original files to .flac. Only works if the original file is lossless quality\n--no-album-tag On some player track get the same cover art if from the same album, this prevent it\n--original-art Download original cover art, not just 500x500 JPEG\n--original-name Do not change name of original file downloads\n--original-metadata Do not change metadata of original file downloads\n--no-original Do not download original file; only mp3, m4a, or opus\n--only-original Only download songs with original file available\n--name-format [format] Specify the downloaded file name format. Use \"-\" to download to stdout\n--playlist-name-format [format] Specify the downloaded file name format, if it is being downloaded as part of a playlist\n--client-id [id] Specify the client_id to use\n--auth-token [token] Specify the auth token to use\n--overwrite Overwrite file if it already exists\n--strict-playlist Abort playlist downloading if one track fails to download\n--add-description Adds the description to a seperate txt file (can be read by some players)\n--no-playlist Skip downloading playlists\n--opus Prefer downloading opus streams over mp3 streams\n```\n\n\n## Features\n* Automatically detect the type of link provided\n* Download all songs from a user\n* Download all songs and reposts from a user\n* Download all songs from one playlist\n* Download all songs from all playlists from a user\n* Download all songs from a user's favorites\n* Download only new tracks from a list (playlist, favorites, etc.)\n* Sync Playlist\n* Set the tags with mutagen (Title / Artist / Album / Artwork)\n* Create playlist files when downloading a playlist\n",
"bugtrack_url": null,
"license": null,
"summary": "Download Music from Souncloud",
"version": "2.12.3",
"project_urls": {
"Homepage": "https://github.com/flyingrub/scdl"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "03eeb5fd578a1dc360a4097d6e6432974c8d8834788d80040333f72cb04a9aa4",
"md5": "ca1fbc986add8483f2c06b18aa15725d",
"sha256": "cfde9b6e99463a2a0849618f0a3169253544ae49d0366f9767a211e2cbc755bc"
},
"downloads": -1,
"filename": "scdl-2.12.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ca1fbc986add8483f2c06b18aa15725d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 33007,
"upload_time": "2024-12-09T20:04:43",
"upload_time_iso_8601": "2024-12-09T20:04:43.234537Z",
"url": "https://files.pythonhosted.org/packages/03/ee/b5fd578a1dc360a4097d6e6432974c8d8834788d80040333f72cb04a9aa4/scdl-2.12.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "da9947d828db84c7e9cbc4a5117be77f27d531e8dd5d328627737445aecf48d2",
"md5": "b9f678282368ff2b25b8ce1b1d38a0e5",
"sha256": "db85fe50069bc63c94605ff4aa05c4a478013570cd9ffabcfcdc70da35ca41d3"
},
"downloads": -1,
"filename": "scdl-2.12.3.tar.gz",
"has_sig": false,
"md5_digest": "b9f678282368ff2b25b8ce1b1d38a0e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 30504,
"upload_time": "2024-12-09T20:05:57",
"upload_time_iso_8601": "2024-12-09T20:05:57.358439Z",
"url": "https://files.pythonhosted.org/packages/da/99/47d828db84c7e9cbc4a5117be77f27d531e8dd5d328627737445aecf48d2/scdl-2.12.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-09 20:05:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "flyingrub",
"github_project": "scdl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "scdl"
}