# 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/51/b5/efc8fd2f9212b3156d08cfdb09bc9f9794d13e8373018e3daaa2af3ea6cd/scdl-2.12.2.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.2",
"project_urls": {
"Homepage": "https://github.com/flyingrub/scdl"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "721019d4b0cac0057f87d9f1ce694a60899e0bad49ba18b4b7a297d13a32f033",
"md5": "20ec2786a90fa80d3f708492b5226642",
"sha256": "861d6b626ace4a3fe14b3f796a2f226a6490d089401b82d98f10dfa351061fee"
},
"downloads": -1,
"filename": "scdl-2.12.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "20ec2786a90fa80d3f708492b5226642",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 32996,
"upload_time": "2024-11-02T16:46:20",
"upload_time_iso_8601": "2024-11-02T16:46:20.719949Z",
"url": "https://files.pythonhosted.org/packages/72/10/19d4b0cac0057f87d9f1ce694a60899e0bad49ba18b4b7a297d13a32f033/scdl-2.12.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "51b5efc8fd2f9212b3156d08cfdb09bc9f9794d13e8373018e3daaa2af3ea6cd",
"md5": "1a3317f09a485b5d3c4622709a83567c",
"sha256": "c616f9b5d36b616a86f391115a549d7bc5a410c7eeb0c0d7ebd5534f1b4849c0"
},
"downloads": -1,
"filename": "scdl-2.12.2.tar.gz",
"has_sig": false,
"md5_digest": "1a3317f09a485b5d3c4622709a83567c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 30494,
"upload_time": "2024-11-02T16:46:22",
"upload_time_iso_8601": "2024-11-02T16:46:22.416267Z",
"url": "https://files.pythonhosted.org/packages/51/b5/efc8fd2f9212b3156d08cfdb09bc9f9794d13e8373018e3daaa2af3ea6cd/scdl-2.12.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-02 16:46:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "flyingrub",
"github_project": "scdl",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "scdl"
}