bandcampsync-tui 0.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2023, meeb <meeb@meeb.org>
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1 @@
1
+ include *.txt
@@ -0,0 +1,279 @@
1
+ Metadata-Version: 2.4
2
+ Name: bandcampsync-tui
3
+ Version: 0.7.0
4
+ Summary: A Python module and script to synchronise media purchased on bandcamp.com with a local directory. Fork of meeb/bandcampsync with Rich TUI and cross-platform improvements.
5
+ Home-page: https://codeberg.org/imigueldiaz/bandcampsync-tui
6
+ Author: Ignacio de Miguel Díaz
7
+ Author-email: imigueldiaz@tutamail.com
8
+ License: BSD-3-Clause
9
+ Project-URL: Homepage, https://codeberg.org/imigueldiaz/bandcampsync-tui
10
+ Project-URL: Bug Tracker, https://codeberg.org/imigueldiaz/bandcampsync-tui/issues
11
+ Project-URL: Source, https://codeberg.org/imigueldiaz/bandcampsync-tui
12
+ Project-URL: Changelog, https://codeberg.org/imigueldiaz/bandcampsync-tui/src/branch/main/CHANGELOG.md
13
+ Keywords: bandcampsync,bandcamp,media,sync,tui,download,music
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.8
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Environment :: Console
24
+ Classifier: Topic :: Multimedia :: Sound/Audio
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Requires-Python: >=3.8
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: curl_cffi
30
+ Requires-Dist: beautifulsoup4
31
+ Requires-Dist: html5lib
32
+ Requires-Dist: rich
33
+ Requires-Dist: setuptools
34
+ Dynamic: author
35
+ Dynamic: author-email
36
+ Dynamic: classifier
37
+ Dynamic: description
38
+ Dynamic: description-content-type
39
+ Dynamic: home-page
40
+ Dynamic: keywords
41
+ Dynamic: license
42
+ Dynamic: license-file
43
+ Dynamic: project-url
44
+ Dynamic: requires-dist
45
+ Dynamic: requires-python
46
+ Dynamic: summary
47
+
48
+ # BandcampSync-TUI
49
+
50
+ [![Python 3.8+](https://img.shields.io/badge/Python-3.8+-3776AB?logo=python&logoColor=white)](https://www.python.org/)
51
+ [![PyPI](https://img.shields.io/badge/PyPI-0.7.0-blue?logo=pypi&logoColor=white)](https://pypi.org/project/bandcampsync-tui/)
52
+ [![License](https://img.shields.io/badge/License-BSD--3--Clause-green)](LICENSE)
53
+ [![PSF Member](https://img.shields.io/badge/PSF-Supporting%20Member-FFD43B?logo=python&logoColor=blue)](https://www.python.org/psf/membership/)
54
+
55
+ > **🍴 Fork Notice**: This is a fork of
56
+ > [meeb/bandcampsync](https://github.com/meeb/bandcampsync) by
57
+ > [@meeb](https://github.com/meeb). The original project provided the foundation
58
+ > for this work. This fork extends it with a modern TUI, improved cross-platform
59
+ > support, and enhanced download capabilities. See
60
+ > [What's Different in This Fork](#-whats-different-in-this-fork) for details.
61
+
62
+ ---
63
+
64
+ **BandcampSync-TUI** is a Python module and command line script which
65
+ synchronises media purchased on a Bandcamp (<https://bandcamp.com/>) account
66
+ with a local directory.
67
+
68
+ You may use this to download media you have purchased from Bandcamp to a local
69
+ media server, such as Plex or Jellyfin.
70
+
71
+ Most media items purchased on Bandcamp have high quality download options
72
+ available and BandcampSync-TUI defaults to `flac`.
73
+
74
+ ![BandcampSync TUI](docs/tui-preview.png)
75
+
76
+ ## ✨ What's Different in This Fork
77
+
78
+ This fork introduces several significant improvements over the original:
79
+
80
+ | Feature | Original | This Fork |
81
+ | ------------------- | ----------------- | ------------------------------------------------- |
82
+ | **Package Name** | `bandcampsync` | `bandcampsync-tui` |
83
+ | **User Interface** | Plain text output | Rich TUI with progress bars, spinners, and colors |
84
+ | **Download Speed** | Single-stream | Multi-part parallel downloads (4 threads) |
85
+ | **Windows Support** | Basic | Full cross-platform with proper path sanitization |
86
+ | **HTTP Client** | `requests` | `curl_cffi` (better anti-bot handling) |
87
+ | **Ethics** | — | [ETHICAL.md](ETHICAL.md) statement included |
88
+
89
+ ### Key Improvements
90
+
91
+ - 🎨 **Beautiful TUI**: Progress bars with download speed/ETA, color-coded
92
+ messages, spinner animations
93
+ - 🏷️ **Download ID Visibility**: The TUI now displays the download item ID (e.g. `[ID 123456]`) in progress descriptions and status messages to make it easy to add items to the ignore file.
94
+ - ⚡ **Faster Downloads**: Large files (>5MB) download in parallel chunks
95
+ - 🖥️ **True Cross-Platform**: Handles Windows-forbidden characters, reserved
96
+ names, and temp file cleanup
97
+ - 🛡️ **Better Reliability**: Automatic retry with exponential backoff, graceful
98
+ error handling
99
+ - 📜 **Ethical Commitment**: See our [Ethical Statement](ETHICAL.md) for project
100
+ values
101
+
102
+ For a complete list of changes, see the [CHANGELOG](CHANGELOG.md).
103
+
104
+ ---
105
+
106
+ ## How It Works
107
+
108
+ When called, `bandcampsync-tui` will:
109
+
110
+ 1. Authenticate to bandcamp.com as you using your exported session cookies
111
+ 2. Scan your local media directory for existing downloaded items
112
+ 3. Index a list of all of your purchased items in your Bandcamp collection
113
+ 4. Download the archive of missing items not downloaded already from your
114
+ collection
115
+ 5. Unzip the archive and move the contents to the local media directory
116
+
117
+ The media directory will have the following format:
118
+
119
+ ## Docker
120
+
121
+ This fork does not provide or maintain a Docker image. If you need a
122
+ containerised setup, please use the original project's Docker resources:
123
+
124
+ - Original project: <https://github.com/meeb/bandcampsync>
125
+ - Official image: ghcr.io/meeb/bandcampsync:latest
126
+
127
+ We recommend using the upstream project's image and examples for container
128
+ deployments, as they maintain the Docker artifacts and runbook. This repository
129
+ focuses on the interactive TUI and local improvements.
130
+
131
+ If you'd like, I can add a short compatibility note or a simple example showing
132
+ how to adapt the upstream Dockerfile for this fork — tell me and I'll draft it.
133
+
134
+ ## Configuration
135
+
136
+ BandcampSync-TUI requires minimal configuration. First, it requires your session
137
+ cookies from an authenticated Bandcamp account. The easiest way to get this is
138
+ to go to <https://bandcamp.com/> in your browser and log in with your account.
139
+
140
+ Next, open the developer tools in your browser (F12 button on most browsers, or
141
+ select "developer tools" from the options menu).
142
+
143
+ Reload the index page and find the index page request in your network requests
144
+ tab of your browser. Go to the "Request Headers" section then select and copy
145
+ the string after the `Cookie` header. The string should look something like
146
+ this:
147
+
148
+ ```text
149
+ client_id=00B1F3C8EB48E181A185CCD041E40C0E8F; session=1%0893C88%570EE405455%%8DEC37B5BC393983DB983DD%%BDFD46C3B8A0%%580DA466D5CD; identity=1%HhehuehUFEUiuebn%%2ADB72300DAE573%BEEF389A1B526EA35AC38019FA0A6F%11B4BD5FBC18B83F720; js_logged_in=1; logout=%7B%22username%22%3A%22someuser%22%7D; download_encoding=401; BACKENDID3=some-sever-name
150
+ ```
151
+
152
+ Save this string to a file called `cookies.txt`.
153
+
154
+ ![Getting your session cookies](https://github.com/meeb/bandcampsync/blob/main/docs/cookies.jpg?raw=true)
155
+
156
+ You need to save your session ID from cookies manually because Bandcamp has a
157
+ captcha on the login form so BandcampSync-TUI can't log in with your username
158
+ and password for you.
159
+
160
+ IMPORTANT NOTE: Keep the `cookies.txt` file safe! Anyone with access to this
161
+ file can log into your Bandcamp account, impersonate you, potentially make
162
+ purchases and generally have total access to your Bandcamp account!
163
+
164
+ You can also use Netscape formatted cookie export files if you have exported
165
+ your cookies using a cookie exporter plugin or similar tool.
166
+
167
+ ## CLI usage
168
+
169
+ Once you have the Python `bandcampsync-tui` module installed you can call it
170
+ with the `bandcampsync-tui` command:
171
+
172
+ ```bash
173
+ bandcampsync-tui --cookies cookies.txt --directory /path/to/music
174
+ ```
175
+
176
+ or in shorthand:
177
+
178
+ ```bash
179
+ bandcampsync-tui -c cookies.txt -d /path/to/music
180
+ ```
181
+
182
+ You can use `-t` or `--temp-dir` to set the temporary download directory used.
183
+ You can use `-i` or `--ignore` to bypass artists that have data issues that your
184
+ OS can not handle.
185
+
186
+ See `-h` or `--help` for the full list of command line options.
187
+
188
+ ```bash
189
+ bandcampsync-tui --cookies cookies.txt --directory /path/to/music --ignore "badband"
190
+ ```
191
+
192
+ `--ignore` supports multiple strings space separated strings, for example
193
+ `--ignore "band1 band2 band3"`.
194
+
195
+ You can use `-I` or `--ignore-file` to specify the path to a file containing
196
+ bandcamp ids of each item to skip.
197
+
198
+ ```text
199
+ 1546934218 # Chrome Sparks / Sparks EP
200
+ 1418240212 # Chrome Sparks / Goddess EP
201
+ ```
202
+
203
+ If you do, the items downloaded will be appended to the file, so that the next
204
+ time you run the script those items will not be re-downloaded. This means you
205
+ can use media managers such as Lidarr to rename artist, album and track names
206
+ automatically, rename the directory, or even move the items out of the download
207
+ directory without issues.
208
+
209
+ You can notify an external HTTP server when new items have been loaded with `-n`
210
+ or `--notify-url`.
211
+
212
+ ```bash
213
+ bandcampsync ... --notify-url "http://some.service.local/some-uri"
214
+ ```
215
+
216
+ You can use this to call a "refresh" hook on media servers (for example rescan a
217
+ Plex or Jellyfin library). The `--notify-url` parameter, if set, simply makes an
218
+ HTTP GET request to the specified URL and confirms it returns a `2XX` response.
219
+
220
+ For advanced notify URLs you can use the following `--notify-url` format:
221
+
222
+ `method url headers body`
223
+
224
+ `method` must be one of `GET` or `POST`. `url` is any URL. `headers` are a comma
225
+ separated list of `key=value` pairs and `body` is an body string to send if the
226
+ `method` is `POST`. You can use `-` for header and body values to leave them
227
+ unset. Some examples:
228
+
229
+ `GET http://some.service.local/some-uri - -`
230
+
231
+ `GET http://some.service.local/some-uri header1=abc,header2 -`
232
+
233
+ `POST http://some.service.local/some-uri auth-header=abc somedata`
234
+
235
+ ## Formats
236
+
237
+ By default, BandcampSync will download your music in the `flac` format. You can
238
+ specify another format with the `--format` argument. Common Bandcamp download
239
+ formats are:
240
+
241
+ | Name | Description |
242
+ | --------------- | --------------------------------------------------------------- |
243
+ | `mp3-v0` | Variable bitrate MP3. Small file sizes. OK quality. |
244
+ | `mp3-320` | High quality MP3. Medium file sizes. Good quality. |
245
+ | `flac` | Lossless audio. Large file sizes. Original Quality. |
246
+ | `aac-hi` | Apple variable bitrate format. Small file sizes. OK quality. |
247
+ | `aiff-lossless` | Uncompressed audio format. Biggest file size. Original quality. |
248
+ | `vorbis` | Open source lossy format. Small file sizes. OK quality. |
249
+ | `alac` | Apple lossless format. Large file sizes. Original quality. |
250
+ | `wav` | Uncompressed audio format. Biggest file size. Original quality. |
251
+
252
+ ## Contributing
253
+
254
+ All properly formatted and sensible pull requests, issues and comments are
255
+ welcome.
256
+
257
+ ## Acknowledgments
258
+
259
+ This project is a fork of
260
+ **[meeb/bandcampsync](https://github.com/meeb/bandcampsync)** created by
261
+ [@meeb](https://github.com/meeb).
262
+
263
+ Thank you to the original author and all contributors for building the
264
+ foundation that made this fork possible.
265
+
266
+ ## License
267
+
268
+ This project is licensed under the BSD 3-Clause License - see the
269
+ [LICENSE](LICENSE) file for details.
270
+
271
+ The original project by [@meeb](https://github.com/meeb) is also licensed under
272
+ the BSD 3-Clause License.
273
+
274
+ ## Ethical Commitment
275
+
276
+ This project includes an [Ethical Statement](ETHICAL.md) that outlines our
277
+ values and principles regarding the responsible use of this software. We
278
+ encourage all users to read and consider these principles when using, modifying,
279
+ or distributing this software.
@@ -0,0 +1,232 @@
1
+ # BandcampSync-TUI
2
+
3
+ [![Python 3.8+](https://img.shields.io/badge/Python-3.8+-3776AB?logo=python&logoColor=white)](https://www.python.org/)
4
+ [![PyPI](https://img.shields.io/badge/PyPI-0.7.0-blue?logo=pypi&logoColor=white)](https://pypi.org/project/bandcampsync-tui/)
5
+ [![License](https://img.shields.io/badge/License-BSD--3--Clause-green)](LICENSE)
6
+ [![PSF Member](https://img.shields.io/badge/PSF-Supporting%20Member-FFD43B?logo=python&logoColor=blue)](https://www.python.org/psf/membership/)
7
+
8
+ > **🍴 Fork Notice**: This is a fork of
9
+ > [meeb/bandcampsync](https://github.com/meeb/bandcampsync) by
10
+ > [@meeb](https://github.com/meeb). The original project provided the foundation
11
+ > for this work. This fork extends it with a modern TUI, improved cross-platform
12
+ > support, and enhanced download capabilities. See
13
+ > [What's Different in This Fork](#-whats-different-in-this-fork) for details.
14
+
15
+ ---
16
+
17
+ **BandcampSync-TUI** is a Python module and command line script which
18
+ synchronises media purchased on a Bandcamp (<https://bandcamp.com/>) account
19
+ with a local directory.
20
+
21
+ You may use this to download media you have purchased from Bandcamp to a local
22
+ media server, such as Plex or Jellyfin.
23
+
24
+ Most media items purchased on Bandcamp have high quality download options
25
+ available and BandcampSync-TUI defaults to `flac`.
26
+
27
+ ![BandcampSync TUI](docs/tui-preview.png)
28
+
29
+ ## ✨ What's Different in This Fork
30
+
31
+ This fork introduces several significant improvements over the original:
32
+
33
+ | Feature | Original | This Fork |
34
+ | ------------------- | ----------------- | ------------------------------------------------- |
35
+ | **Package Name** | `bandcampsync` | `bandcampsync-tui` |
36
+ | **User Interface** | Plain text output | Rich TUI with progress bars, spinners, and colors |
37
+ | **Download Speed** | Single-stream | Multi-part parallel downloads (4 threads) |
38
+ | **Windows Support** | Basic | Full cross-platform with proper path sanitization |
39
+ | **HTTP Client** | `requests` | `curl_cffi` (better anti-bot handling) |
40
+ | **Ethics** | — | [ETHICAL.md](ETHICAL.md) statement included |
41
+
42
+ ### Key Improvements
43
+
44
+ - 🎨 **Beautiful TUI**: Progress bars with download speed/ETA, color-coded
45
+ messages, spinner animations
46
+ - 🏷️ **Download ID Visibility**: The TUI now displays the download item ID (e.g. `[ID 123456]`) in progress descriptions and status messages to make it easy to add items to the ignore file.
47
+ - ⚡ **Faster Downloads**: Large files (>5MB) download in parallel chunks
48
+ - 🖥️ **True Cross-Platform**: Handles Windows-forbidden characters, reserved
49
+ names, and temp file cleanup
50
+ - 🛡️ **Better Reliability**: Automatic retry with exponential backoff, graceful
51
+ error handling
52
+ - 📜 **Ethical Commitment**: See our [Ethical Statement](ETHICAL.md) for project
53
+ values
54
+
55
+ For a complete list of changes, see the [CHANGELOG](CHANGELOG.md).
56
+
57
+ ---
58
+
59
+ ## How It Works
60
+
61
+ When called, `bandcampsync-tui` will:
62
+
63
+ 1. Authenticate to bandcamp.com as you using your exported session cookies
64
+ 2. Scan your local media directory for existing downloaded items
65
+ 3. Index a list of all of your purchased items in your Bandcamp collection
66
+ 4. Download the archive of missing items not downloaded already from your
67
+ collection
68
+ 5. Unzip the archive and move the contents to the local media directory
69
+
70
+ The media directory will have the following format:
71
+
72
+ ## Docker
73
+
74
+ This fork does not provide or maintain a Docker image. If you need a
75
+ containerised setup, please use the original project's Docker resources:
76
+
77
+ - Original project: <https://github.com/meeb/bandcampsync>
78
+ - Official image: ghcr.io/meeb/bandcampsync:latest
79
+
80
+ We recommend using the upstream project's image and examples for container
81
+ deployments, as they maintain the Docker artifacts and runbook. This repository
82
+ focuses on the interactive TUI and local improvements.
83
+
84
+ If you'd like, I can add a short compatibility note or a simple example showing
85
+ how to adapt the upstream Dockerfile for this fork — tell me and I'll draft it.
86
+
87
+ ## Configuration
88
+
89
+ BandcampSync-TUI requires minimal configuration. First, it requires your session
90
+ cookies from an authenticated Bandcamp account. The easiest way to get this is
91
+ to go to <https://bandcamp.com/> in your browser and log in with your account.
92
+
93
+ Next, open the developer tools in your browser (F12 button on most browsers, or
94
+ select "developer tools" from the options menu).
95
+
96
+ Reload the index page and find the index page request in your network requests
97
+ tab of your browser. Go to the "Request Headers" section then select and copy
98
+ the string after the `Cookie` header. The string should look something like
99
+ this:
100
+
101
+ ```text
102
+ client_id=00B1F3C8EB48E181A185CCD041E40C0E8F; session=1%0893C88%570EE405455%%8DEC37B5BC393983DB983DD%%BDFD46C3B8A0%%580DA466D5CD; identity=1%HhehuehUFEUiuebn%%2ADB72300DAE573%BEEF389A1B526EA35AC38019FA0A6F%11B4BD5FBC18B83F720; js_logged_in=1; logout=%7B%22username%22%3A%22someuser%22%7D; download_encoding=401; BACKENDID3=some-sever-name
103
+ ```
104
+
105
+ Save this string to a file called `cookies.txt`.
106
+
107
+ ![Getting your session cookies](https://github.com/meeb/bandcampsync/blob/main/docs/cookies.jpg?raw=true)
108
+
109
+ You need to save your session ID from cookies manually because Bandcamp has a
110
+ captcha on the login form so BandcampSync-TUI can't log in with your username
111
+ and password for you.
112
+
113
+ IMPORTANT NOTE: Keep the `cookies.txt` file safe! Anyone with access to this
114
+ file can log into your Bandcamp account, impersonate you, potentially make
115
+ purchases and generally have total access to your Bandcamp account!
116
+
117
+ You can also use Netscape formatted cookie export files if you have exported
118
+ your cookies using a cookie exporter plugin or similar tool.
119
+
120
+ ## CLI usage
121
+
122
+ Once you have the Python `bandcampsync-tui` module installed you can call it
123
+ with the `bandcampsync-tui` command:
124
+
125
+ ```bash
126
+ bandcampsync-tui --cookies cookies.txt --directory /path/to/music
127
+ ```
128
+
129
+ or in shorthand:
130
+
131
+ ```bash
132
+ bandcampsync-tui -c cookies.txt -d /path/to/music
133
+ ```
134
+
135
+ You can use `-t` or `--temp-dir` to set the temporary download directory used.
136
+ You can use `-i` or `--ignore` to bypass artists that have data issues that your
137
+ OS can not handle.
138
+
139
+ See `-h` or `--help` for the full list of command line options.
140
+
141
+ ```bash
142
+ bandcampsync-tui --cookies cookies.txt --directory /path/to/music --ignore "badband"
143
+ ```
144
+
145
+ `--ignore` supports multiple strings space separated strings, for example
146
+ `--ignore "band1 band2 band3"`.
147
+
148
+ You can use `-I` or `--ignore-file` to specify the path to a file containing
149
+ bandcamp ids of each item to skip.
150
+
151
+ ```text
152
+ 1546934218 # Chrome Sparks / Sparks EP
153
+ 1418240212 # Chrome Sparks / Goddess EP
154
+ ```
155
+
156
+ If you do, the items downloaded will be appended to the file, so that the next
157
+ time you run the script those items will not be re-downloaded. This means you
158
+ can use media managers such as Lidarr to rename artist, album and track names
159
+ automatically, rename the directory, or even move the items out of the download
160
+ directory without issues.
161
+
162
+ You can notify an external HTTP server when new items have been loaded with `-n`
163
+ or `--notify-url`.
164
+
165
+ ```bash
166
+ bandcampsync ... --notify-url "http://some.service.local/some-uri"
167
+ ```
168
+
169
+ You can use this to call a "refresh" hook on media servers (for example rescan a
170
+ Plex or Jellyfin library). The `--notify-url` parameter, if set, simply makes an
171
+ HTTP GET request to the specified URL and confirms it returns a `2XX` response.
172
+
173
+ For advanced notify URLs you can use the following `--notify-url` format:
174
+
175
+ `method url headers body`
176
+
177
+ `method` must be one of `GET` or `POST`. `url` is any URL. `headers` are a comma
178
+ separated list of `key=value` pairs and `body` is an body string to send if the
179
+ `method` is `POST`. You can use `-` for header and body values to leave them
180
+ unset. Some examples:
181
+
182
+ `GET http://some.service.local/some-uri - -`
183
+
184
+ `GET http://some.service.local/some-uri header1=abc,header2 -`
185
+
186
+ `POST http://some.service.local/some-uri auth-header=abc somedata`
187
+
188
+ ## Formats
189
+
190
+ By default, BandcampSync will download your music in the `flac` format. You can
191
+ specify another format with the `--format` argument. Common Bandcamp download
192
+ formats are:
193
+
194
+ | Name | Description |
195
+ | --------------- | --------------------------------------------------------------- |
196
+ | `mp3-v0` | Variable bitrate MP3. Small file sizes. OK quality. |
197
+ | `mp3-320` | High quality MP3. Medium file sizes. Good quality. |
198
+ | `flac` | Lossless audio. Large file sizes. Original Quality. |
199
+ | `aac-hi` | Apple variable bitrate format. Small file sizes. OK quality. |
200
+ | `aiff-lossless` | Uncompressed audio format. Biggest file size. Original quality. |
201
+ | `vorbis` | Open source lossy format. Small file sizes. OK quality. |
202
+ | `alac` | Apple lossless format. Large file sizes. Original quality. |
203
+ | `wav` | Uncompressed audio format. Biggest file size. Original quality. |
204
+
205
+ ## Contributing
206
+
207
+ All properly formatted and sensible pull requests, issues and comments are
208
+ welcome.
209
+
210
+ ## Acknowledgments
211
+
212
+ This project is a fork of
213
+ **[meeb/bandcampsync](https://github.com/meeb/bandcampsync)** created by
214
+ [@meeb](https://github.com/meeb).
215
+
216
+ Thank you to the original author and all contributors for building the
217
+ foundation that made this fork possible.
218
+
219
+ ## License
220
+
221
+ This project is licensed under the BSD 3-Clause License - see the
222
+ [LICENSE](LICENSE) file for details.
223
+
224
+ The original project by [@meeb](https://github.com/meeb) is also licensed under
225
+ the BSD 3-Clause License.
226
+
227
+ ## Ethical Commitment
228
+
229
+ This project includes an [Ethical Statement](ETHICAL.md) that outlines our
230
+ values and principles regarding the responsible use of this software. We
231
+ encourage all users to read and consider these principles when using, modifying,
232
+ or distributing this software.