diff --git a/docs/home/guides/docker.md b/docs/home/guides/docker.md index 6a6b34ac..5cf3aa4e 100644 --- a/docs/home/guides/docker.md +++ b/docs/home/guides/docker.md @@ -19,6 +19,13 @@ The specific steps you will be taking: 1. use `docker` to run the image 2. use a text editor to modify a couple of text files until you have a working config file and a single working metadata file. +Note that running a Docker container is inherently a pretty technical process. If you are unable or unwilling to learn the rudiments of using Docker, this may not be the tool for you. + +If the idea of editing YAML files by hand is daunting, this may not be the tool for you. All the configuration of PMM is done via YAML text files, so if you are unable or unwilling to learn how those work, you should stop here. + +Finally, this walkthrough is intended to give you a basic grounding in how to get the script running. It doesn't cover how to create your own collections, or how to add overlays, or any of the myriad other things PMM is capable of. It provides a simple "Getting Started" guide for those for whom the standard install instructions make no sense; presumably because you've never run a Docker container before. + + ## Prerequisites. Anywhere you see @@ -62,12 +69,13 @@ This message shows that your installation appears to be working correctly. ... ``` +If that doesn't work, stop here until you fix that. Diagnoing and repairing Docker install problems is out of the scope of this walkthrough. + --- #### Important note on Docker images -This tutorial uses the official image, and you should, too. Don't change `meisnate12/plex-meta-manager` to the `linuxserver.io` image or any other; the lsio image specifically has [idiosyncracies](alternative-docker.md) that will prevent this walkthrough from working. The official image *will* behave exactly as documented below. Other very possibly won't. - +This tutorial uses the official image, and you should, too. Don't change `meisnate12/plex-meta-manager` to the `linuxserver.io` image or any other; the lsio image specifically has [idiosyncracies](alternative-docker.md) that will prevent this walkthrough from working. The official image *will* behave exactly as documented below. Others very possibly won't. The great thing about Docker is that all the setup you'd have to do to run PMM is already done inside the docker image. @@ -113,11 +121,12 @@ cd ~ mkdir plex-meta-manager ``` -cd into that directory: +cd into that directory and create another directory: [type this into your terminal] ``` cd ~/plex-meta-manager +mkdir config ``` get the full path: @@ -128,427 +137,217 @@ pwd ``` This will display a full path: -
- OS X -
- ``` - /Users/YOURUSERNAME/plex-meta-manager - ``` -
+````{tab} Linux +
+``` +/home/YOURUSERNAME/plex-meta-manager +``` +
+```` +````{tab} OS X: +
+``` +/Users/YOURUSERNAME/plex-meta-manager +``` +
+```` +````{tab} Windows: +
+``` +C:\Users\YOURUSERNAME\plex-meta-manager +``` +
+```` -
- Linux -
+Add "config" onto the end of that to get the host path to your config directory, for example: - ``` - /home/YOURUSERNAME/plex-meta-manager - ``` -
- -
- Windows -
- - ``` - C:\Users\YOURUSERNAME\plex-meta-manager - ``` -
+````{tab} Linux +
+``` +/home/YOURUSERNAME/plex-meta-manager/config +``` +
+```` +````{tab} OS X: +
+``` +/Users/YOURUSERNAME/plex-meta-manager/config +``` +
+```` +````{tab} Windows: +
+``` +C:\Users\YOURUSERNAME\plex-meta-manager\config +``` +
+```` You'll need to add this to the docker command every time you run it, like this: - -
- Linux -
- - ``` - docker run --rm -it -v "/home/YOURUSERNAME/plex-meta-manager:/config:rw" meisnate12/plex-meta-manager - ``` -
- -
- Windows -
- - ``` - docker run --rm -it -v "C:\Users\YOURUSERNAME\plex-meta-manager:/config:rw" meisnate12/plex-meta-manager - ``` -
+````{tab} Linux +
+``` +docker run --rm -it -v "/home/YOURUSERNAME/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager +``` +
+```` +````{tab} OS X: +
+``` +docker run --rm -it -v "/Users/YOURUSERNAME/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager +``` +
+```` +````{tab} Windows: +
+``` +docker run --rm -it -v "C:\Users\YOURUSERNAME\plex-meta-manager\config:/config:rw" meisnate12/plex-meta-manager +``` +
+```` If you run that command now it will display a similar error to before, but without all the image loading: ``` - $ docker run --rm -it -v "/Users/mroche/plex-meta-manager:/config:rw" meisnate12/plex-meta-manager --run + $ docker run --rm -it -v "/Users/mroche/plex-meta-manager/config:/config:rw" meisnate12/plex-meta-manager --run Config Error: config not found at //config ``` Note that I show the example path there. +
+ Why did we create that `config' directory? +
+ + This was done so that from here on in the instructions match between this walkthrough and the [Local walkthrough](local) are the same. + +
+ + +### Create a directory to quiet an error later + +The default config file contains a reference to a directory that will show an error in the output later. That error can safely be ignored, but it causes some confusion with new users from time to time. + +We'll create it here so the error doesn't show up later. + +````{tab} Linux +
+[type this into your terminal] + +``` +mkdir config/assets +``` +
+```` +````{tab} OS X: +
+[type this into your terminal] + +``` +mkdir config/assets +``` +
+```` +````{tab} Windows: +
+[type this into your terminal] + +``` +mkdir config\assets +``` +
+```` + ### Setting up the initial config file -Next you’ll set up the config file. ThIs tells PMM how to connect to Plex and a variety of other services. - -Before you do this you’ll need: - -1. TMDb API key. They’re free. -1. Plex URL and Token - -There are a bunch of other services you *can* configure in the config file, but these two are the bare minimum. - -#### Getting a TMDb API Key - -Note that if you already have an API key, you can use that one. You don’t need another. - -Go to https://www.themoviedb.org/. Log into your account [or create one if you don’t have one already], then go to “Settings” under your account menu. - -In the sidebar menu on the left, select “API”. - -Click to generate a new API key under "Request an API Key". If there is already one there, copy it and go to the next step. - -There will be a form to fill out; the answers are arbitrary. The URL can be your personal website, or probably even google.com or the like. - -Once you’ve done that there should be an API Key available on this screen. - -Copy that value, you’ll need it for the config file. - -#### Getting a Plex URL and Token - -The Plex URL is whatever URL you’d use **from this machine** to connect directly to your Plex server [i.e. NOT app.plex.tv]. - -As with the TMDb API Key, if you already have a Plex Token, you can use that one. - -This article will describe how to get a token: [Finding an authentication token](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/) - +```{include} wt/wt-01.md +``` #### Editing the config template -First, make a copy of the template, then open the copy in an editor: +First, make a copy of the template: -
- OS X/Linux -
+````{tab} Linux +
+Get a copy of the template to edit [type this into your terminal]: +``` +curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template +``` +
+```` +````{tab} OS X: +
+Get a copy of the template to edit [type this into your terminal]: - Get a copy of the template to edit [type this into your terminal]: - ``` - curl -fLvo config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template - ``` +``` +curl -fLvo config/config.yml https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template +``` +```` +````{tab} Windows: +
+Go to [this URL](https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template) using a web browser; choose the "Save" command, then save the file at: - Open it in an editor [type this into your terminal]: - ``` - nano config.yml - ``` +``` +C:\Users\YOURUSERNAME\plex-meta-manager\config\config.yml +``` +
+```` - I’m using `nano` here simply because it’s built into OSX. On Linux you may need to install `nano`, or you can use any other text editor you wish provided it saves files as PLAIN TEXT. -
+Now open the copy in an editor: -
- Windows -
- - Download the file `https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/master/config/config.yml.template` using a web browser or whatever means and save it in this directory as `config.yml` - - [type this into your terminal] - ``` - notepad config.yml - ``` - I’m using `notepad` here simply because it’s built into Windows. You can use any other text editor provided it saves files as PLAIN TEXT. - -
- -From here on in, when I say "open the config file", I mean the `nano` or `notepad` command. You don't want to download the template again. - ---- - -Scroll down a bit and update the three things you just collected; Plex URL, Plex Token, and TMDb API Key. - -```yaml -plex: # Can be individually specified per library as well - url: http://bing.bang.boing <<< ENTER YOUR PLEX URL HERE - token: XXXXXXXXXXXXXXXXXXXX <<< ENTER YOUR PLEX TOKEN HERE - timeout: 60 - clean_bundles: false - empty_trash: false - optimize: false -tmdb: - apikey: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX <<< ENTER YOUR TMDb API KEY HERE - language: en +```{include} wt/wt-editor.md ``` -Now scroll up and look at the top section: - -```yaml -## This file is a template remove the .template to use the file - -libraries: # This is called out once within the config.yml file - Movies: # Each library must match the Plex library name - metadata_path: - - file: config/Movies.yml # This is a local file on the system - - folder: config/Movies/ # This is a local directory on the system - - git: meisnate12/MovieCharts # This is a file within the GitHub Repository - TV Shows: - metadata_path: - - file: config/TVShows.yml - - folder: config/TV Shows/ - - git: meisnate12/ShowCharts # This points to the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository - Anime: - metadata_path: - - file: config/Anime.yml - Music: - metadata_path: - - file: config/Music.yml +```{include} wt/wt-02.md ``` -You will ultimately need an entry here for each of the libraries on which you want PMM to act. Those top-level elements [Movies, TV Shows, Anime, Music] are names of libraries on your Plex server. - -For now, delete the “TV Shows”, “Anime”, and "Music" sections and change the name of the “Movies” section to “Movies-NOSUCHLIBRARY": - -```yaml -libraries: - Movies-NOSUCHLIBRARY: ## <<< CHANGE THIS LINE - metadata_path: - - file: config/Movies.yml - - git: meisnate12/MovieCharts -``` - -This is intended to cause an error. - #### Testing the config file Save the file: -
- OS X/Linux -
- - If you're using `nano`, type control-`x`, then `y`, then the enter key. - -
- -
- Windows -
- - If you're using `notepad`, type alt-`s` or choose `Save` from the `File` menu. - -
+```{include} wt/wt-save.md +``` Then run the script again: -[type this into your terminal] -``` -docker run --rm -it -v "PMM_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager --run +```{include} wt/wt-run-docker.md ``` -I’ve removed some of the lines for space, but have left the important bits: - -``` -... -| Starting Run| -... -| Locating config... -| -| Using /Users/mroche/Plex-Meta-Manager/config/config.yml as config -... -| Connecting to TMDb... -| TMDb Connection Successful -... -| Connecting to Plex Libraries... -... -| Connecting to Movies-NOSUCHLIBRARY Library... | -... -| Plex Error: Plex Library Movies-NOSUCHLIBRARY not found | -| Movies-NOSUCHLIBRARY Library Connection Failed | -|====================================================================================================| -| Plex Error: No Plex libraries were connected to | -... -``` - -You can see there that PMM found its config file, was able to connect to TMDb, was able to connect to Plex, and then failed trying to read the “Movies-NOSUCHLIBRARY library, which of course doesn’t exist. - -Open the config file again and change "Movies-NOSUCHLIBRARY" to reflect your Plex. Then delete any lines that start with “git”. Those are all sets of collections, and we just want to create a few as examples. - -My Movies library is called “Main Movies", so mine looks like this: - -```yaml -libraries: - Main Movies: ## <<< CHANGE THIS LINE - metadata_path: - - file: config/Movies.yml +```{include} wt/wt-03.md ``` Save the file: -
- OS X/Linux -
- - If you're using `nano`, type control-`x`, then `y`, then the enter key. - -
- -
- Windows -
- - If you're using `notepad`, type alt-`s` of choose `Save` from the `File` menu. - -
+```{include} wt/wt-save.md +``` Then run the script again: -[type this into your terminal] -``` -docker run --rm -it -v "PMM_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager --run +```{include} wt/wt-run-docker.md ``` -Now you’ll see some more activity in the Plex connection section: - +```{include} wt/wt-04.md ``` -$ docker run --rm -it -v "/Users/mroche/plex-meta-manager:/config:rw" meisnate12/plex-meta-manager --run -... -| Connecting to Plex Libraries... -... -| Connecting to Main Movies Library... -... -| Loading Metadata File: config/Movies.yml -| -| YAML Error: File Error: File does not exist config/Movies.yml -... -| Metadata File Error: No valid metadata files found -| -| Main Movies Library Connection Failed -... -``` - -PMM may start cataloging your movies at this point; you cna hit control-C to stop that if it's happening. - -We can see there that it connected to the Plex Library but failed to find that `Movies.yml` metadata file. - -So far so good. ### Setting up a metadata file and creating a few sample collections. -Now we have to set up that metadata file that PMM just complained about. - -This metadata file contains definitions of the actions you want PMM to take; these can be things like creating collections or playlists, adding overlays, changing things like posters, etc. You can find lots of examples [here](https://github.com/meisnate12/Plex-Meta-Manager-Configs) and throughout the wiki. - -For now we’re going to create a few collections so you can watch the process work, then you’re on your own to create whatever others you want. - -First, open the metadata file [this will create the file if it doesn't already exist]: - -
- OS X/Linux -
- - [type this into your terminal] - ``` - nano "Movies.yml" - ``` - -
- -
- Windows -
- - [type this into your terminal] - ``` - notepad "Movies.yml" - ``` - -
- -In this file, add the following, exactly as it is shown here: - -```yaml -templates: - Actor: - actor: tmdb - tmdb_person: <> - tmdb_actor_details: <> - sort_title: +_<> - sync_mode: sync - collection_order: release - collection_mode: hide -collections: - Bill Murray: - template: {name: Actor, person: 1532} - Best of the 1980s: - tmdb_discover: - primary_release_date.gte: 01/01/1980 - primary_release_date.lte: 12/31/1989 - with_original_language: en - sort_by: popularity.desc - limit: 100 - summary: A collection of the Top Content of the 1980s - Vulture’s 101 Best Movie Endings: - letterboxd_list: https://letterboxd.com/brianformo/list/vultures-101-best-movie-endings/ +```{include} wt/wt-05.md ``` -I chose a letterboxd list for the last one since trakt requires authentication and again, I didn’t want to complicate this walkthrough. - -This is going to create three collections. One contains movies that feature Bill Murray. One is up to 100 movies that came out in the 1980s sorted by popularity. The last are movies that appear on a list of good endings according to Vulture. - -The first one is based on a template to illustrate that concept. If you wanted to create a collection for another actor you just have to copy and edit those two lines [the ID comes from TMDb]. All the other config details come from the template. - Save the file: -
- OS X/Linux -
- - If you're using `nano`, type control-`x`, then `y`, then the enter key. - -
- -
- Windows -
- - If you're using `notepad`, type alt-`s` of choose `Save` from the `File` menu. - -
+```{include} wt/wt-save.md +``` Then run the script again: -[type this into your terminal] -``` -docker run --rm -it -v "PMM_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager --run +```{include} wt/wt-run-docker.md ``` -This time you should see that the metadata file gets loaded: - +```{include} wt/wt-06.md ``` -| Loading Metadata File: config/Movies.yml -| Metadata File Loaded Successfully -``` - -And this time it will catalog all your movies. This could take a while depending on how many movies are in that library. - -Once this mapping is complete it will move on to build those three collections. - -As it builds the collections, you should see a fair amount of logging about which movies are being added and which ones aren’t found. Once it completes, go to Plex, go to your Movies library, and click “Collections” at the top. - -You should see the three new collections: - -![Finished Collections](finished.png) - -When you click into each, you’ll see the movies that PMM added to each collection. - -Each time you run the script, new movies that match the collection definition will be added. For example, if you don’t have “The Razors’ Edge” now, when you download it and run PMM again it will be added to the Bill Murray collection. - -If you download any of the missing 22 movies on the Vulture list, running PMM would add them to that collection. And so on. - -### What comes next: - -Delete these three collections if you want, from both Plex and the metadata file [`config/Movies.yml`]. - -Edit `Movies.yml` to reflect the actions you want PMM to perform on *your* libraries. - -TV Shows and other libraries work the same way as you've seen above. Create a section under `Libraries:` in the config.yml, create a metadata file, define collections, run the script. - -Investigate the rest of the wiki to learn about everything Plex-Meta-Manager can do for you. ### Running the container in the background: diff --git a/docs/home/guides/local.md b/docs/home/guides/local.md index 106352dc..de4fd8d1 100644 --- a/docs/home/guides/local.md +++ b/docs/home/guides/local.md @@ -19,6 +19,12 @@ The specific steps you will be taking: 1. use `python` to run the script 2. use a text editor to modify a couple of text files until you have a working config file and a single working metadata file. +Note that running a Python script is inherently a pretty technical process. If you are unable or unwilling to learn the rudiments of using tools like python and git, you should probably strongly consider running PMM in [Docker](docker). That will eliminate the Python and git installs from this process and make it as simple as it can be. + +If the idea of editing YAML files by hand is daunting, this may not be the tool for you. All the configuration of PMM is done via YAML text files, so if you are unable or unwilling to learn how those work, you should stop here. + +Finally, this walkthrough is intended to give you a basic grounding in how to get the script running. It doesn't cover how to create your own collections, or how to add overlays, or any of the myriad other things PMM is capable of. It provides a simple "Getting Started" guide for those for whom the standard install instructions make no sense; presumably because you've never run a Python script before. + ## Prerequisites. Nearly anywhere you see @@ -43,28 +49,24 @@ This walkthrough is assuming you are doing the entire process on the same platfo Since most of this is typing commands into a terminal, you'll need to have a terminal open. -
- Linux -
- If your Linux system is remote to your computer, connect to it via SSH. That SSH session is the terminal you will be using, so leave it open. - If you are running this on a desktop Linux machine, start up the Terminal application. That window will be the terminal you will type commands into, so leave it open. -
+````{tab} Linux +
+If your Linux system is remote to your computer, connect to it via SSH. That SSH session is the terminal you will be using, so leave it open. -
- OS X -
- Open the Terminal app; this window will be the place you type commands, so leave it open. THe Terminal app is in Applications -> Utilities. - - You can also use iTerm or some other terminal app if you wish. If you don't know what that is, use Terminal. -
- -
- Windows -
- Use the Start menu to open PowerShell. This will be the window into which you type commands, so leave it open. -
+If you are running this on a desktop Linux machine, start up the Terminal application. That window will be the terminal you will type commands into throughout this walkthrough, so leave it open. +
+```` +````{tab} OS X: +Open the Terminal app; this window will be the place you type commands throughout this walkthrough, so leave it open. The Terminal app is in Applications -> Utilities. +You can also use iTerm or some other terminal app if you wish. If you don't know what that means, use Terminal. +
+```` +````{tab} Windows: +Use the Start menu to open PowerShell. This will be the window into which you type commands throughout this walkthrough, so leave it open. +
+```` ### Installing Python. @@ -78,28 +80,23 @@ python3 --version If this doesn't return `3.7.0` or higher, you'll need to get Python 3 installed. -
- Linux -
- Describing a python install for any arbitrary linux is out of scope here, but if you're using Ubuntu, [this](https://techviewleo.com/how-to-install-python-on-ubuntu-linux/) might be useful. -
+````{tab} Linux +
+Describing a python install for any arbitrary linux is out of scope here, but if you're using Ubuntu, [this](https://techviewleo.com/how-to-install-python-on-ubuntu-linux/) might be useful. +
+```` +````{tab} OS X: +Follow the instructions here: [Installing Python 3 on Mac OS X](https://docs.python-guide.org/starting/install3/osx/) +
+```` +````{tab} Windows: +Go to http://www.python.org/download and download the latest version of Python for Windows in 32 or 64-bit as appropriate for your system [probably 64-bit]. As this is written, that's 3.10.4. -
- OS X -
- Follow the instructions here: [Installing Python 3 on Mac OS X](https://docs.python-guide.org/starting/install3/osx/) -
+Once downloaded, run the installer. Tick “Add to path” checkbox at the bottom and click “Install Now”. -
- Windows -
- Go to http://www.python.org/download and download the latest version of Python for Windows in 32 or 64-bit as appropriate for your system [probably 64-bit]. As this is written, that's 3.10.4. - - Once downloaded, run the installer. Tick “Add to path” checkbox at the bottom and click “Install Now”. - - For Windows 10, you will need to enable scripts in PowerShell. Follow the instructions [here](https://windowsloop.com/enable-powershell-scripts-execution-windows-10) to do so. If you skip this step you're going to hit a hard stop in a little bit. - -
+For Windows 10, you will need to enable scripts in PowerShell. Follow the instructions [here](https://windowsloop.com/enable-powershell-scripts-execution-windows-10) to do so. If you skip this step you're going to hit a hard stop in a little bit. +
+```` --- @@ -115,34 +112,27 @@ git --version If this doesn't return a version number, you'll need to get git installed. -
- Linux -
+````{tab} Linux +
+The git install is discussed here: [Download for Linux and Unix](https://git-scm.com/download/linux) +
+```` +````{tab} OS X: +
+The git install is discussed here: [Git - Downloading Package](https://git-scm.com/download/mac) +
+```` +````{tab} Windows: +
+Download the installer from [here](https://git-scm.com/download/windows) - The git install is discussed here: [Download for Linux and Unix](https://git-scm.com/download/linux) +Run the install; you can probably just accept the defaults and click through except for the step that asks you to choose an editor; you probably want to choose something other than the default there: -
-
- OS X -
+![Git Install](git-install.png) - The git install is discussed here: [Git - Downloading Package](https://git-scm.com/download/mac) - -
- -
- Windows -
- - Download the installer from [here](https://git-scm.com/download/windows) - - Run the install; you can probably just accept the defaults and click through except for the step that asks you to choose an editor; you probably want to choose something other than the default there: - - ![Git Install](git-install.png) - - This install comes with its own command line interface. **Do not use this interface in this walkthrough**. Continue to do everything here in Powershell. - -
+This install comes with its own command line interface. **Do not use this interface in this walkthrough**. Continue to do everything here in Powershell. +
+```` --- @@ -216,49 +206,57 @@ Later on you can move it elsewhere if you want, but for now put it there. This This walkthrough is going to use a "virtual environment", since that provides a simple way to keep the requirements for a given thing self-contained; think of it as a "sandbox" for this script. It also provides a clean way to recover from mistakes, and keeps the host system clean. -
- OS X/Linux -
- [type this into your terminal] +````{tab} Linux +
+[type this into your terminal] - ``` - python3 -m venv pmm-venv - ``` +``` +python3 -m venv pmm-venv +``` - If you see an error like: +If you see an error like: - ``` - Error: Command '['/home/mroche/Plex-Meta-Manager/pmm-venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1. - ``` - You probably need to make sure the Python 3.9-specific virtualenv support library is installed. +``` +Error: Command '['/home/mroche/Plex-Meta-Manager/pmm-venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1. +``` +You probably need to make sure the Python 3.9-specific virtualenv support library is installed: - On Linux [which is the one platform where this was seen at this point]: - [type this into your terminal] +[type this into your terminal] - ``` - sudo apt-get install python3.9-venv - ``` +``` +sudo apt-get install python3.9-venv +``` -
+Then try the original venv command above again. +
+```` +````{tab} OS X: +
+[type this into your terminal] -
- Windows -
+``` +python3 -m venv pmm-venv +``` - [type this into your terminal] +
+```` +````{tab} Windows: +
+[type this into your terminal] - ``` - python -m venv pmm-venv - ``` +``` +python -m venv pmm-venv +``` - If you see: +If you see: - ``` - Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases. - ``` +``` +Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases. +``` - You apparently didn't check the “Add to path” checkbox above under [installing Python](#installing-python). "Repair" your Python install and check "add python to environment variables". -
+You apparently didn't check the “Add to path” checkbox above under [installing Python](#installing-python). "Repair" your Python install and check "add python to environment variables". +
+````
What did that do? @@ -281,43 +279,51 @@ That command will not produce any output if it works; it will display an error i If you aren't looking at an error, you're ready to move on. ---- - That will create the virtual environment, and then you need to activate it: -
- OS X/Linux -
- [type this into your terminal] - ``` - source pmm-venv/bin/activate - ``` -
+````{tab} Linux +
+[type this into your terminal] -
- Windows -
- [type this into your terminal] +``` +source pmm-venv/bin/activate +``` +
+```` +````{tab} OS X: +
+[type this into your terminal] - ``` - .\pmm-venv\Scripts\activate - ``` - If you see something like this: +``` +source pmm-venv/bin/activate +``` +
+```` +````{tab} Windows: +
+[type this into your terminal] + +``` +.\pmm-venv\Scripts\activate +``` +If you see something like this: + +```powershell +.\pmm-venv\Scripts\activate : File C:\Users\mroche\Plex-Meta-Manager\pmm-venv\Scripts\Activate.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink LinkID=135170. +At line:1 char:1 ++ .\pmm-venv\Scripts\activate ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : SecurityError: (:) [], PSSecurityException + + FullyQualifiedErrorId : UnauthorizedAccess +``` - ```powershell - .\pmm-venv\Scripts\activate : File C:\Users\mroche\Plex-Meta-Manager\pmm-venv\Scripts\Activate.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink LinkID=135170. - At line:1 char:1 - + .\pmm-venv\Scripts\activate - + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - + CategoryInfo : SecurityError: (:) [], PSSecurityException - + FullyQualifiedErrorId : UnauthorizedAccess - ``` - You apparently skipped the "enable scripts in Powershell" step above under [installing Python](#installing-python) for Windows. - You will need to take care of that before moving on. Follow the instructions [here](https://windowsloop.com/enable-powershell-scripts-execution-windows-10). +You will need to take care of that before moving on. Follow the instructions [here](https://windowsloop.com/enable-powershell-scripts-execution-windows-10). -
+Once you have done that, try the activation step again. +
+```` That command will not produce any output if it works; it will display an error if a problem occurs. @@ -338,32 +344,37 @@ Note that the prompt now shows the name of the virtual environment. You may not
---- - -An advantage of doing this in a virutal environment is that in the event something goes wrong with this part of the setup, you can delete that pmm-venv directory and do the setup again. +An advantage of doing this in a virtual environment is that in the event something goes wrong with this part of the setup, you can delete that pmm-venv directory and do the setup again. **IMPORTANT: In the future, when you want to run the script, you will need to do this "activation" step every time. Not the venv creation, just the activation**: -
- OS X/Linux -
- [type this into your terminal] +````{tab} Linux +
+[type this into your terminal] - ``` - source pmm-venv/bin/activate - ``` -
+``` +source pmm-venv/bin/activate +``` +
+```` +````{tab} OS X: +
+[type this into your terminal] -
- Windows -
- [type this into your terminal] - - ``` - .\pmm-venv\Scripts\activate - ``` -
+``` +source pmm-venv/bin/activate +``` +
+```` +````{tab} Windows: +
+[type this into your terminal] +``` +.\pmm-venv\Scripts\activate +``` +
+```` ### Installing requirements @@ -402,10 +413,9 @@ Don't worry about the WARNING about `pip version thus-and-such` if it comes up. -Let’s make sure it’s working so far. [type this into your terminal]: +Let’s make sure it’s working so far. -``` -python plex_meta_manager.py -r +```{include} wt/wt-run-shell.md ``` This is going to fail with an error, which you will then fix. @@ -418,331 +428,130 @@ Config Error: config not found at /Users/mroche/Plex-Meta-Manager/config That error means you don’t have a config file, but we at least know that the requirements are in place and the script can run. +### Create a directory to quiet an error later + +The default config file contains a reference to a directory that will show an error in the output later. That error can safely be ignored, but it causes some confusion with new users from time to time. + +We'll create it here so the error doesn't show up later. + +````{tab} Linux +
+[type this into your terminal] + +``` +mkdir config/assets +``` +
+```` +````{tab} OS X: +
+[type this into your terminal] + +``` +mkdir config/assets +``` +
+```` +````{tab} Windows: +
+[type this into your terminal] + +``` +mkdir config\assets +``` +
+```` + ### Setting up the initial config file -Next you’ll set up the config file. ThIs tells PMM how to connect to Plex and a variety of other services. - -Before you do this you’ll need: - -1. TMDb API key. They’re free. -1. Plex URL and Token - -There are a bunch of other services you *can* configure in the config file, but these two are the bare minimum. - -#### Getting a TMDb API Key - -Note that if you already have an API key, you can use that one. You don’t need another. - -Go to https://www.themoviedb.org/. Log into your account [or create one if you don’t have one already], then go to “Settings” under your account menu. - -In the sidebar menu on the left, select “API”. - -Click to generate a new API key under "Request an API Key". If there is already one there, copy it and go to the [next step](#getting-a-plex-url-and-token). - -There will be a form to fill out; the answers are arbitrary. The URL can be your personal website, or probably even google.com or the like. - -Once you’ve done that there should be an API Key available on this screen. - -Copy that value, you’ll need it for the config file. - -#### Getting a Plex URL and Token - -The Plex URL is whatever URL you’d use **from this machine** to connect directly to your Plex server [i.e. NOT app.plex.tv]. - -As with the TMDb API Key, if you already have a Plex Token, you can use that one. - -This article describes how to get a token: [Finding an authentication token](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/) - +```{include} wt/wt-01.md +``` #### Editing the config template First, make a copy of the template. This is going to create a copy of the base template that you can then edit. You only need to do this once. -
- OS X/Linux -
- [type this into your terminal] +````{tab} Linux +
+[type this into your terminal] - ``` - cp config/config.yml.template config/config.yml - ``` -
+``` +cp config/config.yml.template config/config.yml +``` +
+```` +````{tab} OS X: +
+[type this into your terminal] -
- Windows -
- [type this into your terminal] +``` +cp config/config.yml.template config/config.yml +``` +
+```` +````{tab} Windows: +
+[type this into your terminal] - ``` - copy .\config\config.yml.template .\config\config.yml - ``` -
- ---- +``` +copy .\config\config.yml.template .\config\config.yml +``` +
+```` Now open the copy in an editor: -
- OS X/Linux -
- [type this into your terminal] - - ``` - nano config/config.yml - ``` - - I’m using `nano` here simply because it’s built into OSX. On Linux you may need to install `nano`, or you can use any other text editor you wish, provided it saves files as PLAIN TEXT. -
- -
- Windows -
- [type this into your terminal] - - ``` - notepad .\config\config.yml - ``` - I’m using `notepad` here simply because it’s built into Windows. You can use any other text editor you wish, provided it saves files as PLAIN TEXT. - -
- -From here on in, when I say "open the config file", I mean this `nano` or `notepad` command. **Don't copy the template again**. - ---- - -Scroll down a bit and update the three things you just collected; Plex URL, Plex Token, and TMDb API Key. - -```yaml -plex: # Can be individually specified per library as well - url: http://bing.bang.boing <<< ENTER YOUR PLEX URL HERE - token: XXXXXXXXXXXXXXXXXXXX <<< ENTER YOUR PLEX TOKEN HERE - timeout: 60 - clean_bundles: false - empty_trash: false - optimize: false -tmdb: - apikey: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX <<< ENTER YOUR TMDb API KEY HERE - language: en +```{include} wt/wt-editor.md ``` -Now scroll up and look at the top section: - -```yaml -## This file is a template remove the .template to use the file - -libraries: # This is called out once within the config.yml file - Movies: # Each library must match the Plex library name - metadata_path: - - file: config/Movies.yml # This is a local file on the system - - folder: config/Movies/ # This is a local directory on the system - - git: meisnate12/MovieCharts # This is a file within the GitHub Repository - TV Shows: - metadata_path: - - file: config/TVShows.yml - - folder: config/TV Shows/ - - git: meisnate12/ShowCharts # This points to the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository - Anime: - metadata_path: - - file: config/Anime.yml - Music: - metadata_path: - - file: config/Music.yml +```{include} wt/wt-02.md ``` -You will ultimately need an entry here for each of the libraries on which you want PMM to act. Those top-level elements [Movies, TV Shows, Anime, Music] are names of libraries on your Plex server. - -For now, delete the “TV Shows”, “Anime”, and "Music" sections and change the name of the “Movies” section to “Movies-NOSUCHLIBRARY": - -```yaml -libraries: - Movies-NOSUCHLIBRARY: ## <<< CHANGE THIS LINE - metadata_path: - - file: config/Movies.yml - - git: meisnate12/MovieCharts -``` - -This is intended to cause an error for illustration that you will then fix. - #### Testing the config file -Save the file [in nano that would be cntl-x, y, return], then run the script again: +Save the file: -[type this into your terminal] - -```shell -python plex_meta_manager.py -r +```{include} wt/wt-save.md ``` -I’ve removed some of the lines for space, but have left the important bits: +Then run the script again: -``` -... -| Starting Run| -... -| Locating config... -| -| Using /Users/mroche/Plex-Meta-Manager/config/config.yml as config -... -| Connecting to TMDb... -| TMDb Connection Successful -... -| Connecting to Plex Libraries... -... -| Connecting to Movies-NOSUCHLIBRARY Library... -| Plex Error: Plex Library Movies-NOSUCHLIBRARY not found -| Movies-NOSUCHLIBRARY Library Connection Failed -... +```{include} wt/wt-run-docker.md ``` -You can see there that PMM found its config file, was able to connect to TMDb, was able to connect to Plex, and then failed trying to read the “Movies-NOSUCHLIBRARY library, which of course doesn’t exist. - -Open the config file again and change "Movies-NOSUCHLIBRARY" to reflect *your own* Plex. Then delete any lines that start with “git”. Those are all sets of collections, and we just want to create a few as examples. - -My Movies library is called “Main Movies", so mine looks like this: - -```yaml -libraries: - Main Movies: ## <<< CHANGE THIS LINE - metadata_path: - - file: config/Movies.yml +```{include} wt/wt-03.md ``` -Save the file and run the script again: +Save the file: -[type this into your terminal] - -``` -python plex_meta_manager.py -r +```{include} wt/wt-save.md ``` -Now you’ll see some more activity in the Plex connection section: +Then run the script again: -```shell -$ python plex_meta_manager.py -r -... -| Connecting to Plex Libraries... -... -| Connecting to Main Movies Library... -... -| Loading Metadata File: config/Movies.yml -| -| YAML Error: File Error: File does not exist config/Movies.yml -... -| Metadata File Error: No valid metadata files found -| -| Main Movies Library Connection Failed -... +```{include} wt/wt-run-shell.md ``` -PMM may start cataloging your movies at this point; you cna hit control-C to stop that if it's happening. - -We can see there that it connected to the Plex Library but failed to find that `Movies.yml` metadata file. - -So far so good. +```{include} wt/wt-04.md +``` ### Setting up a metadata file and creating a few sample collections. -Now we have to set up that metadata file that PMM just complained about. - -This metadata file contains definitions of the actions you want PMM to take; these can be things like creating collections or playlists, adding overlays, changing things like posters, etc. You can find lots of examples [here](https://github.com/meisnate12/Plex-Meta-Manager-Configs) and throughout the wiki. - -For now we’re going to create a few collections so you can watch the process work, then you’re on your own to create whatever others you want. - -First, open the metadata file [this will create the file if it doesn't already exist]: - -
- OS X/Linux -
- [type this into your terminal] - - ``` - nano "config/Movies.yml" - ``` - -
- -
- Windows -
- [type this into your terminal] - - ``` - notepad "config\Movies.yml" - ``` - -
- -In this file, add the following, exactly as it is shown here: - -```yaml -templates: - Actor: - actor: tmdb - tmdb_person: <> - tmdb_actor_details: <> - sort_title: +_<> - sync_mode: sync - collection_order: release - collection_mode: hide -collections: - Bill Murray: - template: {name: Actor, person: 1532} - Best of the 1980s: - tmdb_discover: - primary_release_date.gte: 01/01/1980 - primary_release_date.lte: 12/31/1989 - with_original_language: en - sort_by: popularity.desc - limit: 100 - summary: A collection of the Top Content of the 1980s - Vulture’s 101 Best Movie Endings: - letterboxd_list: https://letterboxd.com/brianformo/list/vultures-101-best-movie-endings/ +```{include} wt/wt-05.md ``` -I chose a letterboxd list for the last one since trakt requires authentication and again, I didn’t want to complicate this walkthrough. +Save the file: -This is going to create three collections. One contains movies that feature Bill Murray. One is up to 100 movies that came out in the 1980s sorted by popularity. The last are movies that appear on a list of good endings according to Vulture. - -The first one is based on a template to illustrate that concept. If you wanted to create a collection for another actor you just have to copy and edit those two lines [the ID comes from TMDb]. All the other config details come from the template. - -Save the file and run the script again. - -[type this into your terminal] - -``` -python plex_meta_manager.py -r +```{include} wt/wt-save.md ``` -This time you should see that the metadata file gets loaded: +Then run the script again: -``` -| Loading Metadata File: config/Movies.yml -| Metadata File Loaded Successfully +```{include} wt/wt-run-docker.md ``` -And this time it will catalog all your movies. This could take a while depending on how many movies are in that library. Don't cancel it this time. - -Once this cataloging is complete it will move on to build those three collections. - -As it builds the collections, you should see a fair amount of logging showing which movies are being added to each collection and which ones aren’t found. Once it completes, go to Plex, go to your Movies library, and click “Collections” at the top. - -![Finished Collections](finished.png) - -When you click into each, you’ll see the movies that PMM added to each collection. - -Each time you run the script, new movies that match the collection definition will be added. For example, if you don’t have “The Razors’ Edge” now, when you download it and run PMM again it will be added to the Bill Murray collection. - -If you download any of the missing 22 movies on the Vulture list, running PMM would add them to that collection. And so on. - -What comes next: - -Delete these three collections if you want, from both Plex and the metadata file [`config/Movies.yml`]. - -Edit `Movies.yml` to reflect the actions you want PMM to perform on *your* libraries. - -TV Shows and other libraries work the same way as you've seen above. Create a section under `Libraries:` in the config.yml, create a metadata file, define collections, run the script. - -Investigate the rest of the wiki to learn about everything Plex-Meta-Manager can do for you. +```{include} wt/wt-06.md +``` When you are done, deactivate the virtual environment: @@ -756,129 +565,92 @@ deactivate ### I want to update to the latest version of PMM -
- OS X/Linux -
+````{tab} Linux +
+[type this into your terminal] - [type this into your terminal] +``` +cd ~/Plex-Meta-Manager +git pull +source pmm-venv/bin/activate +python -m pip install -r requirements.txt +``` +
+```` +````{tab} OS X: +
+[type this into your terminal] - ``` - cd /Users/mroche/Plex-Meta-Manager - git pull - source pmm-venv/bin/activate - python -m pip install -r requirements.txt - ``` -
+``` +cd ~/Plex-Meta-Manager +git pull +source pmm-venv/bin/activate +python -m pip install -r requirements.txt +``` +
+```` +````{tab} Windows: +
+[type this into your terminal] -
- Windows -
- - [type this into your terminal] - - ``` - cd C:\Users\mroche\Plex-Meta-Manager - git pull - .\pmm-venv\Scripts\activate - python -m pip install -r requirements.txt - ``` -
+``` +cd ~\Plex-Meta-Manager +git pull +.\pmm-venv\Scripts\activate +python -m pip install -r requirements.txt +``` +
+```` ### I want to use the develop branch -
- OS X/Linux -
+````{tab} Linux +
+[type this into your terminal] - [type this into your terminal] +``` +cd ~/Plex-Meta-Manager +git checkout develop +git pull +source pmm-venv/bin/activate +python -m pip install -r requirements.txt +``` +
+```` +````{tab} OS X: +
+[type this into your terminal] - ``` - cd /Users/mroche/Plex-Meta-Manager - git checkout develop - git pull - source pmm-venv/bin/activate - python -m pip install -r requirements.txt - ``` -
+``` +cd ~/Plex-Meta-Manager +git checkout develop +git pull +source pmm-venv/bin/activate +python -m pip install -r requirements.txt +``` +
+```` +````{tab} Windows: +
+[type this into your terminal] -
- Windows -
- - [type this into your terminal] - - ``` - cd C:\Users\mroche\Plex-Meta-Manager - git checkout develop - git pull - .\pmm-venv\Scripts\activate - python -m pip install -r requirements.txt - ``` -
+``` +cd ~/Plex-Meta-Manager +git checkout develop +git pull +.\pmm-venv\Scripts\activate +python -m pip install -r requirements.txt +``` +
+```` ### I want to use the nightly branch -
- OS X/Linux -
- - [type this into your terminal] - - ``` - cd /Users/mroche/Plex-Meta-Manager - git checkout nightly - git pull - source pmm-venv/bin/activate - python -m pip install -r requirements.txt - ``` -
- -
- Windows -
- - [type this into your terminal] - - ``` - cd C:\Users\mroche\Plex-Meta-Manager - git checkout nightly - git pull - .\pmm-venv\Scripts\activate - python -m pip install -r requirements.txt - ``` -
+Follow the instructions for the `develop` branch above, subsituting `nightly` for `develop` ### I want to use the master branch -
- OS X/Linux -
- - [type this into your terminal] - - ``` - cd /Users/mroche/Plex-Meta-Manager - git checkout master - git pull - source pmm-venv/bin/activate - python -m pip install -r requirements.txt - ``` -
- -
- Windows -
- - [type this into your terminal] - - ``` - cd C:\Users\mroche\Plex-Meta-Manager - git checkout master - git pull - .\pmm-venv\Scripts\activate - python -m pip install -r requirements.txt - ``` -
+Follow the instructions for the `develop` branch above, subsituting `master` for `develop` The reinstall of requirements every time is probably overkill, but it's harmless and ensures that you always get any new versions or new requirements. diff --git a/docs/home/guides/wt/wt-01.md b/docs/home/guides/wt/wt-01.md new file mode 100644 index 00000000..a09caf78 --- /dev/null +++ b/docs/home/guides/wt/wt-01.md @@ -0,0 +1,34 @@ +Next you’ll set up the config file. ThIs tells PMM how to connect to Plex and a variety of other services. + +Before you do this you’ll need: + +1. TMDb API key. They’re free. +1. Plex URL and Token + +There are a bunch of other services you *can* configure in the config file, but these two are the bare minimum. + +#### Getting a TMDb API Key + +Note that if you already have an API key, you can use that one. You don’t need another. + +Go to https://www.themoviedb.org/. Log into your account [or create one if you don’t have one already], then go to “Settings” under your account menu. + +In the sidebar menu on the left, select “API”. + +Click to generate a new API key under "Request an API Key". If there is already one there, copy it and go to the next step. + +There will be a form to fill out; the answers are arbitrary. The URL can be your personal website, or probably even google.com or the like. + +Once you’ve done that there should be an API Key available on this screen. + +Copy that value, you’ll need it for the config file. + +#### Getting a Plex URL and Token + +The Plex URL is whatever URL you’d use **from this machine** to connect directly to your Plex server [i.e. NOT app.plex.tv]. + +As with the TMDb API Key, if you already have a Plex Token, you can use that one. + +This article will describe how to get a token: [Finding an authentication token](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/) + + diff --git a/docs/home/guides/wt/wt-02.md b/docs/home/guides/wt/wt-02.md new file mode 100644 index 00000000..575fc52e --- /dev/null +++ b/docs/home/guides/wt/wt-02.md @@ -0,0 +1,73 @@ + +--- + +Scroll down a bit and update the three things you just collected; Plex URL, Plex Token, and TMDb API Key. + +```yaml +plex: # Can be individually specified per library as well + url: http://bing.bang.boing <<< ENTER YOUR PLEX URL HERE + token: XXXXXXXXXXXXXXXXXXXX <<< ENTER YOUR PLEX TOKEN HERE + timeout: 60 + clean_bundles: false + empty_trash: false + optimize: false +tmdb: + apikey: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX <<< ENTER YOUR TMDb API KEY HERE + language: en +``` + +Now scroll up and look at the top section: + +```yaml +## This file is a template remove the .template to use the file + +libraries: # This is called out once within the config.yml file + Movies: # Each library must match the Plex library name + metadata_path: + - file: config/Movies.yml # This is a local file on the system + - folder: config/Movies/ # This is a local directory on the system + - git: PMM/chart/basic # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + - git: PMM/chart/imdb # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + overlay_path: + - remove_overlays: false # Set this to true to remove all overlays + - file: config/Overlays.yml # This is a local file on the system + - git: PMM/overlays/imdb_top_250 # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + TV Shows: + metadata_path: + - file: config/TVShows.yml + - folder: config/TV Shows/ + - git: PMM/chart/basic # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + - git: PMM/chart/imdb # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + overlay_path: + - remove_overlays: false # Set this to true to remove all overlays + - file: config/Overlays.yml # This is a local file on the system + - git: PMM/overlays/imdb_top_250 # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + Anime: + metadata_path: + - file: config/Anime.yml + - git: PMM/chart/basic # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + - git: PMM/chart/anilist # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + Music: + metadata_path: + - file: config/Music.yml +``` + +You will ultimately need an entry here for each of the libraries on which you want PMM to act. Those top-level elements [Movies, TV Shows, Anime, Music] are names of libraries on your Plex server. + +For now, delete the “TV Shows”, “Anime”, and "Music" sections and change the name of the “Movies” section to “Movies-NOSUCHLIBRARY": + +```yaml +libraries: + Movies-NOSUCHLIBRARY: ## <<< CHANGE THIS LINE + metadata_path: + - file: config/Movies.yml # This is a local file on the system + - folder: config/Movies/ # This is a local directory on the system + - git: PMM/chart/basic # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + - git: PMM/chart/imdb # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository + overlay_path: + - remove_overlays: false # Set this to true to remove all overlays + - file: config/Overlays.yml # This is a local file on the system + - git: PMM/overlays/imdb_top_250 # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository +``` + +This is intended to cause an error for illustration that you will then fix. diff --git a/docs/home/guides/wt/wt-03.md b/docs/home/guides/wt/wt-03.md new file mode 100644 index 00000000..2fe05afd --- /dev/null +++ b/docs/home/guides/wt/wt-03.md @@ -0,0 +1,36 @@ +I’ve removed some of the lines for space, but have left the important bits: + +``` +... +| Starting Run| +... +| Locating config... +| +| Using /Users/mroche/Plex-Meta-Manager/config/config.yml as config +... +| Connecting to TMDb... +| TMDb Connection Successful +... +| Connecting to Plex Libraries... +... +| Connecting to Movies-NOSUCHLIBRARY Library... | +... +| Plex Error: Plex Library Movies-NOSUCHLIBRARY not found | +| Movies-NOSUCHLIBRARY Library Connection Failed | +|====================================================================================================| +| Plex Error: No Plex libraries were connected to | +... +``` + +You can see there that PMM found its config file, was able to connect to TMDb, was able to connect to Plex, and then failed trying to read the “Movies-NOSUCHLIBRARY" library, which of course doesn’t exist. + +Open the config file again and change "Movies-NOSUCHLIBRARY" to reflect *your own* Movie library in Plex. Then delete all but the first line under the "metadata_path” heading. A few of them will create sets of collections, and we just want to create a few as examples. + +My Movies library is called “Main Movies", so mine looks like this: + +```yaml +libraries: + Main Movies: ## <<< CHANGE THIS LINE + metadata_path: + - file: config/Movies.yml +``` diff --git a/docs/home/guides/wt/wt-04.md b/docs/home/guides/wt/wt-04.md new file mode 100644 index 00000000..a6668ff6 --- /dev/null +++ b/docs/home/guides/wt/wt-04.md @@ -0,0 +1,24 @@ +Now you’ll see some more activity in the Plex connection section: + +``` +$ docker run --rm -it -v "/Users/mroche/plex-meta-manager:/config:rw" meisnate12/plex-meta-manager --run +... +| Connecting to Plex Libraries... +... +| Connecting to Main Movies Library... +... +| Loading Metadata File: config/Movies.yml +| +| YAML Error: File Error: File does not exist config/Movies.yml +... +| Metadata File Error: No valid metadata files found +| +| Main Movies Library Connection Failed +... +``` + +PMM may start cataloging your movies at this point; you cna hit control-C to stop that if it's happening. + +We can see there that it connected to the Plex Library but failed to find that `Movies.yml` metadata file. + +So far so good. diff --git a/docs/home/guides/wt/wt-05.md b/docs/home/guides/wt/wt-05.md new file mode 100644 index 00000000..2c12c7c9 --- /dev/null +++ b/docs/home/guides/wt/wt-05.md @@ -0,0 +1,69 @@ +Now we have to set up that metadata file that PMM just complained about. + +This metadata file contains definitions of the actions you want PMM to take; these can be things like creating collections or playlists, adding overlays, changing things like posters, etc. You can find lots of examples [here](https://github.com/meisnate12/Plex-Meta-Manager-Configs) and throughout the wiki. + +For now we’re going to create a few collections so you can watch the process work, then you’re on your own to create whatever others you want. + +First, open the metadata file [this will create the file if it doesn't already exist]: + +````{tab} Linux +
+[type this into your terminal] + +``` +nano "config/Movies.yml" +``` +
+```` +````{tab} OS X: +
+[type this into your terminal] + +``` +nano "config/Movies.yml" +``` +
+```` +````{tab} Windows: +
+[type this into your terminal] + +``` +notepad "config\Movies.yml" +``` +
+```` + +In this file, add the following, exactly as it is shown here: + +```yaml +templates: + Actor: + actor: tmdb + tmdb_person: <> + tmdb_actor_details: <> + sort_title: +_<> + sync_mode: sync + collection_order: release + collection_mode: hide +collections: + Bill Murray: + template: {name: Actor, person: 1532} + Best of the 1980s: + tmdb_discover: + primary_release_date.gte: 01/01/1980 + primary_release_date.lte: 12/31/1989 + with_original_language: en + sort_by: popularity.desc + limit: 100 + summary: A collection of the Top Content of the 1980s + Vulture’s 101 Best Movie Endings: + letterboxd_list: https://letterboxd.com/brianformo/list/vultures-101-best-movie-endings/ +``` + +I chose a letterboxd list for the last one since trakt requires authentication and again, I didn’t want to complicate this walkthrough. + +This is going to create three collections. One contains movies that feature Bill Murray. One is up to 100 movies that came out in the 1980s sorted by popularity. The last are movies that appear on a list of good endings according to Vulture. + +The first one is based on a template to illustrate that concept. If you wanted to create a collection for another actor you just have to copy and edit those two lines [the ID comes from TMDb]. All the other config details come from the template. + diff --git a/docs/home/guides/wt/wt-06.md b/docs/home/guides/wt/wt-06.md new file mode 100644 index 00000000..75d5503d --- /dev/null +++ b/docs/home/guides/wt/wt-06.md @@ -0,0 +1,32 @@ +This time you should see that the metadata file gets loaded: + +``` +| Loading Metadata File: config/Movies.yml +| Metadata File Loaded Successfully +``` + +And this time it will catalog all your movies. This could take a while depending on how many movies are in that library. + +Once this mapping is complete it will move on to build those three collections. + +As it builds the collections, you should see a fair amount of logging about which movies are being added and which ones aren’t found. Once it completes, go to Plex, go to your Movies library, and click “Collections” at the top. + +You should see the three new collections: + +![Finished Collections](finished.png) + +When you click into each, you’ll see the movies that PMM added to each collection. + +Each time you run the script, new movies that match the collection definition will be added. For example, if you don’t have “The Razors’ Edge” now, when you download it and run PMM again it will be added to the Bill Murray collection. + +If you download any of the missing 22 movies on the Vulture list, running PMM would add them to that collection. And so on. + +### What comes next: + +Delete these three collections if you want, from both Plex and the metadata file [`config/Movies.yml`]. + +Edit `Movies.yml` to reflect the actions you want PMM to perform on *your* libraries. + +TV Shows and other libraries work the same way as you've seen above. Create a section under `Libraries:` in the config.yml, create a metadata file, define collections, run the script. + +Investigate the rest of the wiki to learn about everything Plex-Meta-Manager can do for you. diff --git a/docs/home/guides/wt/wt-editor.md b/docs/home/guides/wt/wt-editor.md new file mode 100644 index 00000000..ea91710c --- /dev/null +++ b/docs/home/guides/wt/wt-editor.md @@ -0,0 +1,53 @@ +````{tab} Linux +
+[type this into your terminal] + +``` +nano config/config.yml +``` + +I’m using `nano` here mostly because it’s simpler than any other editor on Linux. + +If you see something like: +```bash + $ nano config/config.yml +zsh: command not found: nano +``` + +You need to install `nano`, which you would do with: + +[type this into your terminal] + +``` +sudo apt install nano +``` + +You can use any other text editor you wish, provided it saves files as PLAIN TEXT. `vi`, `emacs`, etc. +
+```` +````{tab} OS X: +
+[type this into your terminal] + +``` +nano config/config.yml +``` + +I’m using `nano` here simply because it’s built into OSX. You can use any other text editor you wish, provided it saves files as PLAIN TEXT. BBedit, TextMate, VSCode, etc. + +A common mistake is using TextEdit.app, which saves files as RTF by default. +
+```` +````{tab} Windows: +
+[type this into your terminal] + +``` +notepad .\config\config.yml +``` +I’m using `notepad` here simply because it’s built into Windows. You can use any other text editor you wish, provided it saves files as PLAIN TEXT. +
+```` + +From here on in, when this walkthrough says "open the config file", I mean this `nano` or `notepad` command. **Don't copy the template again**. +x \ No newline at end of file diff --git a/docs/home/guides/wt/wt-run-docker.md b/docs/home/guides/wt/wt-run-docker.md new file mode 100644 index 00000000..688882fb --- /dev/null +++ b/docs/home/guides/wt/wt-run-docker.md @@ -0,0 +1,5 @@ +[type this into your terminal] + +``` +docker run --rm -it -v "PMM_PATH_GOES_HERE:/config:rw" meisnate12/plex-meta-manager --run +``` diff --git a/docs/home/guides/wt/wt-run-shell.md b/docs/home/guides/wt/wt-run-shell.md new file mode 100644 index 00000000..766cf152 --- /dev/null +++ b/docs/home/guides/wt/wt-run-shell.md @@ -0,0 +1,5 @@ +[type this into your terminal] + +```shell +python plex_meta_manager.py -r +``` diff --git a/docs/home/guides/wt/wt-save.md b/docs/home/guides/wt/wt-save.md new file mode 100644 index 00000000..a3f847c9 --- /dev/null +++ b/docs/home/guides/wt/wt-save.md @@ -0,0 +1,14 @@ +````{tab} Linux +
+If you're using `nano`, type control-`x`, then `y`, then the enter key. +
+```` +````{tab} OS X: +
+If you're using `nano`, type control-`x`, then `y`, then the enter key.
+```` +````{tab} Windows: +
+If you're using `notepad`, type alt-`s` or choose `Save` from the `File` menu. +
+````