Skip to content
This repository has been archived by the owner on Aug 25, 2023. It is now read-only.

EthanC/Projectionist

Repository files navigation

Projectionist

GitHub Workflow Status Docker Pulls Docker Image Size (tag)

Projectionist receives Plex webhooks and reports events via Discord.

Setup

Although not required, a Discord Webhook is recommended for notifications.

Environment Variables:

  • LOG_LEVEL: Loguru severity level to write to the console.
  • LOG_DISCORD_WEBHOOK_URL: Discord Webhook URL to receive log events.
  • LOG_DISCORD_WEBHOOK_LEVEL: Minimum Loguru severity level to forward to Discord.
  • PROJECTIONIST_PORT: HTTP port to bind the Projectionist API to. Default is 8000.
  • PLEX_EVENT_MEDIAPLAY: Boolean toggle for the media.play Plex event. Default is False.
  • TMDB_API_KEY: API Key for The Movie Database (TMDB), required to enable media thumbnails.
  • DISCORD_WEBHOOK_URL: Discord Webhook URL to receive Plex event notifications.

Docker (Recommended)

Modify the following docker-compose.yml example file, then run docker compose up.

version: "3"
services:
  projectionist:
    container_name: projectionist
    image: ethanchrisp/projectionist:latest
    environment:
      LOG_LEVEL: INFO
      LOG_DISCORD_WEBHOOK_URL: https://discord.com/api/webhooks/YYYYYYYY/YYYYYYYY
      LOG_DISCORD_WEBHOOK_LEVEL: WARNING
      PROJECTIONIST_PORT: 8000
      PLEX_EVENT_MEDIAPLAY: true
      TMDB_API_KEY: XXXXXXXX
      DISCORD_WEBHOOK_URL: https://discord.com/api/webhooks/XXXXXXXX/XXXXXXXX
    restart: unless-stopped

Standalone

Projectionist is built for Python 3.11 or greater.

  1. Install required dependencies using Poetry: poetry install
  2. Rename .env.example to .env, then provide the environment variables.
  3. Start Projectionist: python projectionist.py

Plex

Notice: Webhook functionality is exclusive to Plex Pass subscribers.

  1. In Plex, open Settings, then select Webhooks.
  2. Add a Webhook and enter the URL that points to your instance of Projectionist.