Hi
Watching your video reminded me of a project I did 10+ years ago related to dumping a large number of cd/dvd discs for preservation. I thought it might be useful to pass along a few things I was doing and maybe they would seed some ideas for your project.
My setup consisted of 2 (perl) scripts, a queue-runner and a queue-add. The queue-runner is somewhat analogous to your discrip.py minus the post processing with a couple key differences
- Watches a queue directory for json files that have discs to get dumped
- Multiple queue-runners were supported, each queue-runner was responsible for a single dumping device
- A queue-runner was aware of what media type(s) it supported dumping and would only process queue items with those media types
ie
terminal1:~ queue-runner -d /dev/sr0 -m cd
terminal2:~ queue-runner -d /dev/sr1 -m dvd
The queue-add script prompted the user for details about a disc. In my case that included platform (pc, 3do, ps1, ps2, etc), media
type, number of discs, region, catalog, disc ring code(s), publisher, barcode, etc.
From that it would create a json file in the queue directory for that disc to get picked up by a supporting queue-runner.
Additionally there was logic in it to know if for example the platform was ps1 that the media type must be cd and not to ask that, or if the game had 3 discs to auto create a queue item for each.
The queue-runners would periodically do a queue run. They would attempt a non-blocking flock on a queue json file. If it got the flock and it was a supported media type it would prompt the user to insert "game name" into the drive. A dumping/[PLATFORM]/[CATALOG]_[TIMESTAMP]/ directory would be created, the queue json file was moved into that directory, and then the dumping would start.
Once the dump was complete the disc would be ejected and the subdirectory would either be moved to a completed/[PLATFORM]/ or failed/[PLATFORM]/ directory depending on if it succeeded or not. If a disc failed you could clean it (or whatever) and give it another go just by copying over the queue json file from its failed subdirectory to the queue directory.
Originally my setup was having multiple cd/dvd drives in a single computer either via ide or usb, but quickly found out this didn't work well. If one of the drives started having troubling reading a disc it would cause all other drives on that bus to go ultra slow. I eventually ended up using 4 cheap ($120) nuc sized PCs, each with its own single Plextor PX-716A connected via a ide to usb adapter. Each of those PCs nfs mounted the directory that contained the queue|dumping|failed|completed directories. Then just had to fire up a queue-runner on each and start adding discs via queue-add.
Thanks for making all your videos and best of luck with this and your many other projects.
Hi
Watching your video reminded me of a project I did 10+ years ago related to dumping a large number of cd/dvd discs for preservation. I thought it might be useful to pass along a few things I was doing and maybe they would seed some ideas for your project.
My setup consisted of 2 (perl) scripts, a queue-runner and a queue-add. The queue-runner is somewhat analogous to your discrip.py minus the post processing with a couple key differences
ie
The queue-add script prompted the user for details about a disc. In my case that included platform (pc, 3do, ps1, ps2, etc), media
type, number of discs, region, catalog, disc ring code(s), publisher, barcode, etc.
From that it would create a json file in the queue directory for that disc to get picked up by a supporting queue-runner.
Additionally there was logic in it to know if for example the platform was ps1 that the media type must be cd and not to ask that, or if the game had 3 discs to auto create a queue item for each.
The queue-runners would periodically do a queue run. They would attempt a non-blocking flock on a queue json file. If it got the flock and it was a supported media type it would prompt the user to insert "game name" into the drive. A
dumping/[PLATFORM]/[CATALOG]_[TIMESTAMP]/directory would be created, the queue json file was moved into that directory, and then the dumping would start.Once the dump was complete the disc would be ejected and the subdirectory would either be moved to a
completed/[PLATFORM]/orfailed/[PLATFORM]/directory depending on if it succeeded or not. If a disc failed you could clean it (or whatever) and give it another go just by copying over the queue json file from its failed subdirectory to the queue directory.Originally my setup was having multiple cd/dvd drives in a single computer either via ide or usb, but quickly found out this didn't work well. If one of the drives started having troubling reading a disc it would cause all other drives on that bus to go ultra slow. I eventually ended up using 4 cheap ($120) nuc sized PCs, each with its own single Plextor PX-716A connected via a ide to usb adapter. Each of those PCs nfs mounted the directory that contained the queue|dumping|failed|completed directories. Then just had to fire up a queue-runner on each and start adding discs via queue-add.
Thanks for making all your videos and best of luck with this and your many other projects.