Soccer Video Tools
Match video, sorted

Tag the game once. Ship every highlight.

Soccer Video Tools turns a full match recording into a goals reel, a reel for every player, vertical clips for Instagram and TikTok, and a YouTube-ready game video. Watch the game, tap a key when something happens, and let it cut the clips for you. Everything runs on your own PC.

Get it free See how it works Windows · Python 3.10+ · ffmpeg installed for you
8one-key event types
3kinds of reel from one log
0uploads; your footage stays local
3GPU makers supported
From kickoff to upload

Four steps. One pass through the game.

1

Load the match

Browse to your camera file and press Load. Big 4K recordings stream straight from disk with instant seeking.

2

Tag as you watch

Hit Space when something happens, pick the player and the event, press Enter. Play carries on.

SpaceGEnter
3

Tune the clips

Every tag becomes a clip with sensible lead-in and follow-through. Nudge any of them, preview, zoom in on the action, or let the frame follow a player.

4

Render and share

One click writes the goals reel, a reel per player, an all-highlights cut, vertical versions for your socials, the full game and your YouTube chapters.

Features

Built on the sideline, for the people filming it.

Coaches, club media volunteers and parents with a camera on a tripod. Every feature here exists because a real game needed it.

Keyboard-first tagging

Never take your eyes off the ball.

Space pauses the game and opens the tag panel. One letter picks the event, Enter saves it and the match plays on. A ninety-minute game takes about ninety minutes to log.

  • Eight event types with their own hotkeys: touch, pass, shot, steal, save, foul, goal and other.
  • Coloured markers on the timeline so you can see the shape of the game and jump to any moment.
  • Notes on any tag like "header from the corner", carried into overlays and chapters.
  • Undo with U, edit or delete any row, and the log autosaves next to the video.
  • Variable speed and frame stepping: 0.25x increments, 10-second jumps and 1-second steps while paused.
  • Zoom the player with the scroll wheel and drag to pan, to read a shirt number across the pitch.
Clip Editor

Smart clip windows, tuned by moment.

A goal needs the build-up and the celebration. A pass needs three seconds. Each category gets its own window, and every clip can be adjusted on its own with sliders and a live preview.

  • Category defaults: 3 s either side for most plays, 4 s for shots and saves, 7 s before and 6 s after a goal.
  • Per-clip overrides from 0 to 30 seconds each way, with one-click reset.
  • Preview before you render in an embedded player that stops at the clip's end.
  • Per-clip framing: zoom up to 2x, drag to frame the play, save it to that clip.
  • Follow a player: click them once and the framing tracks them through the clip.
  • Overlapping clips merge automatically, so a quick shot-save-goal plays as one smooth sequence.
Follow a player

Click the player. The camera follows.

Wide sideline footage makes every player small. Click your striker once in the clip preview and the zoomed frame tracks them through the whole clip, like a camera operator who never loses focus. The preview shows exactly what the render will look like.

  • One click to start: pick the player in any frame where they're clearly visible.
  • A confidence strip under the preview shows where tracking was sure, where another player came close, and where it lost sight of them.
  • Corrections in two clicks: pause where the frame drifted, click the right player, and tracking restarts from there. Undo any correction.
  • Smooth camera moves: the path is smoothed, so the frame glides instead of twitching.
  • Runs on your PC: the person detector works locally, on your NVIDIA, AMD or Intel GPU when there is one. No footage is uploaded.
Overlays & branding

Looks like the club made it.

Burn the player's name into their own reel and put your club crest in the corner of everything you export. Positions, size and opacity are all yours to set, and the app warns you if the name and the logo would collide.

  • Player name overlay in any corner, 12 to 120 pt.
  • Logo watermark from any PNG or JPG, 5 to 40% of the frame, 10 to 100% opacity.
  • Zoom without the blur: zoomed clips are never upscaled. They're downscaled to the nearest standard size, so up to 1.5x of 4K gives 1440p and up to 2x gives clean 1080p.
Zoom 2xName bottom-right · 75 ptLogo top-right · 15%Output 1920×1080
One click, every reel

Every player gets their own highlight reel.

Press Generate and the app cuts every clip and stitches the reels together, with a progress bar the whole way. Send each family their kid's reel, post the goals to the club page, and keep the full cut for the coaches.

  • GOALS_only: every goal of the game, back to back.
  • player_<name>: one reel per player with every moment they were tagged in.
  • ALL_HIGHLIGHTS: the whole game's action in one watchable cut.
  • Watch Reels tab plays the finished files without leaving the app.
  • Re-renders are fast: clips whose settings haven't changed are reused, so a small tweak doesn't redo the whole game.
2:41
GOALS_only.mp44 goals
3:58
player_Mateo.mp419 moments
11:20
ALL_HIGHLIGHTS.mp463 clips
Harbor City vs Westside/ ├── GOALS_only.mp4 ├── ALL_HIGHLIGHTS.mp4 ├── Harbor City vs Westside_full.mp4 ├── players/ │ ├── player_Eli.mp4 │ ├── player_Mateo.mp4 │ └── … one per tagged player └── vertical/ ├── clips/clip_03_at_12m40s.mp4 ← ready to post └── … every reel again, in 9:16
Vertical for Instagram & TikTok

Every highlight, ready for the phone.

Tick one box and every reel also comes out in 9:16, plus each moment as its own clip, ready to post. Frame each clip in the preview by dragging a tall outline, or let it follow the player you picked.

  • Crop to fill: a full-height slice of your 4K footage, sharp at 1080×1920 and never upscaled.
  • Zoom closer for vertical: scroll on the outline to zoom up to about 1.7x, with clips dropping to 720×1280. The size each zoom renders at is shown as you go.
  • Blurred background shows the whole picture instead, and is used automatically for footage under 1280 rows.
  • Overlays in the safe area: your logo and the player's name keep their chosen corners, moved clear of the apps' captions and buttons.
  • Each clip on its own at its best size, plus vertical versions of every reel, in a vertical folder.
Crop to fill1080×1920, framed on #9
Blurred backgroundThe whole picture
The finishing touches

Broadcast polish without the broadcast truck.

External audio sync

Your commentary, lined up to the frame.

Recorded commentary or crowd sound on your phone? Load it next to the video and press Auto-sync. The app compares the sound of both recordings and lines them up for you, down to the hundredth of a second.

  • Auto-sync matches the external audio against the camera's own soundtrack.
  • Split recordings: pick every part of a recording and they are joined end to end, sample-accurately.
  • Fine nudges of ±1 s, ±0.1 s and ±0.01 s for a perfect lock.
  • Replace or mix with the game audio, with separate volume for each, in the player and in every render.
Camera audio
Phone recording
+0.00 s
Offset: where the audio starts in the video
YouTube chapters

Paste-ready timestamps for the full game.

Pick which events count, and the app writes the chapter list for your video description. Viewers jump straight to every goal. When you trim the start of the full video, the timestamps shift to match.

  • Filter by event: goals, shots, saves, steals, fouls and more.
  • Player names and notes included or left out with a checkbox.
  • Merge nearby events so a busy minute becomes one chapter, keeping the biggest moment.
  • Copy to clipboard and paste into YouTube.
Description · Chapters
0:00 Start
6:12 Shot — Nico (Off the bar)
12:40 GOAL — Mateo (Left foot, far post)
19:05 Save (Diving, low left)
27:33 Steal — Ravi
34:58 GOAL — Sam (Header from the corner)
52:16 Foul — Jonah
71:09 GOAL — Mateo
Full game render

A clean full match, trimmed and cropped.

Cut the warm-up and the walk off. Zoom the whole game to crop out the camera's burned-in clock and logo. A live preview shows exactly what you keep before anything is encoded.

  • Trim start and end from the player's position, or type a time.
  • Whole-game zoom up to 2x, anchored top, centre or bottom. About 1.1x is enough to crop a camera's clock and logo.
  • Standard sizes, never upscaled: 1.1x of 4K renders crisp 1440p and 2x renders 1080p. Or scale back up to the source size.
  • GPU encoding on NVIDIA (NVENC), AMD (AMF) and Intel (Quick Sync), with automatic fallback to the CPU.
Kept by 1.12x zoom, anchored topCropped: the camera's timestamp and logo
Everything in the box

The full feature list.

Video player

  • Streams large files from disk with instant seeking
  • Speed control in 0.25x steps
  • 10-second jumps and 1-second steps
  • Scroll-to-zoom with drag-to-pan
  • Event markers drawn on the timeline
  • Trim the full video from the player

Tagging

  • 8 event types, each on its own hotkey
  • Player buttons from your roster
  • Optional note on every tag
  • Undo, edit and delete in the log
  • Event log autosaves as JSON beside the video
  • Load any saved log to pick up where you left off

Teams & rosters

  • Any number of teams
  • Player names and shirt numbers
  • Add, rename and remove players
  • Roster shared by the web app and desktop tools

Clip editor

  • Windows per category: default, shot/save, goal
  • Per-clip before/after sliders, 0–30 s
  • Embedded clip preview
  • Per-clip zoom up to 2x
  • Follow a player, with corrections
  • Overlapping clips merge automatically

Reels & rendering

  • Goals, per-player and all-highlights reels
  • Optional full-game render
  • Fast stream copy, or frame-accurate re-encode
  • GPU encoding: NVIDIA, AMD, Intel
  • Zoom never upscales; standard sizes only
  • Vertical: crop to fill or blurred background
  • Unchanged clips reused on re-render
  • Live progress bar

Branding

  • Player name overlay, any corner, 12–120 pt
  • PNG/JPG logo watermark
  • Logo size 5–40%, opacity 10–100%
  • Overlap warning for name and logo
  • Optional logo on the full game

Audio

  • External audio from mp3, wav, m4a and more
  • Automatic sync to the camera soundtrack
  • Joins multi-part recordings
  • Replace or mix, with two volume controls
  • Offset nudges down to 0.01 s

Publishing

  • Vertical 9:16 for Instagram and TikTok
  • Each clip exported on its own, ready to post
  • YouTube chapter generator
  • Event filters and merge-nearby
  • Timestamps follow the full-video trim
  • Copy to clipboard
  • Watch Reels tab to review output

Setup

  • Double-click start.bat to launch
  • Dependencies installed on first run
  • One-click ffmpeg install if it's missing
  • Player-tracking model fetched on first use
  • Runs in your browser at localhost
  • Classic desktop tagger included too
Cheat sheet

Your hands stay on the keys.

Press H inside the app any time to bring this up.

Playback

Space
Pause and start tagging
[ ←
Rewind 10 seconds
] →
Forward 10 seconds
, .
Step 1 second back / forward
- +
Speed down / up 0.25x

Tagging

Enter
Save the tag
Esc
Cancel and resume play
N
Jump to the note field
U
Undo last tag
H
Show shortcuts

Zoom

Scroll
Zoom at the cursor
Drag
Pan while zoomed
Z
Zoom in
Shift Z
Zoom out
0
Reset zoom
Pricing
$0forever. No account, no subscription, no upload limits.

Your matches never leave your computer. There is no cloud to wait on and nothing to sign up for. Load a game and start tagging.

  • Every feature on this page, included.
  • Unlimited games, teams, players and reels.
  • Works offline once it's installed.

What you need

System
Windows PC (the web app also runs anywhere Python does)
Python
3.10 or newer, added to PATH
ffmpeg
Installed for you with one click if it's missing
GPU
Optional. NVIDIA, AMD or Intel speeds up re-encodes and player tracking
Browser
Any modern browser
cd web start.bat # opens http://localhost:5000
Questions

Before kickoff.

What cameras does it work with?

Anything that records a normal video file. Tripod cameras, AI sideline cameras, phones and action cams all work. The full-game zoom is handy for cropping out the clock and logo some cameras burn into the picture.

Do I need to tag every touch?

No. Tag as much or as little as you like. Many people tag only goals, shots and saves for the club reel, then go back for player moments later. The log saves as you go and loads back in any time.

How long does rendering take?

Plain clips are copied without re-encoding, which is close to instant. Overlays, logos and zoom need a re-encode, which a GPU speeds up a lot. Clips you haven't changed are reused on the next render.

Will it make my footage blurry when it zooms?

No. Zoomed clips are never upscaled: each is downscaled to the nearest standard size, so up to 1.5x of a 4K game gives 1440p and up to 2x gives sharp 1080p. A reel takes the size of its most-zoomed clip, and zoom stops before anything would drop below 1080p, so 1080p footage isn't zoomed at all. For the full-game render you can choose to scale back to the source size instead.

Can it make videos for TikTok and Instagram?

Yes. Tick "Also export vertical 9:16" and every reel comes out a second time at 1080×1920, along with each moment as its own clip. You choose where each clip's vertical slice sits, zoom in further if you like (down to 720×1280), or let it follow a player. Your logo and the player's name stay clear of the apps' captions and buttons. Footage under 1280 rows uses a blurred-background layout instead of cropping.

How well does Follow a player work?

On short highlight clips it usually holds on to the player from your first click to the end. Where players bunch up or cross, it can jump to the wrong one; the confidence strip shows those moments in amber or red, and one click puts it right. It needs footage above 1080p, since following works by zooming in, and 4K gives the most room. Everything runs on your own PC.

Is it only for soccer?

The event set is built around soccer, but the "Other" event and notes make it work for any sport where you want clips around key moments.