Ezwen / bandcamp-collection-downloader

A command-line tool to automatically download all releases purchased with a Bandcamp account. The official page of the project is https://framagit.org/Ezwen/bandcamp-collection-downloader, while here this is just a mirror hosted on Github.
GNU Affero General Public License v3.0
247 stars 25 forks source link

Feature request: Download updated collection items if older item exists in cache #24

Open jdheyburn opened 3 years ago

jdheyburn commented 3 years ago

This is a follow on from #23.

Bandcamp allows artists to update releases over time. One particular release has been "enhanced" with additional tracks and has a change of name.

https://zakedrone.bandcamp.com/album/carolina-coppice-movements

This used to be called "Coppice Movements" and was available at the below URL, which actually now redirects to the URL above.

https://zakedrone.bandcamp.com/album/coppice-movements

This release has an ID of r113190241 and the old version was downloaded and exists in the cache file like this:

r113190241| "Coppice Movements" (2020) by zakè

Because of it existing in the cache it does not attempt to make a call to Bandcamp to download the newer version. It would be helpful to have the downloader check to see if what is already downloaded is indeed the most recent version of a release.

Thanks!

Ezwen commented 3 years ago

Very relevant indeed, even without #23. If artists can update releases, then updating releases would make sense. The question is how can we efficiently detect that a release has been updated? I'll have to look into that.

Another question is: what should we do if an artist deletes tracks? Should we keep them, or make the "update" also delete tracks? Tough one.

Ezwen commented 2 years ago

There seems to be a dateModified information attached to each release. If we store in the cache file the download date of each release, then we should be able to detect updates and trigger a re-download.

However, this would most likely be achieved with a specific flag, as this will require re-downloading the metadata of all releases, which is quite slow (and which led us to have this cache file in the first place).