scdl

scdl-orgGPL-2.0活跃维护

用 Python 写的 SoundCloud 音乐下载器,把 SoundCloud 上的歌曲和播放列表直接下载到本地,方便离线收藏和备份。

Soundcloud Music Downloader

v2.4.0发布于 2021-12-28 21:56 UTC4,180star +8 / 7 天402fork同步于 2026-11-10 17:40 UTC

怎么上手

由 README 提炼,执行前请确认
pip install scdl
scdl -l https://soundcloud.com/jumpstreetpsy/low-extender
硬件要求按 README 说明

README 未说明硬件要求,仅要求 python3 与 ffmpeg,可在 Windows、OS X、Linux 上运行。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

SoundCloud 音乐下载器,基于 yt-dlp 封装,可批量下载并自动写入 ID3 标签

用 Python 写的 SoundCloud 音乐下载器,把 SoundCloud 上的歌曲和播放列表直接下载到本地,方便离线收藏和备份。

核心能力

  • 自动识别 track、playlist、user 链接类型
  • 批量下载用户全部歌曲、repost 与收藏
  • 用 archive 文件只下载新增曲目并同步播放列表
  • 用 mutagen 写入标题、艺术家、专辑与封面标签
  • 下载播放列表时自动生成播放列表文件

容易踩的坑

需预先安装 ffmpeg,否则无法处理音频;下载收藏(likes)需提供 auth token;配置文件位于 ~/.config/scdl/scdl.cfg,可在此设置 client_id 等参数。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.4.0
  1. 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
    
  2. 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.

  3. v1.3Fix some issue2015-04-28 · 2015-04-28 13:58 UTC

    这个版本没有写更新说明。

  4. v1.0.3new option & some fix2014-12-07 · 2014-12-07 23:18 UTC

    这个版本没有写更新说明。

  5. v1.0.2fix: tag when not an mp3 file2014-11-16 · 2014-11-16 17:35 UTC

    这个版本没有写更新说明。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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