/kodi-couch-ripper

Kodi addon for ripping DVDs/Blu-rays.

Primary LanguagePythonMIT LicenseMIT

Couch Ripper Kodi Addon

About:
Like many others, I use Kodi and I like to rip my movies/TV shows to my
library from DVDs and Blu-ray discs. I had been doing this with a few scripts
and wanted to create a Kodi interface to make this a little smoother process.
Couch Ripper is designed to do just that. This project is still very alpha.

Pre-Requisites:
By default, Couch Ripper utilizes MakeMKV <http://www.makemkv.com/> and
HandBrake <https://handbrake.fr/> to do the actual ripping and encoding of DVDs
and Blu-rays, so these must be installed prior to it working, unless you
specify different commands for encoding and ripping.

MakeMKV:
MakeMKV is the software responsible for ripping, decrypting and encoding the
video. It is proprietary software, and costs $50 for a license, but is free to
use while it is in beta. They have stated that once it leaves beta, DVD
ripping will continue to be free, while Blu-ray ripping will require a
license. During the beta, you can get the current license from
<http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053> which needs to be
updated every 60 days. You can also show your support and purchase a full
license (which will not change through versions or updates) for the software
on their website <http://makemkv.com/buy/>.

Installation - Ubuntu:
sudo add-apt-repository ppa:heyarje/makemkv-beta
sudo apt-get update
sudo apt-get install makemkv-bin makemkv-oss

Installation - Windows/Mac
http://www.makemkv.com/download/

Open the MakeMKV GUI and enter the key from the above-mentioned forum post, or
your purchased license.

HandBrake:
HandBrake transcodes the files output by MakeMKV and compresses them to their
final format. HandBrake is free and open-source software.

Installation - Ubuntu (Do not use the version in the Ubuntu repos):
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake-cli

Installation - Windows/Mac
https://handbrake.fr/downloads2.php

Setup:
I have tried to make Couch Ripper both easy to use and flexible. All of the
defaults are pretty sane for a great quality movie with a small file size. The
paths to the executables and folders have no defaults though, so those must be
set prior to use. When you open the config, you will see a defaults section
and 10 separate profiles. Set the defaults first, then you can use them in
each profile. I like to use several different profiles, like Movies, TV Shows,
Foreign Films, Black and White, etc. To use the default value for a setting in
one of the profiles, either select default from the dropdown, or leave it
blank. All profiles are set to use the values you set in the defaults section
when they are created by default.

Pretty Name................The name of the profile that will be shown in the
                           selection dialog when you run Couch Ripper.
Enabled....................Whether or not this profile should be shown in the
                           selection dialog when you run Couch Ripper.
Path to MakeMKVCon.........Required. Path to the makemkvcon executable
                           (/usr/bin/makemkvcon on Ubuntu)
Path to HandBrakeCLI.......Required. Path to the HandbrakeCLI executable
                           (/usr/bin/HandBrakeCLI on Ubuntu)
Temporary Folder...........Required. Path to temporary folder for initial
                           rips. This folder will need at least 60GB free to
                           store them. This folder should be dedicated to Couch
                           Ripper, since anything in it can be deleted.
Destination Folder.........Required. Path to where you want the final videos.
                           I do not suggest making this the same path as your
                           library, as the filenames will need cleanup.
CPU Priority...............Ripping and encoding videos is very CPU intensive.
                           Setting this to Normal or High may make the process
                           faster, but will likely leave your PC unoperable in
                           the meantime. Settings this to Low should allow you
                           to use the regular functions of Kodi in the
                           meantime.
Resolution.................This is the maximum resolution. Videos with a
                           higher resolution will be reduced to this. Videos
                           with a lower resolution are unaffected.
Quality....................Quality setting. High is recommended, but if
                           quality is not a concern, and disk space is, choose
                           another value.
Minimum Title Length.......Since MakeMKV works by ripping all video tracks
                           above  a certain length, instead of picking the
                           largest one, we need to set a minimum title length,
                           otherwise it  will rip all the previews, features,
                           etc. A sane default for movies is 45, TV shows 8.
Native Language............This is the language YOU speak. This setting makes
                           sure that audio and subtitle tracks for your
                           language are ripped, if available. In the case of
                           foreign films where your language is not available,
                           it will rip the language of the movie instead.
Foreign Audio..............This setting is useful if you like to watch foreign
                           movies with subtitles in their native language. It
                           grabs all audio tracks available. If you do not
                           like watching foreign films with subtitles, do not
                           use this option. By setting the "Native Language"
                           option above, your audio and subtitles will be
                           ripped by default, if available.
Encode After Rip...........As stated before, the process is split in two
                           processes. First, a video is ripped, then it is
                           encoded. Most users will want to leave this as
                           True. The only reason to change it is if you wanted
                           to encode your videos with another application, or
                           perhaps batch encode them when your PC is not
                           used, etc.
Eject After................Choose when (if ever) to eject a disc.
Notify After Rip...........Display a notification in Kodi after ripping a
                           disc. Notification will be automatically dismissed.
                           Dialog will pop up a notification that requires you
                           to click OK to dismiss it. This is helpful if you
                           won't be around to see the notification.
Notify After Encode........Display a notification in Kodi after encoding a
                           movie. Notification is a toast that will
                           automatically be dismissed. Dialog will pop up a
                           notification that requires you to click OK to
                           dismiss it. This is helpful if you won't be around
                           to see the notification.
Clean Up Temp Folder On
..Success..................Delete temporary files after a successful encode.
                           Most users would want to allow this, unless you are
                           experiencing issues.
Black and White............If a movie is black and white, this will tell the
                           encoder not to produce colors, which can reduce
                           green tinge or rainbow shimmering in black and
                           white encodes. DO NOT use this for videos that are
                           in black and white with partial color, such as
                           Sin City.
Drive ID...................Numerical drive ID. If you have more than one
                           optical drive you may need to specify the correct
                           drive here. You can use Identify Drives to get
                           the IDs.
Additional HandBrakeCLI
..Arguments................You can enter any additional arguments for
                           HandBrakeCLI here. Useful for audio settings and
                           such that are not handled by Couch Ripper. NOTE:
                           Entering arguments here that conflict with the
                           arguments set by Couch Ripper will probably
                           end badly.
Identify Drives............You can use this to find out the numerical ID for
                           your optical drives. Just make sure to have a disc
                           in the drive(s) you want to ID.
Use Custom Rip Command.....Enables the use of a completely custom rip command.
Custom Rip Command.........The rip command that will be used instead of
                           MakeMKV. It is not verified in any way, and you are
                           on your own if you choose to use this.
Use Custom Encode Command..Enables the use of a completely custom encode
                           command.
Custom Encode Command......The encode command that will be used instead of
                           HandBrakeCLI. It is not verified in any way, and you
                           are on your own if you choose to use this.
Show MakeMKVCon/Rip
..Command..................This just displays the MakeMKVCon (or custom rip)
                           command that will be run. Useful when debugging or
                           using advanced options.
Show HandBrakeCLI/Encode
..Command..................This just displays the MakeMKVCon (or custom encode
                           command that will be run. Useful when debugging,
                           using advanced options, or if you want to schedule
                           encodings.


Usage:
After setting up Couch Ripper and creating a profile or two, all you have to
do is launch it. It will then bring up a dialog to choose the profile you want
to use. After selecting a profile, it will rip and encode the video(s) for
you. That's it!

CD Part of icon derived from work by http://gentleface.com
Couch part of icon derived from work by http://lethalnik-art.deviantart.com,
http://minimalcustomizers.deviantart.com

TODO: Create encoding scheduler
Add Manual Naming Option
Add Renaming Options
If only title, remove txx in filename
Use strings.po