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](./assets/demo.gif)](./assets/demo.gif) ### Motivation Sunny is hugely inspired by [SoundScrape](https://github.com/Miserlou/SoundScrape), the main motivation for writing this was speed and customizability. - SoundScrape downloads sequentially whereas Sunny does parallelly, giving a huge boost of speed. - Track format can be customized. ### 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](./TODO.md).