Skip to content

jsoningram/mimdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiMusicDB (MiMDB)

Description:

Motivation

Growing up, my friends and I were always in a bit of friendly competition to build the most rare and complete collection of vinyl, cassettes and CDs from our favorite artists. As we got older, and our collections grew, it became more difficult to remember just what was in your collection. Also it's not unusual for collectors to have multiple copies of a specific release, each with some attribute that makes it unique or maybe the condition is better on one vs another.

Solution: MiMusicDB

MiMDB is a Python application that helps you catalog your physical media (vinyl records, CDs, cassettes) by leveraging computer vision and the Discogs API to provide specific release details. The application supports both batch processing of multiple barcode images and interactive single-entry mode allowing you to record condition ratings and notes. The final output is a CSV file.

Features
  • Batch Processing: Scan multiple barcode images from a directory
  • Interactive Mode: Manual entry with condition ratings and notes
  • Multiple Input Types: Support for barcodes and catalog numbers
  • Condition Tracking: Rate media and sleeve condition
  • CSV Export: Save all data to CSV format for easy management
  • Discogs Integration: Retrieve detailed release information

Prerequisites

  • Python 3.10.0 or higher
  • Discogs account and user token. It's free

Installation

  1. Clone this repository
git clone https://github.com/jsoningram/mimdb.git
  1. Navigate to application directory
cd mimdb
  1. Install dependencies
    macOS:
brew install zbar

Linux (Debian):

sudo apt-get install libzbar0

Windows: The zbar DLLs are included with the Windows Python wheels. Alternatively, see the installation guide

Finally:

python -m pip install -r requirements.txt

Rename the provided .env.example to .env and replace your_discogs_personal_access_token with your Discogs PAT. The Discogs API requires that you identify your application via the user agent. Replace username with your Discogs username.

DISCOGS_USER_TOKEN=your_discogs_personal_access_token
USER_AGENT=MiMusicDB_username/0.1

Usage

python mimdb.py

Calling python of mimdb.py will present a menu allowing you to choose how you would like to use MiMDB, in Batch or Interactive mode.

Batch mode is perfect for collectors who want to process their entire collection efficiently. You simply photograph the barcodes on your albums, place all these images in a folder, and let the application work through them automatically. It reads each barcode, queries Discogs for that specific release, and compiles all the information into a structured CSV file. This mode is ideal for initial collection cataloging or processing recent acquisitions.

Interactive mode offers more granular control and is designed for collectors who want to include condition assessments and personal notes. This mode allows you to input either a barcode or catalog number, then rate both the media and sleeve condition using standard grading scales (from Poor to Mint). You can also add personal notes about the item's history, pressing variations, or other relevant details. This approach is perfect for valuable items or when building a detailed inventory for insurance or resale purposes.

Misc

  • Sign in or create a Discogs account
  • From the user menu, select "Settings", then "Developers" from the sidebar
  • Click the button to "Generate new token"

@todo

  1. Expert mode using all command-line args
  2. Wish list

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages