Skip to main content

dvd copying and ripping management tool

Project description

DRT is a command line based DVD copying and ripping management program. It requires dvdbackup to copy the DVD to disc and HandBrakeCLI to transcode the video.

It allows you to setup transcoding of your DVD with meaningful track names for later processing when your computer is idle.

DRT is optimised for TV series based DVD ripping.

There is a config file at ~/.config/drt.yaml.

Installing

This is still in beta, if you want to test it use a virtualenv and a reasonably new version of python3, vis:

# debian based distros (ubuntu etc).
mkdir drt
cd drt
mkvirtualenv --system-site-packages --python=/usr/bin/python3 drt
pip install drt
dvdprocess -v

You’ll need to create a configuration file at $HOME/.config/drt.yaml

# $HOME/.config/drt.yaml
device: /dev/sr0
rootdir: ~/Videos/dvd
dvdoutput: ~/Videos/dvd/output
outputdir: ~/Videos/dvd/incoming
tmpdir: ~/Videos/dvd/bare
completeddir: ~/Videos/dvd/processed
saveddir: ~/Videos/dvd/saved
handbrake: /usr/bin/HandBrakeCLI
dvdbackup: /usr/bin/dvdbackup
eject: /usr/bin/eject
shorttrack: 300

only the keys device, rootdir, handbrake, dvdbackup and shorttrack are required, the rest are inferred.

dvdcopy

A small python program that uses dvdbackup to copy the DVD to your hard disc. When run, it asks for a name for the DVD. This is how it will be known to dvdprocess.

dvdprocess

dvdprocess allows you to set a title for the video files, with automatic series and episode numbering. The Series/Episode tag can be removed by setting the Series number to -1.

dvdprocess command module.

part of the drt package.

Usage:
    dvdprocess
    dvdprocess --help
    dvdprocess -v
    dvdprocess --version
    dvdprocess --allsaved
    dvdprocess -A
    dvdprocess --listsaved
    dvdprocess -l
    dvdprocess --incoming
    dvdprocess -r
    dvdprocess --saved SAVEDNAME ...
    dvdprocess -s SAVEDNAME ...
    dvdprocess --first
    dvdprocess -S

Options:
    -A --allsaved           process all saved DVDs.
    -h --help               this help message.
    -l --listsaved          list all saved DVDs and exit.
    -r --incoming           read the incoming dir. and build the DVD tree for editing. Default action
                            if no options supplied.
    -s --saved SAVEDNAME    process the saved DVD for SAVEDNAME, can be repeated.
    -S --first              process the first saved DVD and exit.
    -v --version            version info.

Notes:
    Process module of drt application

    dvdprocess on it's own will read the incoming directory and start the naming process.

    Reads a copied dvd directory.
    Produces an info file.
    Allows user to name the dvd and assign episode numbers and names to the tracks.
    Allows user to select which tracks to process.
    Allows user to toggle the burning in of subtitles.
    Allows user to save the edited data for processing at a later time.

Example

After copying 2 DVDs I have 2 folders in my incoming directory:

$ ls ~/Videos/dvd/incoming
jjds2d2  SPIRAL_S2_D2

Running dvdprocess I’m presented with the following (short tracks, less than 5 minutes are not shown):

$ ./dvdprocess -r
DVD: jjds2d2
Series Name: jjds2d2
Series ID: 1
Start Episode: 1
  +   2 - jjds2d2 2 - 02:59:11 - 10751 - English/English
  +   3 - jjds2d2 3 - 01:29:29 - 5369 - English/English
  +   4 - jjds2d2 4 - 01:29:42 - 5382 - English/English
edit [d]vd, edit [t]racks, [s]ave, s[k]ip, [o]k (o) >

the menu allows me to edit the DVD name, series number and starting episode number

edit [d]vd, edit [t]racks, [s]ave, s[k]ip, [o]k (o) > d
Series Name (jjds2d2) > Judge John Deed
Series number (1) > 2
Starting Episode Number (1) > 3
DVD: jjds2d2
Series Name: Judge John Deed
Series ID: 2
Start Episode: 3
  +   2 - Judge John Deed S02E03 - 02:59:11 - 10751 - English/English
  +   3 - Judge John Deed S02E04 - 01:29:29 - 5369 - English/English
  +   4 - Judge John Deed S02E05 - 01:29:42 - 5382 - English/English

which, as you can see has changed the name of each track, giving it series and episode numbers. Editing the track menu allows me to add track titles and select which tracks are to be processed.

edit [d]vd, edit [t]racks, [s]ave, s[k]ip, [o]k (o) > t
  +   2 - Judge John Deed S02E03 - 02:59:11 - 10751 - English/English
  +   3 - Judge John Deed S02E04 - 01:29:29 - 5369 - English/English
  +   4 - Judge John Deed S02E05 - 01:29:42 - 5382 - English/English

Now I select the track naming option:

edit (s)elected tracks, edit (b)urnin subtitles, edit track (n)ames () > n
  +   2 - Judge John Deed S02E03 - 02:59:11 - 10751 - English/English
  +   3 - Judge John Deed S02E04 - 01:29:29 - 5369 - English/English
  +   4 - Judge John Deed S02E05 - 01:29:42 - 5382 - English/English
Select track number or (e)xit track editor. () > 3
Track 3 title: () > Nobody's Fool
  +   2 - Judge John Deed S02E03 - 02:59:11 - 10751 - English/English
  +   3 - Judge John Deed S02E04 - 01:29:29 - 5369 - English/English Nobody's Fool
  +   4 - Judge John Deed S02E05 - 01:29:42 - 5382 - English/English
Select track number or (e)xit track editor. () > 4
Track 4 title: () > Everyone's Child
  +   2 - Judge John Deed S02E03 - 02:59:11 - 10751 - English/English
  +   3 - Judge John Deed S02E04 - 01:29:29 - 5369 - English/English Nobody's Fool
  +   4 - Judge John Deed S02E05 - 01:29:42 - 5382 - English/English Everyone's Child
Select track number or (e)xit track editor. () > e
DVD: jjds2d2
Series Name: Judge John Deed
Series ID: 2
Start Episode: 3
  +   2 - Judge John Deed S02E03 - 02:59:11 - 10751 - English/English
  +   3 - Judge John Deed S02E04 - 01:29:29 - 5369 - English/English Nobody's Fool
  +   4 - Judge John Deed S02E05 - 01:29:42 - 5382 - English/English Everyone's Child

track selection:

edit [d]vd, edit [t]racks, [s]ave, s[k]ip, [o]k (o) > t
  +   2 - Judge John Deed S02E03 - 02:59:11 - 10751 - English/English
  +   3 - Judge John Deed S02E04 - 01:29:29 - 5369 - English/English Nobody's Fool
  +   4 - Judge John Deed S02E05 - 01:29:42 - 5382 - English/English Everyone's Child
edit (s)elected tracks, edit (b)urnin subtitles, edit track (n)ames () > s
Tracks to process ([2, 3, 4]) > 3 4
DVD: jjds2d2
Series Name: Judge John Deed
Series ID: 2
Start Episode: 3
      2 - jjds2d2 2 - 02:59:11 - 10751 - English/English
  +   3 - Judge John Deed S02E03 - 01:29:29 - 5369 - English/English Nobody's Fool
  +   4 - Judge John Deed S02E04 - 01:29:42 - 5382 - English/English Everyone's Child

As you can see by de-selecting track 2 the remaining tracks are re-numbered accordingly. I then saved the information for processing later. dvdprocess then moves onto the next DVD in the directory.

edit [d]vd, edit [t]racks, [s]ave, s[k]ip, [o]k (o) > s
DVD: SPIRAL_S2_D2
Series Name: SPIRAL_S2_D2
Series ID: 1
Start Episode: 1
  + b 1 - SPIRAL_S2_D2 1 - 03:30:17 - 12617 - Francais/English
  + b 2 - SPIRAL_S2_D2 2 - 00:50:36 - 3036 - Francais/English
  + b 3 - SPIRAL_S2_D2 3 - 00:55:07 - 3307 - Francais/English
  + b 4 - SPIRAL_S2_D2 4 - 00:52:23 - 3143 - Francais/English
  + b 6 - SPIRAL_S2_D2 6 - 00:52:11 - 3131 - Francais/English
      7 - SPIRAL_S2_D2 7 - 00:00:48 - 48 - none/none

The b next to the selected track shows that dvdprocess has detected that the main audio track and the first sub-title track have different languages (Francais/English in this case). It has automatically selected to burn the subtitles onto the video track. This can be turned off in the track editor.

edit [d]vd, edit [t]racks, [s]ave, s[k]ip, [o]k (o) > t
  + b 1 - SPIRAL_S2_D2 1 - 03:30:17 - 12617 - Francais/English
  + b 2 - SPIRAL_S2_D2 2 - 00:50:36 - 3036 - Francais/English
  + b 3 - SPIRAL_S2_D2 3 - 00:55:07 - 3307 - Francais/English
  + b 4 - SPIRAL_S2_D2 4 - 00:52:23 - 3143 - Francais/English
  + b 6 - SPIRAL_S2_D2 6 - 00:52:11 - 3131 - Francais/English
      7 - SPIRAL_S2_D2 7 - 00:00:48 - 48 - none/none
edit (s)elected tracks, edit (b)urnin subtitles, edit track (n)ames () > b
  + b 1 - SPIRAL_S2_D2 1 - 03:30:17 - 12617 - Francais/English
  + b 2 - SPIRAL_S2_D2 2 - 00:50:36 - 3036 - Francais/English
  + b 3 - SPIRAL_S2_D2 3 - 00:55:07 - 3307 - Francais/English
  + b 4 - SPIRAL_S2_D2 4 - 00:52:23 - 3143 - Francais/English
  + b 6 - SPIRAL_S2_D2 6 - 00:52:11 - 3131 - Francais/English
      7 - SPIRAL_S2_D2 7 - 00:00:48 - 48 - none/none
Toggle Burnin (Track Num or (A)ll) () > 1
DVD: SPIRAL_S2_D2
Series Name: SPIRAL_S2_D2
Series ID: 1
Start Episode: 1
  +   1 - SPIRAL_S2_D2 1 - 03:30:17 - 12617 - Francais/English
  + b 2 - SPIRAL_S2_D2 2 - 00:50:36 - 3036 - Francais/English
  + b 3 - SPIRAL_S2_D2 3 - 00:55:07 - 3307 - Francais/English
  + b 4 - SPIRAL_S2_D2 4 - 00:52:23 - 3143 - Francais/English
  + b 6 - SPIRAL_S2_D2 6 - 00:52:11 - 3131 - Francais/English
      7 - SPIRAL_S2_D2 7 - 00:00:48 - 48 - none/none

The rest of the process is the same as for the first DVD.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drt-1.2.1.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

drt-1.2.1-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file drt-1.2.1.tar.gz.

File metadata

  • Download URL: drt-1.2.1.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.23.0 setuptools/41.1.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.5

File hashes

Hashes for drt-1.2.1.tar.gz
Algorithm Hash digest
SHA256 8f1368a28b63d070986d5525da34f0f4bb093d10203b892f5f3252782ff183da
MD5 3523d176f4f438403e0a58d0779e1e96
BLAKE2b-256 6f8338282e2c14e527ab2fc56afd0052c9fba79cc8ad22beb87e0224d53ea304

See more details on using hashes here.

File details

Details for the file drt-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: drt-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.23.0 setuptools/41.1.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.5

File hashes

Hashes for drt-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9d1b2d6ba136a29882ee238c7594e9c7537e8ff7fe4e5df28cdf410d196be1d6
MD5 6b74a031cef0386a0ca944edeeecb351
BLAKE2b-256 a69032b9524e475aa55b6301610c25a53339934112651f4eb426a3b097de159b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page