{"id":22998051,"url":"https://github.com/pombadev/sunny","last_synced_at":"2025-08-13T23:32:59.684Z","repository":{"id":57668965,"uuid":"363976598","full_name":"pombadev/sunny","owner":"pombadev","description":"Tool to download free music from Bandcamp. Automatically organize files to folder, ID3 tags (including album art).","archived":false,"fork":false,"pushed_at":"2023-09-17T15:44:41.000Z","size":567,"stargazers_count":29,"open_issues_count":3,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-16T16:39:02.129Z","etag":null,"topics":["bandcamp","bandcamp-dl","bandcamp-downloader","bandcamp-ripper","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pombadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE-2.0.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-03T15:32:07.000Z","updated_at":"2024-11-11T18:39:59.000Z","dependencies_parsed_at":"2023-01-22T17:35:17.514Z","dependency_job_id":null,"html_url":"https://github.com/pombadev/sunny","commit_stats":null,"previous_names":["pjmp/sunny"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pombadev%2Fsunny","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pombadev%2Fsunny/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pombadev%2Fsunny/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pombadev%2Fsunny/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pombadev","download_url":"https://codeload.github.com/pombadev/sunny/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229787012,"owners_count":18124014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bandcamp","bandcamp-dl","bandcamp-downloader","bandcamp-ripper","rust"],"created_at":"2024-12-15T06:10:39.448Z","updated_at":"2024-12-15T06:10:39.879Z","avatar_url":"https://github.com/pombadev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to sunny 🌞\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://crates.io/crates/sunny\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Version\" src=\"https://img.shields.io/crates/v/sunny.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://docs.rs/sunny\" target=\"_blank\"\u003e\n    \u003cimg alt=\"docs\" src=\"https://docs.rs/sunny/badge.svg\" /\u003e\n  \u003c/a\u003e\n  \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/license-MIT%2FApache--2.0-blue\" /\u003e\n\u003c/p\u003e\n\n\u003e Tool to download freely available music from bandcamp.\n\u003e\n\u003e Automatically organize files to folder, ID3 tags (including album art).\n\n### Demo\n\n[![Demo](./assets/demo.gif)](./assets/demo.gif)\n\n### Motivation\n\nSunny is hugely inspired by [SoundScrape](https://github.com/Miserlou/SoundScrape), the main motivation for writing this was speed and customizability.\n\n- SoundScrape downloads sequentially whereas Sunny does parallelly, giving a huge boost of speed.\n- Track format can be customized.\n\n### Format\n\nBy default, files are saved in this structure in current directory if `--path` option is not passed.\n\n```\nArtist\n  ├── Album\n  │   ├── 01 - Track.mp3\n  │   ├── 02 - Track.mp3\n  │   ├── 03 - Track.mp3\n  │   ├── 04 - Track.mp3\n```\n\n## Install\n\n```sh\ncargo install sunny\n```\n\n## Usage\n\n```sh\n# whole discography of an artist by url\nsunny https://65daysofstatic.bandcamp.com/music\n\n# whole discography just by the name of the artist\nsunny 65daysofstatic\n\n# single album\nsunny https://clevergirl.bandcamp.com/album/no-drum-and-bass-in-the-jazz-room\n\n# single track\nsunny https://65daysofstatic.bandcamp.com/track/twenty-four-twelve-twenty\n\n# specify path to download to\nsunny yvetteyoung --path=~/Music\n```\n\n## CLI options\n\n```\nUsage: sunny [OPTIONS] \u003cARTIST | URL\u003e\n\nArguments:\n  \u003cARTIST | URL\u003e\n          Artist's bandcamp username or full url\n\nOptions:\n  -t, --track-format \u003cFORMAT\u003e\n          Specify track format: default is '{num} - {track}'\n\n          available keys:\n              {num} - track number\n              {track} - track\n              {artist} - artist\n              {album} - album\n\n          usage:\n              -t='{num} - {track} - {album} {artist}'\n\n          expands to:\n              2 - Track - Album Artist\n\n          note that `.mp3` is appended automatically.\n\n  -p, --path \u003cPATH\u003e\n          Directory path where downloads should be saved to.\n          By default files are saved in the current directory.\n\n  -S, --skip-albums \u003cALBUMS\u003e\n          Skip downloading these albums, note that albums need to be delimited by ',' eg: -s 'one,two' or --skip-albums=one,two\n\n  -l, --list-available\n          List albums/tracks available for download\n\n  -s, --search\n          Search artist, album, label, track or all, instead of downloading\n\n  -T, --type \u003cTYPE\u003e\n          Specify type to search for, available only for `--search` flag\n\n          [default: artists]\n          [possible values: all, artists, labels, albums, tracks]\n\n  -h, --help\n          Print help (see a summary with '-h')\n\n  -V, --version\n          Print version\n\n      --dry-run\n          Do not do anything; just show what would happen\n\nNote: run --help to see full descriptions of each flags/options\n```\n\n## Contributing\n\nContributions, issues and feature requests are welcome!\n\nPlease have a look at [TODO.md](./TODO.md). ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpombadev%2Fsunny","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpombadev%2Fsunny","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpombadev%2Fsunny/lists"}