TitleCardMaker

TitleCardMaker

Docker app from CollinHeist's Repository

Overview

TitleCardMaker Automated title card maker for Plex, Emby, and Jellyfin. Setup instructions are hosted on GitHub: https://github.com/CollinHeist/TitleCardMaker/wiki/Docker-Tutorial

logo TitleCardMaker

Docker Pulls GitHub Develop Commits Discord Support

An automated title card maker for the Plex, Jellyfin, and Emby media servers. All user documentation is available on the Wiki.

[!IMPORTANT] Version 2.0 - the Web UI - has officially entered pre-release, and is currently available for project Sponsors.

Web UI

More details are located at titlecardmaker.com - this README (and the Wiki documentation) are primarily geared towards the non-UI (v1).

Table of Contents

Description

TitleCardMaker is a program and Docker container written in Python that automates the creation of customized title cards (which are image previews of an episode of TV) for use in personal media server services like Plex, Jellyfin, or Emby.

TitleCardMaker can be automated such that everything can be done without manual intervention. All your series can be read from your media server or Sonarr; episode data can be pulled from Sonarr, your media server, or TheMovieDatabase; images from TheMovieDatabase, or your media server; and TitleCardMaker can even utilize an episode's watch status to create "spoiler free" versions of title cards automatically, as shown below:

card unblurring process

All configuration/automation of the TitleCardMaker is done via YAML files, and the actual image creation is done using the open-source and free image library called ImageMagick.

Getting Started

[!NOTE] The Wiki has very extensive documentation on every feature and customization available in TitleCardMaker. I highly recommend looking here as the first step when troubleshooting or customizing your setup. The Discord is also a great place to get detailed help.

Read the Getting Started page on the Wiki for the traditional install, or the Getting Started on Docker page to install using Docker.

If you're using Unraid, there is a template available for easy setup - just search titlecardmaker on the Unraid Community Apps store.

Usage and Troubleshooting

Assuming you're using the default preference filename, invoking the Maker is as simple as:

pipenv run python main.py --run

For invocation and configuration details, read here.

[!TIP] If you have trouble getting the Maker working, or have a problem, create an issue on GitHub, or join the Discord for help.

Examples

Below are examples of almost all the types of title card that can be created automatically by TitleCardMaker:

Built-in Card Types

Anime Banner Calligraphy Comic Book Cutout Divider Fade Formula1 Frame Graph Inset Landscape Logo Marvel Music Notification Olivier Overline Poster Roman Standard Striped Shape Star Wars tinted Frame Tinted Glass White Border

The above cards are, in order, the anime, banner, calligraphy, comic book, cutout, divider, fade, formula 1, frame, graph, inset, landscape, logo, marvel, music, notification, olivier, overline, poster, roman, standard, striped, shape, star wars, tinted frame, tinted glass, and the white border title cards.

User-Created Card Types

The TitleCardMaker can also use user-created and maintained card types hosted on the companion GitHub, an example of each type is shown below:

The above cards are, in order, Yozora/BarebonesTitleCard, Beedman/GradientLogoTitleCard, Yozora/RetroTitleCard, Yozora/SlimTitleCard, Wdvh/StarWarsTitleOnly, Wdvh/WhiteTextAbsolute, lyonza/WhiteTextBroadcast, Wdvh/WhiteTextStandard, Wdvh/WhiteTextTitleOnly, azuravian/TitleColorMatch, and KHthe8th/TintedFramePlusTitleCard

Other Features

In addition to title card creation and management, the TitleCardMaker can also be used for other image-creation functionality. For example, the mini maker - a.k.a. mini_maker.py - can be used to "manually" create collection posters, genre cards, movie posters, show summaries, and season posters. An example of each is shown below:

Example Collection Poster Example Genre Card Example Movie Poster Example Genre Card Example Genre Card

This is largely done via the command-line, and is described on the wiki here.

Contributing

If you'd like to contribute - whether that's a suggested feature, a bug fix, or anything else - please do so on GitHub by creating an issue, or join the Discord. The best way for me to manage technical aspects of the project is on GitHub.

Support

This has taken a pretty substantial amount of effort, so if you find this project useful you can support me on BuyMeACoffee, or become a GitHub sponsor - I would really appreciate it!

A huge thank you to my current and past sponsors.

Media gallery

1 / 10

Install TitleCardMaker on Unraid in a few clicks.

Find TitleCardMaker in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for TitleCardMaker Review the template variables and paths Click Install

Download Statistics

107,588
Total Downloads
1,742
This Month
2,291
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Explore more like this

Explore all

Details

Repository
collinheist/titlecardmaker:latest
Last Updated2026-06-05
First Seen2022-06-13

Runtime arguments

Network
host
Shell
sh
Privileged
false

Template configuration

Configuration PathPathrw

Directory to contain all configuration files

Target
/config
Default
/mnt/user/appdata/TitleCardMaker/config
RuntimeVariable

Start time for TitleCardMaker's scheduled operation. Container Variable: TCM_RUNTIME / --runtime

Target
TCM_RUNTIME
Default
22:00
Run FrequencyVariable

How often to run TitleCardMaker. Container Variable: TCM_FREQUENCY / --frequency

Target
TCM_FREQUENCY
Default
12h
Archive DirectoryPathrw

Directory to contain archives of title cards

Target
/archive
Default
/mnt/user/appdata/TitleCardMaker/archive
Log DirectoryPathrw

Directory to contain all log files

Target
/maker/logs
Default
/mnt/user/appdata/TitleCardMaker/logs
Group IDVariable

Container Group ID (PGID)

Target
PGID
Default
99
User IDVariable

Container User ID (PUID)

Target
PUID
Default
100
UMASKVariable

File creation mode mask

Default
002
Missing FileVariable

Container filepath to write all missing assets to. Container Variable: TCM_MISSING / --missing

Target
TCM_MISSING
Default
/config/missing.yml
Tautulli DirectoryPathrw

Directory containing the Tautulli update file

Target
/tautulli
Default
/mnt/user/appdata/tautulli
Tautulli Update ListVariable

Container filepath to monitor for Tautulli integration. Container Variable: TCM_TAUTULLI_UPDATE_LIST / --tautulli-update-list

Target
TCM_TAUTULLI_UPDATE_LIST
Default
/tautulli/update.txt
Tautulli Update FrequencyVariable

How often to check for the Tautulli update file. Container Variable: TCM_TAUTULLI_UPDATE_FREQUENCY / --tautulli-update-frequency

Target
TCM_TAUTULLI_UPDATE_FREQUENCY
Default
4m
Output Log LevelVariable

Log level for all messages. Container Variable: TCM_LOG / --log

Target
TCM_LOG
Default
INFO