2.0.0 • Published 2 years ago

plex-dvr v2.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
2 years ago

plex-dvr

oclif Version Downloads/week License

PLEX DVR POSTPROCESSING

This script accepts a transport stream as an argument FILE and does the following:

  1. Copies the original ts to a subdirectory within the system tmpdir
  2. Runs comskip to find commercial boundaries*. If found, it
    1. Deletes them using comcut
    2. Generates chapter boundaries at commercial breaks
  3. Extracts closed captions as subtitles
  4. Remuxes to mp4 to add chapter markers
  5. Transcodes to mkv to compress and add subtitles
  6. Cleans up after itself
    1. Deletes original ts
    2. Deletes temporary files
    3. Moves mkv to source directory (presumably .grab/)

It does all of this while respecting quiet hours and ensuring only one file is being processed at a time. It also produces detailed logs on its own and adds begin/end lines to the PMS logs.

PREREQUISITES

You can likely get some or all of these programs from your package manager.

Using in Plex

As of Plex Media Server v1.19.3, the postprocessing script must be called from the Scripts directory inside the application data directory.

Usage

$ plex-dvr [options] [FILE]

Options

optiontypedescription
--help, -hshow CLI help
--verbose, -vVerbose logging to the console.
--debug, -dInclude stdout and stderr from all tools in logs (overrides verbose flag)
--encoder, -estringVideo encoder string to pass to Handbrake. Run HandbrakeCLI --help to see available encoders.
--encoder-presetstringVideo encoder preset to pass to Handbrake. Run HandbrakeCLI --encoder-preset-list <string encoder> to see available presets.
--quiet-time, -qstringQuiet time, in the format of NN-NN where NN is an hour on the 24-hour clock (0 being midnight, 23 being 11pm). Default value 03-12 because I am a night owl.
--ignore-quiet-timeProcess file immediately without checking against quiet time hours.
--ccextractor-locationstringdefault: ccextractor CCExtractor binary location
--comcut-locationstringdefault: comcut Comcut binary location
--comskip-locationstringdefault: comskip Comskip binary location
--ffmpeg-locationstringdefault: ffmpeg ffmpeg binary location
--handbrake-locationstringdefault: HandBrakeCLI Handbrake binary location
--handbrake-presets-importstringLoad Handbrake presets file. Defaults to whatever presets are available in the gui, or barring that, nothing.
--handbrake-preset-namestringName of preset to select from gui or supplied preset file
--[no-]keep-originalPrevent original .ts file produced by Plex's DVR from being deleted. Default behavior is to delete.
--[no-]keep-tempPrevent temporary working directory from being deleted. Default behavior is to delete.
--sample-configPrint default config values & config directory location and exit.

Examples

plex-dvr /path/to/video
plex-dvr -q 22-06 -e vt_h264 /path/to/video

Setup

plex-dvr looks for your comskip.ini file at $HOME/.config/plex-dvr/comskip.ini You can also save yourself some hassle and set any of the above options as default in $HOME/.config/plex-dvr/config.json. They will be overwritten by CLI options.

2.0.0

2 years ago

1.2.0

2 years ago

1.4.2

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.2.2

2 years ago

1.3.0

2 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.4.0

4 years ago

0.3.0

4 years ago

0.2.1

4 years ago

0.2.2

4 years ago

0.2.0

4 years ago

0.1.2

4 years ago