Welcome to sunny 🌞

Version docs License: MIT

Tool to download freely available music from bandcamp.

Automatically organize files to folder, ID3 tags (including album art).

Demo

Demo

Motivation

Sunny is hugely inspired by SoundScrape, the main motivation for writing this was speed and customizability.

Format

By default, files are saved in this structure in current directory if --path option is not passed.

Artist ├── Album │   ├── 01 - Track.mp3 │   ├── 02 - Track.mp3 │   ├── 03 - Track.mp3 │   ├── 04 - Track.mp3

Install

sh cargo install sunny

Usage

```sh

whole discography of an artist by url

sunny https://65daysofstatic.bandcamp.com/music

whole discography just by the name of the artist

sunny 65daysofstatic

single album

sunny https://clevergirl.bandcamp.com/album/no-drum-and-bass-in-the-jazz-room

single track

sunny https://65daysofstatic.bandcamp.com/track/twenty-four-twelve-twenty

specify path to download to

sunny yvetteyoung --path=~/Music ```

CLI options

``` Usage: sunny [OPTIONS]

Arguments: Artist's bandcamp username or full url

Options: -t, --track-format Specify track format: default is '{num} - {track}'

      available keys:
          {num} - track number
          {track} - track
          {artist} - artist
          {album} - album

      usage:
          -t='{num} - {track} - {album} {artist}'

      expands to:
          2 - Track - Album Artist

      note that `.mp3` is appended automatically.

-p, --path Directory path where downloads should be saved to. By default files are saved in the current directory.

-S, --skip-albums Skip downloading these albums, note that albums need to be delimited by ',' eg: -s 'one,two' or --skip-albums=one,two

-l, --list-available List albums/tracks available for download

-s, --search Search artist, album, label, track or all, instead of downloading

-T, --type Specify type to search for, available only for --search flag

      [default: artists]
      [possible values: all, artists, labels, albums, tracks]

-h, --help Print help (see a summary with '-h')

-V, --version Print version

  --dry-run
      Do not do anything; just show what would happen

Note: run --help to see full descriptions of each flags/options ```

Contributing

Contributions, issues and feature requests are welcome!

Please have a look at TODO.md.