需预先安装 ffmpeg,否则无法处理音频;下载收藏(likes)需提供 auth token;配置文件位于 ~/.config/scdl/scdl.cfg,可在此设置 client_id 等参数。
scdl
scdl-orgGPL-2.0活跃维护用 Python 写的 SoundCloud 音乐下载器,把 SoundCloud 上的歌曲和播放列表直接下载到本地,方便离线收藏和备份。
Soundcloud Music Downloader
pip install scdl
scdl -l https://soundcloud.com/jumpstreetpsy/low-extenderREADME 未说明硬件要求,仅要求 python3 与 ffmpeg,可在 Windows、OS X、Linux 上运行。
SoundCloud 音乐下载器,基于 yt-dlp 封装,可批量下载并自动写入 ID3 标签
用 Python 写的 SoundCloud 音乐下载器,把 SoundCloud 上的歌曲和播放列表直接下载到本地,方便离线收藏和备份。
核心能力
- 自动识别 track、playlist、user 链接类型
- 批量下载用户全部歌曲、repost 与收藏
- 用 archive 文件只下载新增曲目并同步播放列表
- 用 mutagen 写入标题、艺术家、专辑与封面标签
- 下载播放列表时自动生成播放列表文件
容易踩的坑
- v2.4.0scdl on PyPI最新正式版2021-12-28 · 2021-12-28 21:56 UTC
The latest version of scdl is now on PyPI: https://pypi.org/project/scdl/
Install with PIP:
pip3 install scdl --upgrade - v1.3.3b1BETA: refactor the code.pre-release2015-08-25 · 2015-08-25 01:27 UTC
查看更新说明
All the code is now cleaned up and avoid some old issue.
- v1.3Fix some issue2015-04-28 · 2015-04-28 13:58 UTC
这个版本没有写更新说明。
- v1.0.3new option & some fix2014-12-07 · 2014-12-07 23:18 UTC
这个版本没有写更新说明。
- v1.0.2fix: tag when not an mp3 file2014-11-16 · 2014-11-16 17:35 UTC
这个版本没有写更新说明。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
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