Save your channel design as a template, then send the next episode's title and label as data. thirds.ai makes a JPEG with the same layout, and each successful image costs one credit. This recipe uses the gallery's 1280 × 720 YouTube thumbnail and a Python script that checks the finished file before you upload it.
Where can I find a free template for YouTube thumbnail images?
Open the YouTube thumbnail and choose Open in editor. Copying the design and changing its fields are free. A verified account gets 50 monthly credits for exports; see pricing for the full terms. Replace the fictional channel name and example photo with your own content before you publish a real thumbnail.

The picture is the gallery sample. The recipe below changes its text, so its result differs. Read the template HTML and sample data to see the exact layout.
| Field | What changes | Text limit |
|---|---|---|
channel | Your channel name | 40 characters |
tag | The episode label | 30 characters |
headline | The main title | 70 characters |
badge | A short format label | 24 characters |
note | A short supporting line | 60 characters |
The optional photo and logo fields accept image URLs. The gallery assets remain when you omit them. Use your own approved assets for a published video. Image and font rules explain which assets the renderer accepts.
Run the episode recipe
Use Python 3 and curl on macOS or Linux. Set THIRDS_API_KEY through your secret store. Set THIRDS_THUMBNAIL_TEMPLATE to your copied template ID and THIRDS_THUMBNAIL_VERSION to the version you review. Keep credentials and the work folder out of source control.
Save this as thumbnail-request.py. It only writes the request data to a file. It sends no API request.
import json
import os
from pathlib import Path
request = {
"template_id": os.environ["THIRDS_THUMBNAIL_TEMPLATE"],
"version": int(os.environ["THIRDS_THUMBNAIL_VERSION"]),
"data": {
"channel": "Signal Lab",
"tag": "Episode 13",
"headline": "Turn episode data into a thumbnail",
"badge": "Python guide",
"note": "One saved layout for the next episode",
},
"image": {"format": "jpeg", "width": 1280, "height": 720},
}
path = Path(os.environ["THUMBNAIL_WORK"]) / "request.json"
with path.open("x") as output:
json.dump(request, output)
Create a private work folder, set THUMBNAIL_WORK to it, and run the script once. Review request.json. The next command starts one billed image render. Choose your own Idempotency-Key for this episode and write it down before you send.
curl --fail-with-body --silent --show-error https://thirds.ai/v1/image \
-H "Authorization: Bearer $THIRDS_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: thumbnail-episode-13' \
--data @"$THUMBNAIL_WORK/request.json"
Keep the id from the response. If status is queued or running, read the job again until it ends. Replace the sample ID with yours.
curl --fail-with-body --silent --show-error \
https://thirds.ai/v1/image/image_00000000000000000000000000000000 \
-H "Authorization: Bearer $THIRDS_API_KEY"
Once status is succeeded, copy download.url and add https://thirds.ai before it. The download needs no API key.
curl --fail --silent --show-error \
'https://thirds.ai/v1/downloads/YOUR_SIGNED_DOWNLOAD_TOKEN' \
--output "$THUMBNAIL_WORK/thumbnail.jpeg"
shasum -a 256 "$THUMBNAIL_WORK/thumbnail.jpeg"
The hash must match artifact.sha256 in the job, and the file size must match artifact.byte_size. If a create request times out, send it again with the same key and the same request.json. You get the same job and pay once. Use a new key for a new episode, never to recover an uncertain request. Retry and download has the full rules.
Should I use 1280x720 or 1920x1080 for YouTube thumbnails?
This template is designed at 1280 × 720. Keep that size for this recipe, so the text and photo stay where the design puts them. Changing only the API dimensions doesn't redesign the canvas.
YouTube's current help page recommends 3840 × 2160 for video thumbnails, with a minimum width of 640 pixels and a 16:9 ratio. It accepts JPG or PNG. Its upload limits differ between mobile and desktop, so check the current thumbnail rules for your upload path. These facts were checked on 12 September 2026. Design and review a separate larger canvas when you need the recommended resolution.
What do YouTubers use to create thumbnails?
A creator can use an image editor, a saved template, or YouTube's own tools. Use a template when the same channel layout repeats and the episode data already lives in a sheet or an app. Use an image editor when each video needs a different composition. The social image workflow shows how a saved design fits repeated work. The Placid comparison covers a dedicated repeat-image service for the same kind of work.
Review the exported JPEG at full size and at the small size used in a video list. Check the face, headline, and contrast. Then upload the file through YouTube Studio and review it there.
Can Chatgpt create YouTube thumbnails?
ChatGPT can create and edit images from a description, as the OpenAI image guide explains. Check the result's dimensions and text before using it. For repeated episode fields, thirds.ai fills a saved template through the API. Its AI chat can help make the template. After that, each new episode needs no AI message.
Fix common errors
| Code or state | What to do |
|---|---|
template_not_found | Supply your saved template ID and a version number that exists. |
template_data_invalid | Keep all five required text fields within their schema limits. |
insufficient_credits | Add credits, then send the same request with the same key. |
rate_limited | Respect Retry-After and reduce concurrent requests. |
idempotency_conflict | Use the original request with its key. Give a new episode its own key. |
render_failed | Inspect the job in your account and correct the template or asset before a new render. |
For the next episode, change the data and keep the approved template version. Start with the YouTube thumbnail template, or use the playground to check a small example first.



