How to Automate Your Golf YouTube Score Graphics with AI

How to Automate Your Golf YouTube Score Graphics with AI

If you watch golf YouTube videos, you have probably noticed those TV-style overlays that track a player's running score shot by shot, and display a full scorecard summary after each hole. They look really polished, but the reality behind the scenes is that creating them manually is incredibly time consuming.

Before building this tool, creating all the score tracking graphics for a single round of golf took me about 3 hours of manual work in image editing software — designing each shot overlay, updating the running score, making sure the score badges were right, hole after hole. For an 18-hole round where I might hit 85-90 shots, that's somewhere between 100 and 110 individual images that all have to be created by hand.

So I decided to do something about it. I used Claude AI to build a fully automated system that generates every single one of those images instantly — just from a photo of my scorecard. The whole process now takes about 2 minutes instead of 3 hours. You snap a picture of your scorecard after the round, upload it to Claude, type one sentence, and Claude reads the card, extracts all the data, and outputs a ZIP file with every graphic ready to drag into your video editor.

In this post I am going to walk you through exactly how I built this, step by step, including every prompt I used. You can copy these prompts directly and build the exact same tool for your own channel.

If you prefer to learn visually, check out the YouTube video that walks through this whole process. Be sure to Subscribe to the channel for more golf content, tutorials, and behind-the-scenes looks at how I build stuff like this.


What Are We Building?

The system generates two types of graphics for every round:

Shot Graphics — A small overlay that sits in the top-right corner of the video frame. For every single shot hit during the round, there is a corresponding image that shows the player name, hole number (1st, 2nd, 3rd, etc.), hole yardage, par, the running score vs par coming into that hole, and the shot number. These reset to Shot 1 at the start of each new hole.

Summary Graphics — A wide scorecard bar that sits along the bottom of the frame. One image is generated after each hole, showing all holes played so far with TV-style score badges (circles for birdies and eagles, squares for bogeys and double bogeys). The 9th and 18th hole summaries also include the total stroke count in the bottom right corner.

For an average round of 85-90 shots, this means roughly 100-110 total PNG files, all with a transparent background sized at 1280x720, ready to drop straight into a video editing timeline.


One-Time Setup

Before we get into building the tool with Claude, there is one piece of setup you need to do on your computer. This only needs to be done once ever — after this, every round is just a photo and a prompt.

Under the hood, Claude is writing and running a Python script that does all the actual image generation on your computer. Python is a free programming language that we are not going to write ourselves — Claude handles all of that — but we do need to have it installed so your computer can run the script when Claude calls it.

Don't let this intimidate you. You are not going to be writing any code. Think of it like installing any other program on your computer — you just need it to be there.


Step 1 — Download and Install Python

Go to python.org/downloads and click the big yellow "Download Python" button. This will download the installer.

Once the installer downloads, open it. Before you click anything else, look at the bottom of the installer window. There will be a checkbox that says "Add Python to PATH". This is the most important step — make sure this box is checked before continuing. If you skip this, Python will install but your computer won't be able to find it when it needs to run the script.

Once that box is checked, click "Install Now" and let it finish. That's it for the Python install.


Step 2 — Install the Required Libraries

Python on its own is not quite enough — the script uses two additional libraries called Pillow and NumPy to handle the image processing. We install these through something called the Command Prompt.

To open Command Prompt, press the Windows key on your keyboard, type "cmd", and press Enter.

A black window will open. This is the Command Prompt. It might look a little intimidating but we only need to type one thing here. Click anywhere in the window to make sure it's selected, then type the following exactly and press Enter:

pip install pillow numpy


You will see some text scroll by as it downloads and installs. When it finishes and you see the prompt blinking again, you are done. You will never need to do this step again.


Step 3 — Set Up Your Local Folder

Create a folder on your computer where all the golf graphics files will live. Something simple like C:\Golf Graphics\ works great.

Inside that folder, place these two files:

      generate_golf_graphics.py — the Python script (linked in the YouTube video description)

      LOGO_text_only_small.png — your logo image, white graphics on a black background

Now open Command Prompt again (Windows key, type cmd, press Enter). This time we need to navigate to your folder before running anything. Type the following and press Enter, replacing the path with wherever you created your folder:

cd "C:\Golf Graphics"

Then run the script once to build the logo cache files:

python generate_golf_graphics.py

This creates two cached logo files — LOGO_shot.png and LOGO_summary.png — in the same folder. Keep these. They make every future run much faster. The whole batch of 100+ images generates in about 3 seconds once these exist.

That's the one-time setup completely done. You never need to touch the Command Prompt or the script again after this point.


Why Use a Claude Project Instead of Running the Script Manually?

When I first built this tool, my original plan was to have the user open the Python script in a text editor, manually type in the yardages, pars, and scores from their scorecard, save the file, and then run it from the Command Prompt. Technically it worked, but it was clunky — you still had to read the scorecard yourself, type out 54 numbers, and mess around in a script file every single round.

I am comfortable with Python so it was no big deal for me personally, but for someone without a programming background, opening a script file and editing values inside it is already asking a lot. One wrong character and the whole thing breaks.

So I took it a step further and set the whole thing up as a Claude Project. The idea is simple: Claude already has the script and all the instructions saved in the project. All you do is upload a photo of your scorecard and type one sentence. Claude reads the card, extracts all the data automatically, fills in the script for you, runs it, and delivers the finished ZIP file. You never open the script, you never type a single number, and you never touch the Command Prompt again after the one-time setup.

That is the version we are going to walk through now.


Building the Tool with Claude

Here is the full process of how I built this, including every prompt I used. If you want to build your own version from scratch with your own branding, you can copy these prompts directly into Claude and follow along.


Phase 1 — Describing the Vision

I opened a new chat with Claude, attached my sample scorecard and a few example graphics so Claude could see the visual style I was going for, and sent this opening prompt:


This project is for creating graphic overlays in golf YouTube videos to keep track of the running score, and have graphics for each shot in the top right corner (see image h1s1 as an example), keeping track of a running total through each shot, each image should update the shot number, the hole number (1st, 2nd, 3rd, etc.), how many yards the hole is, what the par is on that hole, and what the current running score is. In total there will be about 70-90 of these images generated on average. Additionally I need to create 18 images that are round summary images (see h1f or h18f images in the files section as examples) that show the current totals up to that point. I want to creation in instruction sheet for this project to start each time i play a round of golf, I can automatically create all these images consistently each time for YouTube videos. Please ask many any clarification questions you need before you finalize the instruction sheet and here are some of the specifications to follow: 1. Always use the layout and color schemes provided from the examples. 2. The images should always output as PNG file type and the image size should be 1280 x 720. 3. For the running totals, it should use golf scoring metrics (ex: E for even, +1 if the running total is one over par, etc.). 4. on the 18 summary images, the scoring around the numbers should correspond with how it is shown on TV broadcasts, bogeys get a square, double bogeys get a double square, birdies get a circle, eagles get 2 circles, and anything over a double bogey should get a double box with a slightly transparent hue. 5. When I want to prompt a new batch of images to generate, I will upload a picture of the scorecard, and specify which color tees I played, you will use that color tees yardage numbers. The "par" row is the par of the holes, and the "score" row or top hand written row (I usually draw the corresponding score like a box around a bogey) is the score I shot for that hole. Besides the yardage number row that I played, the par row, and my scoring row you can ignore the other values on the scorecard. Please ask me for any clarification questions about those 5 points. 6. Besides the graphic, the background of the image will always be transparent.


After this initial prompt, Claude came back with a detailed list of clarifying questions covering how shot counts should be inferred from the score, whether the running score should update mid-hole or only between holes, how the front and back 9 should be displayed in the summary graphics, file naming conventions, and how to handle split par holes on scorecards. We went back and forth answering all of these, which gave Claude everything it needed to write the Python script and instruction sheet.


Phase 2 — Refining the Design

After Claude generated the first version of the script and produced a sample set of graphics, I reviewed the output and sent the first round of design feedback:


I have several feedback points based on your output: 1. For the shot graphics (see attached h1s1 example) the word "Shot 1" is not readable. instead of a gradient background there, just make it white, and keep the color of the text for "Shot 1" as you had it. The text is also a little small, please make it bigger for all the text. The logo is also small, please make it slightly larger and also just make the logo a flat white color. 2. For the summary graphics, the gray box in the bottom right is too dark, just make this a white color. The text is also small for the scores and running total, please make that text larger. Please make the logo image a flat white color, enlarge it slightly, and it should be vertically aligned with the middle portion where the hole number and par sections are. On the left portion, please also make the background gradient exactly as I have it in my previous sample images, it should be a gradient starting on the side using color #89CFF0 gradually transitioning to #00A3EB. Then between the par and the score numbers there should be a thin line using color code #89CFF0 starting from the right side and gradually becoming transparent (reference my sample images from the project to double check your work). Please update the instruction sheet to reflect all these changes. Also instead of outputting a batch file, I want the instruction sheet to be a part of this claude project, and whenever I play a round of golf I just want to start a claude chat within this project, upload my picture of my scorecard, and then ask claude "Make all my score images for this round at XXX golf course" (for example). Can you change it so that I am prompting claude to create the images instead of using a batch file? Please clarify any questions you have before making all these changes.


This prompt drove several significant changes. The Shot N bar at the bottom of the shot graphic was changed to a solid white background so the cyan text would be clearly readable. All font sizes were bumped up approximately 20%. The logo was updated to render as a flat solid white silhouette. The summary graphic blank box in the bottom right was changed from grey to white. The gradient across the entire summary bar was corrected to match the original sample exactly — #89CFF0 on the left transitioning to #00A3EB on the right as a single continuous gradient shared across all sections. A thin separator line was added between the par row and the score row. The workflow was also restructured away from a manual batch file into a Claude Project so that uploading a scorecard photo and typing one sentence is all that is needed going forward.


Phase 3 — Further Design Polish

After reviewing the updated output, there were a few more things to correct:


There are a few more updates we need to make based on the most recent output you showed me, 1. In h9f and h18f, you made the background color of the total score in bottom right a really dark blue color, the background of this section should still be white for those 2 images. 2. For both the score images and summary images, you made the logo a transparent white outline, everything should just be a flat white color like I showed in the original logo image i uploaded, please make the logo a filled in clean white image like I originally showed you. 3. Everything else on the shot graphics looks good. 4. For the summary graphics, the score numbers that are inside the boxes or circles should be both horizontally and vertically center align, please align the boxes and circles around the numbers so that the numbers appear in the center. 5. In the summary graphics, the left side logo background, the score background, and the hole number and par backgrounds all have their own gradients within their own backgrounds, those 3 sections should all share 1 background with a single gradient. 6. In the summary graphic, in the top right, the running score, please make just that number a little larger, it's still quite small.


This round fixed the h9f and h18f total panels back to white backgrounds with cyan stroke totals. The logo rendering was overhauled to produce a truly solid filled white silhouette with no transparency. The score badge drawing logic was updated to center boxes and circles on the true visual center of each number. The gradient was corrected so the logo column, hole numbers, par row, and score row all share one single continuous fill. The running score font in the total panel was increased by approximately 40%.


Phase 4 — Fixing the Logo

Even after the flat white rendering update, the logo still wasn't looking quite right because the source image was a very large 6000x6000px file that was slow to process and not converting cleanly. I created a smaller, cleaner version and uploaded it:


The logo image in both graphics still looks bad, I created a new logo image, please use this image instead (it is smaller and a better flat white image).


Claude updated the script to reference the new logo file and simplified the processing logic. Because the new file was a clean binary white-on-black image, the conversion to a transparent white silhouette became much faster and more accurate. Claude also restructured the logo caching system to pre-scale the logo down to the exact pixel heights used in each graphic type at startup, so there is zero resizing overhead during the main generation loop.


Phase 5 — Logo Sizing

The last visual tweak was scaling the logo down slightly so it wasn't overflowing its section:


The logo is displayed a little too large, can you scale it down slightly so it is not overhanging on top of the backgrounds in both the shot and the summary images?


The logo target heights were reduced — from 78px to 58px for the shot graphic header and from 101px to 72px for the summary graphic middle section — giving the logo proper breathing room within each panel. The cache files were automatically rebuilt on the next run.


Setting Up Your Claude Project

Once the tool is built, here is how to get it set up as a Claude Project so that every round only takes a single prompt.

Step 1 — Create a Claude Project

Go to claude.ai and create a new Project. Give it a name like "Golf Graphics".

Step 2 — Upload the Project Files

Inside the project, upload these two files (both are linked in the YouTube video description):

      generate_golf_graphics.py — the Python script that generates the images

      GOLF_GRAPHICS_INSTRUCTIONS.md — the instruction sheet that tells Claude how to read scorecards and run everything

With these two files in the project, every new chat you start inside it will automatically have access to the script and all the rules for reading scorecards.


Using It After Every Round

This is where all the setup pays off. After your round, here is all you need to do:


1.    Take a photo of your scorecard — make sure all the numbers are clearly readable. Natural light works best.

2.    Open a new chat inside your Claude Golf Graphics project

3.    Attach your scorecard photo to the message and type:


Make all my score images for this round at [GOLF COURSE NAME]. I played the [TEE COLOR] tees.


For example:

Make all my score images for this round at Cog Hill Golf Club. I played the blue tees.


4.    Claude reads the scorecard photo, identifies your tee color row, extracts all 18 yardages, pars, and scores, fills in the script, runs it on your computer, and delivers golf_graphics.zip with every PNG file ready to use.

5.    Download the ZIP and drag the files into your video editing project.


That's it. The whole thing from photo to ZIP takes about 2 minutes.


How Claude Reads the Scorecard

Claude follows a specific set of rules when reading your scorecard photo to make sure it always grabs the right numbers:

      Yardage: reads the row matching the tee color you specified in the prompt

      Par: reads the PAR row, always using the lower (men's) value on any split par holes

      Score: reads the top handwritten row — your hole-by-hole scores

      Everything else is ignored: handicap rows, other tee colors, FH, GIR, putts, and all other rows

      Shot count per hole: inferred from your score — if you scored a 6, six shot graphics are generated for that hole

      Front 9: holes 1-9 on the left side of the scorecard

      Back 9: holes 10-18 on the right side of the scorecard


Score Badge Reference

The summary graphics use TV-style score badges around each hole score, just like you see during PGA Tour broadcasts:

      Eagle or better (-2 or more): double circle

      Birdie (-1): single circle

      Par (E): plain number, no border

      Bogey (+1): single square

      Double bogey (+2): double square

      Triple bogey or worse (+3 or more): double square with a white 90% opacity overlay


Wrap Up

What started as a 3-hour manual task every time I filmed a round is now completely automated. The whole conversation with Claude that built this tool took about 3 hours total, and now it saves me that same 3 hours every single time I use it. That's a pretty good trade.

The thing I find most impressive about this is that I didn't write a single line of code myself. I just described what I wanted, reviewed the output, gave feedback, and iterated. If you have ever wanted to build something like this but thought it required programming knowledge, this is proof that it really doesn't anymore.

If you have your own golf YouTube channel and want to use this, all the files are linked in the YouTube video description. You can also follow the prompts in this post to build your own version with your own branding from scratch.

If you found this useful, be sure to Subscribe to the channel — I am always putting out new content on golf, content creation, and building cool things. As always, I look forward to seeing you out on the course!

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.