DVD Archive
A NodeJS/Svelte-based web application for "archiving" your entire DVD collection in no time.
Archiving meaning: throw away your DVDs' plastic boxes, instead sorting the bare discs into
thin, numbered sleeves of a disc case where you'll later find them by their disc number.
The discs' content (video data) is NOT archived!
Motivation
- I wanted to try out Svelte JS during a little Hackathon.
- I had too little space for too many shoes, but a shelf filled with DVDs I haven't been watching for years.
Plus a spare disc case for 200 discs.
Solution
Features
- Barcode scanner reading the article number (EAN) via webcam
- Disc title lookup via EAN
- Easy selection of the right DVD cover images through Duckduckgo image search
- Persistence through document-based NeDB
- Grid-like overview mode
Requirements
NodeJS 8+
- a webcam (I used an ancient one from Logitech, with manual zoom)
Workflow #1: Archiving
- Start the webapp
npm run dev
- Hit Add Disc
- A scan dialog opens automatically
- Scan the (EAN13) barcode of a DVD by holding it to your webcam
- Verify the barcode
- This is important since EAN13 barcodes have very poor error detection.
- Type in the correct EAN manually if scanning just won't do.
- Hit Lookup EAN
- This will query the Open EAN/GTIN Database for the corresponding DVD title.
- The number of free queries per day is limited, unfortunately, so this may not work sometimes
(look for
error 5
in the node console)
- More info about the API here
- The next free disc number is pre-filled already. Change it if needed.
- Put the disc into the case sleeve of that number.
- Recycle the old plastic DVD box.
- Hit Save
- Once the disc is saved, the Scan dialog will reopen so you can immediately continue archiving the next disc (step 3)
Workflow #2: Assigning Cover Images
Once all DVDs are registered, you can easily choose the right cover image for each of your movies out of some
image search results taken from Duckduckgo.
- For any listed DVD, click Find cover...
- You'll be presented 25 images returned from an image search query at Duckduckgo.
- The underlying query looks like
"dvd {your movie title}"
- Click the best image
- The application will try to download the image.
- Choose a different image if the image can't be downloaded (because some servers block the request).
- If no image fits, try adjusting the DVD title (e.g. temporarily adding an actor to it).
- To change an existing image, just click it, and the Duckduckgo results will be loaded again.
After archiving, the data/
folder contains both the database and all cover image files.
The Result
I managed to unbox & archive 200 DVDs in less than 3 hours.
The freed space got gracefully filled with shoes ;-)
License
MIT
Many thanks to