# Plex-Bot [![Codacy Badge](https://api.codacy.com/project/badge/Grade/c93b8ff976ce4205a95046487917476b)](https://app.codacy.com/manual/jarulsamy/Plex-Bot?utm_source=github.com&utm_medium=referral&utm_content=jarulsamy/Plex-Bot&utm_campaign=Badge_Grade_Dashboard) [![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](http://perso.crans.org/besson/LICENSE.html) ![docker pulls](https://img.shields.io/docker/pulls/jarulsamy/plex-bot) ![docker img size](https://img.shields.io/docker/image-size/jarulsamy/plex-bot) ![black badge](https://img.shields.io/badge/code%20style-black-000000.svg) A Python-based Plex music bot for discord. ![screenshot](assets/screenshot.png) ## Setup Plex-Bot runs entirely in a Docker container. Ensure you have Docker and docker-compose installed according to the official Docker [documentation](https://docs.docker.com/get-docker/). 1. Create a new folder and `cd` into it: ```bash mkdir Plex-Bot cd Plex-Bot ``` 2. Make a `docker-compose.yml` file or use this sample: ```yml version: "3" services: plex-bot: container_name: "PlexBot" image: jarulsamy/plex-bot:latest environment: - PUID=1000 - PGID=1000 - TZ=America/Denver # Required dir for configuration files volumes: - "./config:/config:ro" restart: "unless-stopped" ``` 3. Create a new `config` folder and create a config file like this:: ```bash mkdir config cd config touch config.yaml ``` ```yml # Create a file called config.yaml with the following contents root: log_level: "info" discord: prefix: "?" token: "" log_level: "debug" plex: base_url: "" token: "" library_name: "" log_level: "debug" ``` 4. Create a Discord bot application: 1. Go to the Discord developer portal, [here](https://discord.com/developers/applications). 2. Log in or create an account 3. Click New App 4. Fill in App Name and anything else you'd like to include 5. Click Create App This will provide you with your Client ID and Client Secret 6. Click Create Bot User This will provide you with your bot Username and Token 7. Fill in the bot token in `config/config.yaml` 5. Get your plex token: * Refer to the official [plex documentation](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/). * Add it to `config/config.yaml` in the appropiate spot. 6. Customize remaining settings Set any remaining settings in the config file that you would like. Such as music library, and base url of the Plex server. 7. Start the service: ```bash docker-compose up -d ``` ## Logs You can view the logs with the following command ```bash docker-compose logs -f CONTAINER_NAME_OR_ID # For example docker-compose logs -f PlexBot ``` ## Usage ```text General: kill - Stop the bot. Plex: np - View currently playing song. pause - Pause currently playing song. play - Play a song from the Plex library. resume - Resume a paused song. skip - Skip a song. stop - Stop playing. ​No Category: help Shows this message Type ?help command for more info on a command. You can also type ?help category for more info on a category. ``` * * *