Forty source thumbnails, from the list you already have.
Paste the patch list, give each source an icon, a size and a colour, and download a ZIP with one labelled thumbnail per source, named after it and ready to load onto an Eventmaster or an RCS2.
Everything is drawn in the page and downloaded from it, and no list of yours is uploaded. The batch is kept in local storage on your own machine, because a source list is the shape of somebody's unannounced show.
One card at 1920 × 1080: a radial gradient in the source’s colour, the icon knocked out of it, and the name underneath. The dimension label and the footer are both optional.
What it makes
01
A list in, a folder out
The point of it
Paste a column straight out of a patch sheet (one per line or comma-separated) and every line becomes a card. The label on the card and the name of the file are the same string, so a thumbnail is identifiable from the filename alone, and the ZIP carries a manifest.csv matching file to source, size and colour.
02
Nineteen icons, drawn to be filled
Camera, video camera, projector, monitor, laptop, desktop, tablet, phone, USB stick, drive, playback, clip, slides, microphone, speaker, server, network, web, or none. They're drawn as solid silhouettes rather than borrowed from an icon set, because icon sets are drawn as 24px strokes and turn to mush when filled at 250.
03
Whatever raster the frame wants
1080p by default, and per source you can override it with a preset, an exact pixel size, or an aspect ratio and a long edge. The layout scales on height rather than being letterboxed into a 16:9 box, so a portrait card or a 2056 × 1329 one is laid out properly instead of painting a small landscape island in the middle.
04
A colour per source, without picking forty
Leave the automatic palette on and each source takes a hue from its position, stepped by the golden angle so the ninth isn't a near-repeat of the first. Every card is one base colour turned into a light centre and a dark edge by formula, so there's no table of colours to get one wrong in. Override any of them by hand.
What to check before a show
01
It has never been loaded onto a real frame
PNG is a reasonable assumption about what an Eventmaster and an RCS2 accept, not a measurement, and the size presets are generic rather than taken from either vendor's documentation. Try one card before you commit to a batch of forty. If the kit turns out to want something else, adding a format is a contained change.
02
A gradient PNG is about 25 times a JPEG
A 2056 × 1329 card comes out at roughly 2.5 MB as a PNG and 93 KB as a JPEG, because browsers dither smooth gradients, which leaves PNG's compression nothing to work with. Forty-eight sources is around 100 MB. The export tells you the archive size, and switching the gradient off brings PNG down to a few kilobytes.
03
Two sources called the same thing become two files
A rig routinely has two inputs called "Laptop", and a ZIP with duplicate names extracts to one file with the last one winning, quietly losing a card. Names are made unique before packing, and the row shows you the filename it'll actually get.
04
Turn on safe filenames when the target is a frame rather than a computer
Spaces and accented letters are fine on a desktop and aren't always fine on embedded kit. The option folds everything to ASCII with underscores for spaces, and trailing dots are stripped either way because Windows discards them when it creates the file, which would collide two cards after extraction, past the point anything could catch it.
Run your own copy
Thumbnail Generator is also published as a Docker image, ghcr.io/stoatworks-labs/thumbnail-generator, serving the same files as the hosted copy. On a laptop or a box in the rack it keeps working when the venue's internet doesn't.
Docker
docker run -d --name thumbnail-generator --restart unless-stopped -p 8528:80 ghcr.io/stoatworks-labs/thumbnail-generator:latest
Then it's at http://localhost:8528/. The repo's docker-compose.yml does the same with docker compose up -d.
Unraid
Search Community Applications for thumbnail-generator and install it. The template sets the port to 8528 for you.