Menu

Tree [r71] /
 History

HTTPS access


File Date Author Commit
 CHANGELOG 2009-05-24 usul_of_arakis [r63] Fixed bug where sim links to HandBrakeCLI and d...
 COPYING.LESSER 2009-01-13 jeff_cobb [r1] initial checkin through subversion of DVD metab...
 INSTALL 2009-09-06 usul_of_arakis [r66] Install procedure modified to allow for require...
 README 2009-04-29 usul_of_arakis [r52] quickstart.txt deleted Replaced by INSTALL AND...
 TODO 2009-05-01 jeff_cobb [r56] updated to do list
 cfgezrip.sh 2010-05-25 usul_of_arakis [r71] Fixed bug that only allowed copying of libdvdha...
 chkdisc.py 2009-02-12 jeff_cobb [r36] Patched all other files that used EZRipConfig t...
 dbquery.py 2009-02-12 jeff_cobb [r36] Patched all other files that used EZRipConfig t...
 default.key 2009-02-21 jeff_cobb [r41] new default key
 deffilters.ini 2009-02-11 jeff_cobb [r34] 1. patched scans of cartoons and xtras to go fu...
 dvddb3.py 2009-02-12 jeff_cobb [r36] Patched all other files that used EZRipConfig t...
 dvddblink.py 2009-01-18 jeff_cobb [r7] Back-end server files initial checkin
 dvddbsrv3.py 2009-03-17 jeff_cobb [r45] Updated exception handler to use finally
 dvddbsrvcfg.py 2009-01-31 jeff_cobb [r19] bleeding-edge major security change update. Mai...
 dvdhash 2009-09-04 jeff_cobb [r64] * Extended hbio.py to use dvdhash and libdvdhas...
 dvdmainrec.py 2009-02-12 jeff_cobb [r36] Patched all other files that used EZRipConfig t...
 dvdmetabase_docs_1.0.2.odt 2009-09-06 jeff_cobb [r69] fixed minor spelling error
 dvdtrack.py 2009-01-13 jeff_cobb [r1] initial checkin through subversion of DVD metab...
 dvdtrackinfo.py 2009-01-28 jeff_cobb [r18] normalized filenames to replace " " w
 ezrconf_local.py 2009-05-01 jeff_cobb [r57] new additions for auto subtitle selection for f...
 ezrconfig.py 2009-09-04 jeff_cobb [r65] *Fixed bug so if the default language isn't ava...
 ezrip.py 2009-09-04 jeff_cobb [r64] * Extended hbio.py to use dvdhash and libdvdhas...
 hbio.py 2009-09-04 jeff_cobb [r65] *Fixed bug so if the default language isn't ava...
 importdisc.py 2009-02-12 jeff_cobb [r36] Patched all other files that used EZRipConfig t...
 installDeps.sh 2009-04-10 usul_of_arakis [r48] New interactive configuration script
 lgpl.txt 2009-01-13 jeff_cobb [r1] initial checkin through subversion of DVD metab...
 libdvdhash.so 2009-09-04 jeff_cobb [r64] * Extended hbio.py to use dvdhash and libdvdhas...
 lsdvdrdr.py 2009-04-30 jeff_cobb [r53] extended to optionally automatically grab an ap...
 ripfilter.py 2009-01-13 jeff_cobb [r1] initial checkin through subversion of DVD metab...
 ripselect.py 2009-01-17 jeff_cobb [r5] 1. Corrected bug where hbio would not respect a...
 rpfilters.py 2009-01-13 jeff_cobb [r1] initial checkin through subversion of DVD metab...
 usermanip.py 2009-02-21 jeff_cobb [r40] fixed a comment

Read Me

For Installation instruction please read the INSTALL FILE.

Hi, This is Jeff Cobb, author of the code in DVD Metabase. Welcome to
the quick start guide; for the advanced user this should get you up
and going with a minimum amount of effort so you can see what you can
do with this.

Use case: We have a simple yet robust video on demand system here at
my house. It is essentially 4 TB of online storage shared over a pair
of NFS shares feeding 1-n media display stations. Each station is a
simple machine running either Debian or Ubuntu Linux. In either case
each machine has Lirc (remote control software) coupled with Streamzap
remotes and Oxine (portable onscreen display or OSD). Through the use
of XML configuration files Oxine converts the directory structure of
the online storage to a menu system.

This simple setup gives us a lot of power and thanks to the simplicity
a lot of configurability as well. However this does have a major
missing bit of functionality which is how to get content into the
system in a reliable and simple manner.

Enter EZRip. EZRip started life as a collection of scripts to help
automate the DVD->Digital format conversion. As over-achiever couch
pototatoes we had a pretty decent DVD collection but even with a
5-disc changer it was just not working. Thus I hatched the idea for
the video on demand system where your *entire* collection can be
stored and played back on demand. I had to do it w/free software and
COTS equipment, the cheaper the better. As a self-respecting geek
house-hold, scrap hardware was not the issue; having never done it
before, reliably transferring our collection to hard drive seemed like
a huge step. Lots of experimentation lead to lots of scripts which
lead to EZRip. In the beginning all I wanted it to do was to reliably
find the movie track or just the episodes; when found the tracks would
rip to a variety of formats. Once this became solid it became obvious
that if it knew that a track was a movie (or episode, or extra feature
or...) it could then apply special rip modes (like ripping feature
films differently than say animation). Then more intelligence was
added to help filter out garbage like repeated or "ghost" tracks on
some RW media on home recorders. We record a lot of different things
on TV and then use this tool to rip them to AVI file for further
editing such as fast and easy commericial filtering.

But the thing that kept kicking us in the rear was the fact that for
all it did, I still wound up with TRACK_O1.AVI. Yeah hand-editing the
file can be and was done but what about things like shows or worse,
special feature discs? Enter DVD Metabase.

I was playing around with some tools in libdvdread when I discovered
the disc_id tool would generate a seemingly unique disc hash from a
DVD. I have tried it with nearly a 1000 discs so far if not more and
not a single collision. Anyhow, I figured if that worked, I could
create a database of commerical disc metadata (initially just disc id,
title, individual track names and types) that the ripper could consult
and use so now where I was getting TRACK_01.AVI I now get
alien_vs_predator.avi. In the case of television shows, it is in the
format of disc name, XX_YYYYYY.avi where XX is the season episode
number, 0-backfilled and YYY is a textual name. The fourth episode
some show would look like 04_some_episode_title.avi. No, there is no
magic here; the only data in the database is stuff from our personal
collection. To make it easier I write a mini-server in Python to
provide DVD metadata lookup services via XML-RPC at
jbcobb.net:8000. EZRip now uses that to do the lookup; if the hash
isn't in the database back here (or local if you like; you can run
your own metabase server) you get the hold track01.avi thing.

If you rip Indiana Jones and the Temple of Doom, it will create a
temple_of_doom folder, rip the feature into it
(indiana_jones_and_the_temple_of_doom.avi), then if there are extra
features on the DVD, a "features" folder is created and all known
extra features are ripped into that with proper names (gag_reel.avi,
trailer.avi, etc). In other words, this tool helps semi-populate your
video-on-demand system.

The database on the back-end is SQLite3 and has more fields/tables for
things like URLs to things (thinking links to trailers, maybe IMDB or
other reference/cast info), reviews and specialized HandBrake
settings. In ezrconfig.py, deffilters.ini there are a lot of ways to
tweak how this tool interacts with HandBrake. The defaults are sane
and "gets the job done" but the tweakers will want to check out the
presets section for doing things like iPod conversion and so on.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.