Giter Site home page Giter Site logo

justlep / dvd-archive Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 0.0 915 KB

PoC NodeJS/Svelte-based web application for archiving a DVD collection

License: MIT License

CSS 1.40% HTML 0.70% JavaScript 65.34% Svelte 32.56%
svelte nodejs nedb barcode-scanner quagga

dvd-archive's Introduction

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

  1. Start the webapp
    npm run dev
  2. Hit Add Disc
    • A scan dialog opens automatically
  3. Scan the (EAN13) barcode of a DVD by holding it to your webcam
  4. 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.
  5. 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
  6. 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.
  7. 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.

  1. 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}"
  2. 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).
  3. 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

dvd-archive's People

Contributors

dependabot[bot] avatar justlep avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

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.