video tennis compilation tool
Find a file
2025-08-25 09:48:56 +01:00
fontfallback add initial files from preexisting source 2025-08-25 09:35:04 +01:00
fonts add Open Font License 2025-08-25 09:43:31 +01:00
data.csv add initial files from preexisting source 2025-08-25 09:35:04 +01:00
destretch.bat add destretch.bat 2025-08-25 09:46:06 +01:00
fonts.json readjust folder structure 2025-08-25 09:38:33 +01:00
gsm-ui.py add initial files from preexisting source 2025-08-25 09:35:04 +01:00
gsm.ico add initial files from preexisting source 2025-08-25 09:35:04 +01:00
gsm.py add initial files from preexisting source 2025-08-25 09:35:04 +01:00
install-requirements.bat add initial files from preexisting source 2025-08-25 09:35:04 +01:00
LICENSE Initial commit 2025-08-25 08:44:28 +01:00
README.md Update README.md 2025-08-25 09:48:56 +01:00
requirements.txt add initial files from preexisting source 2025-08-25 09:35:04 +01:00

GameSetMatch

GSM is a tool that automatically compiles video tennis matches into one video with a simple style

ooh look, GSM

video tutorial for GSM-UI by dani_phantump:

Watch here

to use the program, simply click gsm-ui.py, if that doesnt work, make sure you run install-requirements.bat if it still doesnt work, you lack certain required components.

  • make sure you have ffmpeg installed (newer versions are more likely to work)
  • make sure you have python installed (tested with python 3.13)

if you wish to use the Command-line Interface, type py gsm.py -h in cmd to show help. a simple usage would be py gsm.py input.csv output.mp4

once you have done that, set up your CSV, using notepad, or a spreadsheet program. i have provided an example CSV, based on a real match, but with example directories.

if you do not wish to include a title, make sure that the second line contains just 1 comma. if you need to add a title with commas or quotations, i would again Highly reccommend you use a spreadsheet editor

in Google Sheets this can be done via file > import and file > download.

anyway - with that all sorted out, you can now use the tool! you can now compile to your heart's content!

these are the defaults i use: py gsm.py input.csv output.mp4 -f h264_amf -nr - this allows for GPU accelerated encoding, which is a fair bit quicker than doing it via CPU

!!! WARNING! with this command however: -nr means that it skips the resizing process. it will render quicker and the filesize will be smaller, but some video players, and some video editors will not play nice. youtube handles the uploads just fine, but your tools may not!

if you have an NVIDIA gpu, replace amf with nvenc if you have intel integrated graphics, replace amf with qsv

if you have linux, you may have to try something else to get GPU acceleration

destretch.bat is a simple little file that retroactively adds padding to any output, if -nl is applied

enjoy! if you have any questions, just ask. -inf


unfortunately this program is not perfect. things will go wrong. if you run into an error, try adding -v 40 to the command, and send the logs to me. this is a list of known issues, and how to fix them:

GSM UI:

  • cannot scroll to last round sometimes

caused by multiline textboxes - this will be fixed in the next version. a temporary workaround is to remove any multiline text, edit whatever it is you need to at the end, and then put the multiline text back. not ideal i know, but i don't have the Mental Energy to work on this project right now

GSM Core:

  • "Padded dimensions cannot be smaller than input dimensions."
  • "Negative values are not acceptable."

this means that something went wrong when adding letterboxing - i Think it's an ffmpeg bug.. not sure to fix, either reencode your video, or add -nl onto the command.

  • height not divisible by 2
  • width not divisible by 2

alot of video codecs do not support odd dimensions. not sure why to fix, add -fe onto the command

  • not enough values to unpack
  • too many values to unpack

this means that something went wrong whilst parsing your CSV file - usually this is because there's not enough or too many commas, or there's a rogue new-line in the titlecard section

  • video is green

ffmpeg bug caused by cropping and using the NVENC Hardware encoder. use x264 instead - it's slower, but works

  • audio is broken on some videos, and is generally Weird between certain apps.

you have used videos with a mixture of mono and stereo audio. this bug will be fixed in the next revision of GSM


planned features for future updates!

  • more graceful error handling (i.e, if a video has odd dimensions, the tool will automatically use -fe)
  • easier font customisation (maybe through the use of a settings file to edit defaults)
  • easier text customisation (not sure how this would be done, probably through again, a settings file)
  • yt-dlp integration (quite a major undertaking there - this might not happen)