Tauticord is compatible with the following versions of Tautulli:
- v2.14.x
- A Plex Media Server
- Tautulli (formerly known as PlexPy)
- A Discord server
- Docker
- A Discord bot token
-
Permissions required:
SHORTCUT: Discord occasionally changes the name of some permissions, so the screenshot above may be outdated. However, the final "Permissions Integer" won't change; you can use the following link to invite your bot to your server with the correct permissions: https://discord.com/oauth2/authorize?client_id=YOUR_APPLICATION_ID&scope=bot&permissions=3222350928
- You will also need to enable "Message Content Intent" in the bot settings in the Discord Developer Portal to allow slash commands to work. This is required regardless of whether you have slash commands enabled.
-
Tauticord runs as a Docker container. The Dockerfile is included in this repository, or can be pulled from Docker Hub or GitHub Packages.
You will need to map the following volumes:
Host Path | Container Path | Reason |
---|---|---|
/path/to/logs/folder | /logs | Required, debug log file for bot will be generated here |
/path/to/config/folder | /config | Optional, path to the folder containing the configuration file |
/path/to/monitored/folder | /monitor | Optional, path to a folder to monitor for disk usage statistics (e.g. your Plex library) |
- Map the
/config
directory (see volumes above) - Enter the mapped directory on your host machine
- Rename the
tauticord.yaml.example
file in the path totauticord.yaml
- Complete the variables in
tauticord.yaml
The example configuration file is commented to help you understand what each variable does. All variables are required, so please complete the file in its entirety.
If you are using an IDE with support for YAML validation or JSON Schema Store, the file should automatically import and begin validating against the schema. Hovering over elements in the configuration file should provide additional documentation. The schema is available here.
- Discord:
- Slash Commands require the
Message Content Intent
to be enabled in the Discord Developer Portal.
- Slash Commands require the
- Stats (Voice Channels)
- Extras
With Docker installed, run the following command to start Tauticord:
docker run -d \
--name tauticord \
-v /path/to/logs/folder:/logs \
-v /path/to/config/folder:/config \
nwithan8/tauticord:latest
Using Docker Compose:
docker-compose -f /path/to/your/docker-compose.yml up -d
Tauticord only runs as a Docker container. No other methods of running Tauticord are officially supported.
Tauticord currently offers three different types of statistics to display in voice channels:
All statistic voice channels have the following customization options:
- Enable/Disable the voice channel (if disabled, Tauticord will not create/update the channel)
- Custom name (overrides the default name for the statistic)
- Custom emoji (overrides the default emoji for the statistic)
- Voice channel ID specification (rather than letting Tauticord auto-generate the channel)
Activity statistics are about live activity taking place on the Plex server. This includes:
- Current stream count
- Current transcode count
- Current local bandwidth
- Current remote bandwidth
- Current total bandwidth
- Plex Server availability
Activity statistics can be enabled/disabled wholesale, or on an individual channel basis.
Activity statistics update at the same rate as the summary message (with a minimum of 5 seconds between updates).
Library statistics are about the media stored on the Plex server. This includes (per library):
- Total movie count
- Total show/series count
- Total episode count
- Total music artist count
- Total album count
- Total song/track count
Only metrics relevant to the library type will be displayed. For example, a music library will not display a movie count, and a movie library will not display an album count.
Library statistics can be enabled/disabled wholesale, or on an individual channel basis.
To display library statistics, you must specify the libraries you want to display in the Libraries
section of the
tauticord.yaml
file.
Libraries:
# List of libraries to display statistics for
- Name: Audiobooks # The name of the library in Plex
AlternateName: My Audiobooks # The name to display in the statistics voice channels
Albums: # Settings for the "Albums" statistic
CustomName: 'Books' # Custom name to use for the statistic
CustomEmoji: '📻' # Custom emoji to use for the statistic
Enable: true
VoiceChannelID: 0 # The ID of the voice channel to update (0 for auto-management)
Artists: # Settings for the "Artists" statistic
...
Episodes: # Settings for the "Episodes" statistic
...
Movies: # Settings for the "Movies" statistic
...
Series: # Settings for the "Series" statistic
...
Tracks: # Settings for the "Tracks" statistic
...
- Name: Movies
AlternateName: My Movies
Albums:
...
Artists:
...
Episodes:
...
Movies:
...
Series:
...
Tracks:
...
Library data updates at a configurable interval (with a minimum of 5 minutes between updates).
You can optionally combine multiple Plex libraries into one for display in the voice channel. This is useful if you have multiple "movies" libraries, for example, and you want to display them all as one in terms of statistics.
To do this, you must specify the libraries you want to combine in the CombinedLibraries
section of
the tauticord.yaml
file.
CombinedLibraries:
# List of combined libraries to display statistics for
- Name: My Combined Movies # The name of the combined library
Libraries: # List of libraries to combine
- Movies
- Movies (4K)
- Movies (Foreign)
Albums:
...
Artists:
...
Episodes:
...
Movies:
...
Series:
...
Tracks:
...
Combined library data updates at the same interval as regular library data (with a minimum of 5 minutes between updates).
Performance monitoring will report metrics such as:
- CPU usage (requires Plex Pass)
- RAM usage (requires Plex Pass)
- Disk space usage
- Plex user count
Performance monitoring can be enabled/disabled wholesale, or on an individual channel basis.
Tauticord will attempt to query the system it is running on for these metrics every 5 minutes (non-configurable).
Tautulli does not currently offer a way to query Plex Media Server performance statistics from its API. Instead, Tauticord establishes a connection directly to the Plex Media Server to collect this information.
In order to establish a connection to the Plex Media Server, Tauticord attempts to retrieve a Plex token stored in Tautulli's database. In order to retrieve this token, SQL queries must be enabled for Tautulli's API.
To enable SQL queries in Tautulli, you must set api_sql = 1
in Tautulli's config.ini
file while Tautulli is not
running.
If Tauticord is unable to retrieve this token and establish a connection to the Plex Media Server, metrics will instead report "N/A".
Please be aware of the potential risks of allowing raw SQL queries to be run directly on your Tautulli database via the
API. If you do not intend on using the performance monitoring feature, it is recommended to keep SQL queries
disabled (api_sql = 0
in Tautulli's config.ini
file).
Tauticord's CPU and RAM monitoring features will directly communicate with the Plex Media Server to retrieve statistics. CPU and RAM usage statistics is a Plex Pass feature; as a result, this requires a Plex Pass subscription to work.
Tauticord will automatically determine if the Plex Media Server has a Plex Pass subscription. If this feature is enabled in the configuration file, but the Plex Media Server does not have a Plex Pass subscription, Tauticord will ignore the configuration settings and log a warning.
Tauticord's disk space monitoring feature will analyze the used and total space of the provided folder (default: The
path mounted to /monitor
inside the Docker container). This feature can be used, for example, to monitor the disk
space of your Plex library, as long as the path to the library is mounted to /monitor
. This will not work if Tauticord
is running on a separate system from the Plex library.
Out of the box, Tauticord does mostly passive, non-interactive things (posting messages, updating voice channels, etc.).
However, Tauticord also has a few commands that can be used to interact with it, via Discord's slash commands. Below is a non-exhaustive list of commands that Tauticord supports:
Any user can use this command.
Displays the most recently added media to the Plex server.
This command and its variants are locked to administrators only.
Displays the most popular movies on the Plex server. This is similar to the "Most X" sections on the Tautulli homepage.
Variants:
/most popular-movies
/most popular-shows
/most popular-artists
/most watched-movies
/most watched-shows
/most played-artists
/most active-users
/most active-platforms
/most active-libraries
This command is locked to administrators only.
Display graphs for Tautulli play count/duration statistics. This is similar to the "Graphs" section on the Tautulli homepage.
Variants:
/graphs play-count-daily
/graphs play-count-day-of-week
/graphs play-count-hour-of-day
/graphs play-count-platforms
/graphs play-count-users
/graphs play-duration-daily
/graphs play-duration-day-of-week
/graphs play-duration-hour-of-day
/graphs play-duration-platforms
/graphs play-duration-users
You can optionally provide a username
argument to the command to filter statistics to only a specific user.
This command is locked to administrators only.
Displays a summary of the current Tautulli statistics. This is the exact same summary that Tauticord automatically posts.
All slash command responses are ephemeral (only visible to the user who triggered it) by default. Most slash commands,
however, have a share
option that can be used to make the response visible to everyone in the channel.
- On startup, Tauticord attempts to upload a set of custom emojis that it will use when displaying stream information (
if they do not already exist). Your bot will need to have the
Manage Emojis
permission in order to do this.- Discord has a limit of 50 custom emojis per server. If you have reached this limit, you will need to remove some of your existing emojis before Tauticord can upload its own.
- If you do not want to remove any of your existing emojis, Tauticord will simply skip uploading its own emojis and use the default emojis that Discord provides instead.
Tauticord uses Google Analytics to collect statistics such as common errors that will help with future development. This data is limited, anonymous, and never sold or redistributed.
When and what data is collected?
- Whenever the bot comes online
- What operating system the bot is running on (Windows, Linux, MacOS, etc.)
- Whenever an error is logged
- What function the error occurred in.
What data is NOT collected:
- Any identifying information about the user
- Any identifying information about the computer/machine (a random ID is generated on each analytics call, IP addresses are anonymized)
- Settings for Discord or Tautulli, including passwords, API tokens, URLs, etc.
- Any data from Tautulli
- Anything typed in Discord.