Download Music from Souncloud
Project description
Soundcloud Music Downloader
Status of the project
As of version 3, this script is a wrapper around yt-dlp with some defaults/patches for backwards compatibility.
Development is not active and new features will likely not be merged, especially if they can be covered with the
use of --yt-dlp-args. Bug reports/fixes are welcome.
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
-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
--yt-dlp-args String with custom args to forward to yt-dlp
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scdl-3.0.3.tar.gz.
File metadata
- Download URL: scdl-3.0.3.tar.gz
- Upload date:
- Size: 26.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
087220a10d5a30388f4a7c9b927af8f6d0ddcb7d0c3fd154788e947df7b15ce3
|
|
| MD5 |
1c61cbce29b772ceb669b75dae29ad8a
|
|
| BLAKE2b-256 |
1f0f48fbebdf53bb5a82a55a424aef30d929bbe4a2fa01804339b690393e05e7
|
File details
Details for the file scdl-3.0.3-py3-none-any.whl.
File metadata
- Download URL: scdl-3.0.3-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69f3ae4e320b1d45223864e52d29de5692bed437168b7081b39c3772f85ae10d
|
|
| MD5 |
29411185c565fa7f8cef3b6fc7b72df2
|
|
| BLAKE2b-256 |
09a182868c566bcaad1f101468d858762304ab6a70591c40d6c5f357f6de510a
|