adamgot / python-plexlibrary

Create and maintain dynamic Plex libraries based on recipes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Python-PlexLibrary

Python command line utility for creating and maintaining dynamic Plex libraries and playlists based on "recipes".

E.g. Create a library or playlist consisting of all movies or tv shows in a Trakt list or on an IMDb chart that exist in your main library, and set the sort titles accordingly (sort only available for libraries).

Disclaimer

This is still a work in progress, so major changes may occur in new versions.

Requirements

  • Python 3
  • You need a trakt.tv account and an API app: https://trakt.tv/oauth/applications/new
  • (optional) The Movie Database API
    • https://developers.themoviedb.org/3/getting-started
    • Required for fetching scores, release dates etcetera, for weighted sorting
    • Required for matching any library items that use the TMDb agent with the items from the lists (if those items do not include a TMDb ID)
    • Shouldn't be necessary for Trakt, as those usually all have TMDb IDs.
    • Required for matching movies and some TV shows sourced from IMDb
  • (optional) TheTVDB API
    • https://www.thetvdb.com/?tab=apiregister
    • Required for matching any library items that use the TheTVDB agent with the items from the lists (if those items do not include a TheTVDB ID)
    • Shouldn't be necessary for Trakt, as those usually all have TVDB IDs.
    • Required for matching TV shows sourced from IMDb

Getting started

  1. Clone or download this repo.

  2. Install Python and pip if you haven't already.

  3. Install the requirements:

    pip install -r requirements.txt
  4. Copy config-template.yml to config.yml and edit it with your information.

  1. Check out the recipe examples under recipes/examples. Copy an example to recipes/ and edit it with the appropriate information.

Usage

In the base directory, run:

python3 plexlibrary -h

for details on how to use the utility.

python3 plexlibrary -l

lists available recipes.

To run a recipe named "movies_trending", run:

python3 plexlibrary movies_trending

(If you're on Windows, you might have to run as admin)

When you're happy with the results, automate the recipe in cron or equivalent (automated tasks in Windows https://technet.microsoft.com/en-us/library/cc748993(v=ws.11).aspx).

Pro tip! Edit the new library and uncheck "Include in dashboard". Othewise if you start watching something that exists in multiple libraries, all items will show up on the On Deck. This makes it so that only the item in your main library shows up.

Planned features

See issues.

Credit

Original functionality is based on https://gist.github.com/JonnyWong16/b1aa2c0f604ed92b9b3afaa6db18e5fd

About

Create and maintain dynamic Plex libraries based on recipes.

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 100.0%