Giter VIP home page Giter VIP logo

discogs-get-collection's Introduction

discogs-get-collection

A Python script that grabs your Discogs records collection, the metadata of every release, and turns it into a CSV file that you can sort in a spreadsheets app, or process further if you modify the script.

Discogs themselves offer a feature to export CSV but it doesn't let you export specific fields from a release. In my case I mostly wanted to export the genres and styles of every disc I have, in order to sort records by genre more easily. With some tweaking you can make this export whatever metadata about the record you want, and you could sort directly from Python if needed (I just found Excel much faster for tweaking sorting options until I got it right).

Usage

  1. Get a personal access token in your Discogs preference, and copy it inside the vinylsget.py file.

  2. pip install discogs_client

  3. python3 vinylsget.py

  4. open collection.csv in your favourite spreadsheet editor.

Todo

It's very basic, but it's a good starting point for similar projects, or if you are were bit unclear about how to use the Discogs Python library (I certainly was). One thing it doesn't do very well is handle metadata that's not excellently standardised; it shouldn't spit out errors but it might sometimes give something like Album instead of CD, 12" instead of 2xLP, the artist twice, compilations with a wrong artist name and so on.

Some of these things can probably be fixed, some of them are just down to bad tagging on Discogs and there's not much I can do about that.

discogs-get-collection's People

Contributors

victorloux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

discogs-get-collection's Issues

Error: UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 0: character maps to <undefined>

If anyone gets the following error

C:\Temp>python vinylsget.py
Gathering collection...
Crunching data...
Writing CSV...
Traceback (most recent call last):
File "vinylsget.py", line 52, in
csvfile.write('\ufeff') # utf8 BOM needed by Excel
File "C:\Users\Viggo\AppData\Local\Programs\Python\Python38-32\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 0: character maps to

Just replace row 51 with
with open('collection.csv', 'w', encoding="utf-8") as csvfile:

You are making requests too quickly

I'm getting following error:

image

  File "vinylsget.py", line 24, in <module>
    row['primaryGenre'] = r.genres[0]
  File "/Users/ehsan/env/lib/python3.7/site-packages/discogs_client/models.py", line 31, in __get__
    value = instance.fetch(self.name)
  File "/Users/ehsan/env/lib/python3.7/site-packages/discogs_client/models.py", line 245, in fetch
    self.refresh()
  File "/Users/ehsan/env/lib/python3.7/site-packages/discogs_client/models.py", line 211, in refresh
    data = self.client._get(self.data['resource_url'])
  File "/Users/ehsan/env/lib/python3.7/site-packages/discogs_client/client.py", line 123, in _get
    return self._request('GET', url)
  File "/Users/ehsan/env/lib/python3.7/site-packages/discogs_client/client.py", line 120, in _request
    raise HTTPError(body['message'], status_code)
discogs_client.exceptions.HTTPError: 429: You are making requests too quickly.```

Ant idea how to avoid it ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.