This article is a profile on experiences I have had while being an administrator of an open source project. While some aspects of this have been published before, recent work in the world of proprietary software has highlighted in my mind a few of the more powerful aspects of living in a FOSS world that I am sure the proprietary software makers would prefer you not to embrace.
First, the project: DVD Metabase.
DVD Metabase is a collection of tools that does some things for myself and at least 300+ other like-minded individuals with Home Theater PC (HTPC) environments that you probably cannot find anywhere else. While the feature-list of DVD Metabase is lengthy, one of the keystone features is the idea of hashing or creating a unique checksum of your commercial DVD, looking up that checksum in a database and if found, returning a host of metadata about the disc to the calling application. What is this good for or actually mean to you? Well, if you integrate this with your DVD media extractor what you get is something that can rip titles with proper names to your hard disc for later viewing.
Here is a real-world example:
Take the DVD version of the scifi epic Total Recall (great Philip K. Dick story, iffy Schwarzenegger vehicle), insert the disc into your PC to prepare it for your HTPC and even with some bits of intelligence your ripped files will look like this:
./total_recall
|-- features
| |-- total_recall_features_03.avi
| |-- total_recall_features_05.avi
| `-- total_recall_features_07.avi
|-- total_recall01.avi
`-- total_recall_02.avi
1 directory, 5 files
Now the same disc when run with the DVD Metabase-enhanced tools. First the disc hashed with tools from libdvdread and we get:
7c4673a5a32cb10588dd635218857542
Then that hash is submitted to the database and we get back:
jeff@jeffhpdev:~/dvdmetabase$ ./chkdisc.py
connecting to ... http://jbcobb.net:8000
doing record search...
converting to a string...
total_recall|7c4673a5a32cb10588dd635218857542|unkid
Title found: total_recall
Disc ID: 7c4673a5a32cb10588dd635218857542
5 tracks found:
[tracknumber]-type:title
[01]-m:total_recall
[02]-x:featurette
[03]-x:visions_of_mars
[05]-x:storyboards
[07]-x:trailer
We (and by extension our rip tools) know that track one is the main feature, named “total recall” and that tracks 2,3,5,7 are all extra features (Featurette, Visions of Mars, Storyboards and the trailer). This allows our rip tools to rip the files to a disc tree that looks like the following:
jeff@jeffhpdev:~/dvdmetabase/rips$ tree ./total_recall
./total_recall
|-- features
| |-- featurette.avi
| |-- storyboards.avi
| |-- trailer.avi
| `-- visions_of_mars.avi
`-- total_recall.avi
Quite the difference, no? It gets even better with episodic television DVDs:
Disc 3 of the seventh season of Crime Scene Investigation:
jeff@jeffhpdev:~/dvdmetabase/rips$ tree ./dvd_video/
./dvd_video/
|-- dvd_video_01.avi
|-- dvd_video_02.avi
|-- dvd_video_03.avi
`-- dvd_video_04.avi
becomes:
jeff@jeffhpdev:~/dvdmetabase/rips$ tree ./csi_season7_disc3/
./csi_season7_disc3/
|-- 09_living_legend.avi
|-- 10_loco_motives.avi
|-- 11_leaving_las_vegas.avi
`-- 12_sweet_jane.avi
0 directories, 4 files
jeff@jeffhpdev:~/dvdmetabase/rips$
Even better. If this were the only feature of such a system it would be cool enough but the metadata can also include things like links to trailers, web-based content, advanced rip settings and more. The ripper itself can automatically select specific audio and/or subtitle tracks so if the disc is in a language you don’t understand, your preferred audio track is selected and if that is not present, the correct subtitle track is selected. Different track types (movie, show, cartoon, etc) can have specialized rip quality settings applied. A great number of features can be configured.
Since a system like this is only as useful as the data sitting behind it, I created a public XML-RPC service that I host on a spare Linux box here at Casa Cobb (http://jbcobb.net:8000). Authorized users can scan unknown discs, fill out a simple submission form and update the central server so that others can benefit from this work.
This entire system was built with free software:
Front-end:
Ripper: Handbrake (http://handbrake.fr/)
Hashing code (http://freshmeat.net/projects/libdvdread/)
Python (http://python.org)
Back-end:
Sqlite (http://sqlite.org)
Python (http://python.org)
XML-RPC (http://xml-rpc.org)
Project host (https://sourceforge.net/projects/dvdmetabase/)
The point of the article:
The project itself is useful and powerful when used properly. However the point is that much of this would not have been as easy and in some cases possible with only proprietary software. Creating this costed nothing; the only on-going costs are my bandwidth fees. With proprietary tools I would need to have bought a server version of Windows, a client version of Windows, a Python development environment (to get the same IDE-abilities I get with Dr. Python), I would have to have developed the hashing algorithm from scratch and more.
This was brought to mind lately when I had to fulfil a contract for a client that needed to support 32 and 64-bit Windows with C++ and AutoCAD. First, to fully support the needed environments I would need two versions of Windows (Linux: 0$), two specific versions of the C++ compiler (32/64, 2005 and 2008 at $200 each) (Linux C++ compiler for all platforms: 0$) and of course AutoCAD ($$$; if you have to ask, you cannot afford it). Granted there are no versions of AutoCAD for Linux but there ARE DWF-compliant CAD programs for Linux (QCAD for one). As you can see you are paying a toll at each step of the toolchain.
It is enough to make you go running for GCC and embrace it with open arms. If I had to develop my projects using Microsoft tools, the project would probably never have gotten off the ground. With proprietary tools and environments you keep hitting what I call intellectual speed bumps…with FOSS if you want to see how something works, you just *look*. If you need a tool to get a job done, you just install it and not give it another thought. With proprietary tools you have to find it, make sure you can afford it, wait for it to arrive if electronic delivery is not an option, get it installed and dance around with DRM just to get into your project. By the time you get your tools installed, your competitor that uses FOSS tools is probably delivering milestone 1 at the very least…
It is times like these that FOSS feels like a comfortable old sweater. The pragmatist in me says I will continue to have to wrestle with proprietary tools as time goes on but every single experience like this ensures that every project where I need to get something done and done quickly and right the first time will be done with FOSS tools, no question about it.
Me to you.
JeffC

Related Articles
1 user responded in this post
Good article Jeff.
I would never gotten into the development game if all I had was Windows; in fact I am fairly certain that my Computer would spend most of the time off.
Steve
Leave A Reply