Skip to content
SathyaTadinadaPublic

About

Catalog your vinyl records into your Discogs collection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Platter

Scan a record's barcode and add it to your Discogs collection. Platter also tracks what your records are worth and how often you play them. It's a web app you can install to your phone's home screen, and it talks to Discogs directly from your browser.

No Discogs account? The demo has a sample collection to poke around in.

Browsing the collection, opening a record, then the Stats tab The collection as a grid of covers A record page The Value view of the Stats tab

The same on a wide screen A record page on a wide screen
The Value view on a wide screen The Listening view in dark mode

Features

  • Scanning: barcode by camera or photo, or search by catalog number or artist and title. Batch mode queues scans (offline too) and adds them all at once.
  • Pressings: warns about duplicates and wantlist matches, and narrows down pressings by reading the runout or the spine.
  • Collection: grid or list, search, filters, sort, crates, and custom fields like condition, price, and location.
  • Value: Discogs prices per record, value over time, paid vs. now, and charts you can rearrange.
  • Listening: log plays, see what you play most and what you haven't touched in a year, and optionally scrobble to ListenBrainz.
  • Import and export: Discogs CSVs in and out, plus a backup of everything Platter keeps locally.

How it works

There's no backend database. Platter stores its data in the browser and calls api.discogs.com directly. "Log in with Discogs" uses OAuth, and a small Cloudflare Worker (worker/) signs requests with the app secret. To sign, it gets your OAuth token and token secret and the URL being requested; it doesn't store or log them, and Discogs' responses go straight to your browser. Personal access tokens skip the Worker entirely.

Platter also uses MusicBrainz and the Cover Art Archive for barcodes Discogs doesn't know, Apple's search to find albums for the streaming links, and ListenBrainz if you connect it. Photos of runouts and spines are read on the device with Tesseract.

Development

npm install
npm run dev    # http://localhost:5173
npm test

Locally, sign in with a personal access token or open /?demo. To re-record test fixtures, put a token in .env (see .env.example) and run npm run fixtures.

Self-hosting

It runs on the Cloudflare Workers free plan.

  1. Point routes in wrangler.jsonc at your domain, and update ALLOWED_ORIGINS in worker/index.ts and the og: tags in index.html.
  2. Register an app at discogs.com/settings/developers with the callback https://<your domain>/auth/callback. Discogs doesn't allow "Discogs" in app names except as " for Discogs".
  3. Store the key and secret with npx wrangler secret put DISCOGS_CONSUMER_KEY and DISCOGS_CONSUMER_SECRET.
  4. npm run deploy

Skip 2 and 3 if you only need personal access tokens.

License

MIT

This application uses Discogs’ API but is not affiliated with, sponsored or endorsed by Discogs. ‘Discogs’ is a trademark of Zink Media, LLC.

About

Catalog your vinyl records into your Discogs collection.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages