Skip to content

scdl is a minimal Go CLI and library to download SoundCloud tracks with metadata and HLS support.

License

Notifications You must be signed in to change notification settings

hellsontime/scdl

scdl

A simple command-line & library downloader for SoundCloud tracks written in Go.

scdl demo

📦 Installation

Intall with Go:

go install github.com/hellsontime/scdl/cmd/scdl@latest

Or build from source:

go build -o scdl cmd/scdl/main.go

or

make build-os-arch

Or download latest release build

⚙️ Usage

scdl <soundcloud-url> [options]

Options

  • -o, --output: Specify the output directory (defaults to current directory).
  • -a, --author: Override artist/author name.
  • -n, --name: Override track title.

🕹️ Examples

Download to the current directory:

scdl https://soundcloud.com/cowboyclicker/stay

Download to a specific directory:

scdl https://soundcloud.com/cowboyclicker/stay --output ~/Music/

Download with custom artist and track name:

scdl https://soundcloud.com/cowboyclicker/stay --author "Custom Artist" --name "Custom Title"

🧩 Library Usage

Installation

go get github.com/hellsontime/scdl

Simple Usage

import (
    "context"
    "github.com/hellsontime/scdl"
)

// ...

ctx := context.Background()

client, err := scdl.NewClient(ctx)
if err != nil {
    return err
}

// Fetch track metadata
track, err := client.GetTrack(ctx, "https://soundcloud.com/cowboyclicker/stay")
if err != nil {
    return err
}

// Optionally override artist/title before downloading
track.Artist = "Custom Artist"
track.Title = "Custom Title"

// Download the track to the current directory
path, err := client.Download(ctx, track, ".", nil) // progress callback is optional
if err != nil {
    return err
}

About

scdl is a minimal Go CLI and library to download SoundCloud tracks with metadata and HLS support.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •