stuart-knock / myth2kodi

Maps MythTV recording files to a Kodi library.
6 stars 2 forks source link
myth2kodi icon

myth2kodi

myth2kodi is a modified version of mythicalLibrarian by Adam Outler.

The myth2kodi script automates the mapping of MythTV recordings to a Kodi library. It is designed to be a user job in MythTV. It can also be run manually from a command line. It must have access to your MythTV recordings. The program generates file names compatible with Kodi, then moves or links recordings based on user settings. Comskip and NFO files are also generated from your MythTV database, as required, so that Kodi can make use of them. For usage and command line options see: myth2kodi --help

Quick Start Guide

Dependencies

curl -- downloads webpages and sends commands to Kodi;
jq -- parses json files, used for TheTVDB and tvmaze data;
agrep -- provides fuzzy string matching;
libnotify-bin -- allows GNOME desktop notifications;
mythbackend -- Access the MythTV database.

Installation

The ./install.sh script is the easiest and recommended way to install myth2kodi. If you would prefer to do the installation manually, then, the myth2kodi file should be placed in the users path, see the binpath variable in user settings (Default: /usr/local/bin). Some of the functionality of this script is provided in other files, these will also need to be placed in binpath along with this script. The three supporting scripts to myth2kodi are:
mythdb_access -- Uses MythTV python bindings to access database information.
m2k_notify -- A script for sending notifications to Gnome Desktop.
bashlogging -- A set of bash functions that provide the logging mechanism used throughout myth2kodi.

Configuration

There are a large number of "user-settings" for myth2kodi. For most users the majority of them should be left with their default values. Placing a myth2kodi.conf file in myth2kodi's working directory is the recommended way to override default settings. In addition to reading CONFIGURE.md, looking through the configuration template file is a good way to get to know what options are available. The settings that you will almost certainly need to modify, as they are specific to your set-up, are tagged with #<------THIS VALUE MUST BE SET-------.

Usage

myth2kodi can be used as a MythTV user-job or from the command-line.

The MythTV user job should be called as follows:

$binpath/myth2kodi "%DIR%/%FILE%"

where $binpath is replaced by the full explicit path from USER SETTINGS. To process a recording at the command line, the script can be called with the following form:

myth2kodi "Input File" ["show name"] ["episode name"] ["season-number" "episode-number"]

where arguments in the square brackets are optional. For more details and additional functionality see USAGE.md or type:

myth2kodi --help

Repository Overview

├── myth2kodi (The main script.)
├── install.sh (The installation script.)
├── mythdb_access (Accesses MythTV-DB using Python bindings.)
├── m2k_notify (Sends desktop notifications.)
├── bashlogging (Provides a configurable logging mechanism.)
├── myth2kodi.conf (A complete configuration template.)
├── showTranslations.SydFTA (An example translation file for Sydney free-to-air guide data.)
├── doc (Documentation.)
   ├── OVERVIEW.md (An overview of the myth2kodi documentation.)
   ├── INSTALL.md (A description of how to install myth2kodi.)
   ├── CONFIGURE.md (An overview of the configuration options.)
   ├── USAGE.md (A brief guide to using myth2kodi.)
   ├── key_differences_to_mythicalLibrarian.md (How is myth2kodi different from mythicalLibrarian?)
   ├── create_a_dummy_system_for_testing.md (Rough guide to building a test system that mirrors your actual system.)
   └── example_myth2kodi.conf (A minimal example configuration file.)
├── icons (Icons.)
   ├── myth2kodi.png (The icon displayed with desktop notifications on successful processing.)
   └── myth2kodi_failed.png (The icon displayed with desktop notifications on failed processing.)
├── tools (Simple scripts that do something useful using myth2kodi.)
   └── manual_process (Helps manually processing failed episode identification.)
└── attic (Old stuff I just haven't thrown away yet.)