Sunday, August 23, 2026

On Pickleball and Video Recording


For those who may not know, I own a completely private and non-commercial building with 3 pickleball courts in it. I love pickleball and love to play and decided I wanted to have a great place to play at home, so I built it. And along the way I decided I wanted to be able to get video from my courts easily. So I started working on ways to do that, starting with an iPhone mount on the wall, then a GoPro, but ultimately I needed better.


First, a description of the video system. I started by simply adding a camera from my Unifi Protect security NVR setup to a pickleball court. Using that, I could go back and get games. But I quickly realized I didn’t really want games, what I wanted was to be able to mark a timestamp easily to find interesting points…Nasty Nelsons, body bags, or just long fun points or amazing shots. You can go back and see some clips on Instagram by hitting up the @picklebarnes account.


I cooked up an idea in conjunction with my son, Kevin. We figured out how to make the “Action Button” on my Apple Watch drop a timestamp in a Notes file on my iPhone. Worked pretty well for a time, but then two things happened: first, Apple broke it. Like as in some OS update literally broke the ability to make the timestamp appear in a Notes file. But on top of that, I also added a camera to *each* of my three pickleball courts, which was another problem altogether because now I had three places I would have needed to search for my clip since my Timestamp didn’t have a way to know which court.


I could have probably done some Siri magic to do something like “Hey Siri, add the current time and Court number 2 to my Notes file for pickleball clips” and maybe most of the time it would have happened. But I didn’t want to be stopping play to do that. And I hate talking to Siri anyway.


So I came up with a new system. I bought six Flic buttons and the Flic Hub. These are pretty small buttons that each have their own coin battery that should last a couple years and can stick to a surface. I then laser cut and engraved a nice little sign to stick them on that basically says you can push this button if something just happened that you would like a video clip of. And I put one of these on each end of each court. But what actually happens when you press the button?





Nothing as cool as you might expect. All the button press does is drop a court number and a date and timestamp in a Google Sheet. Which is a lot better than nothing! Sadly, at first setup there was no way to also get the seconds in the timestamp, just the current hour:minute.


So how to get the video from that? Well, first I’d take a screenshot of the Google Sheet and crop it to JUST the event as a whole (so anywhere from a couple presses to maybe 30 if it was a big group playing) and save that to my Photos. That serves two purposes…one, it’s an obvious marker in my Photos between events, because I am often grabbing the clips from several different days of events at the same time, and since these are video exports, they go into my Photos as new events, NOT as events that happened when they really happened. That is to say if I go get several days in a row, they all just show up the day I get them as one long stream. So the screen shot between each event makes an obvious break in my Photos roll. The other purpose is an easy to follow list. You see, getting the clips from my NVR is easiest using the iPad app. And to ease my workflow, what I’ll usually do is use my iPhone to view the list and my iPad to grab each clip.


So with my iPhone list in hand, I fire up the Protect app on my iPad, then I have to select the court camera I want to grab clips from. Then I have to select the date to go back in time to the right day. Then I have to scroll to the minute BEFORE my timestamp, because often that’s when the point started that I was after. I usually scrub to about 20s before the minute of my stamp and start watching. Sometimes it’s obvious I’m already in the middle of the point I want, so I go back and start further back. Otherwise I keep watching and mentally noting the start time of each point that happens until I DEFINITELY get to the spot I want (it’s usually obvious from the point itself, but if not then you can also see the person on video go for the button, in which case it’s the point just before that). Then I hit the button to “video archive” and then I have to scrub the start marker to the time I mentally noted, then the end marker to the end of the point. Then click “Download.” Wait for that to finish, then hit the back button to move back to the main timeline, then move to the next time slot on the list and repeat. For each camera in the list (there will usually only be one camera for a foursome, because we almost always pick a court and stay on it…but for groups, there could be presses intermixed on all courts).


So as you can imagine, that’s a lot of clicking in and out to get each clip. A typical foursome probably averages six or seven clips and I’d say that takes me about 15 minutes just to get the clips.


Then I made a conscious choice that it would be fun to share them via Instagram instead of just sending them to everyone involved. That created an entirely new workflow. I’ll be less precise here, but just say this: it was about 2.5 times the amount of time just grabbing the clips took to make the posts *good*. And by “good” I mean the algorithm liked them enough to push to random people. Getting the edit cuts just right plus adding some text that made at least light fun of a person or what was going on got the most exposure always. And at the peak I was getting 1.3M hits per month. Yes, MILLION.


But ultimately that just attracted assholes in the comments and didn’t generate any actual value other than, yes, people could see their clips and their friends could also see them. But at a tremendous time cost to me. As it grew it seemed worth it, but at a certain point it finally wasn’t worth it and I just stopped posting.


Ultimately I did decide to start just texting people involved their clips directly, which has gone fine. And while once I started doing that it seemed like I was “winning” because it took a lot LESS time than before, it also still took significant time and started feeling like a bit of a burden. What I needed was more automation. But let’s back up a bit…


A while back a friend pointed me to SwingVision, which can analyze pickleball matches quite well. The one caveat is that it requires 60 frame-per-second (fps) video. The reason is simple…the pickleball can move pretty fast at times and it needs to be able to see exactly where it bounced. At 30fps the ball simply moves too fast and you can often have the bounce happen completely between frames and so far away that even reasonable extrapolation can’t tell you for sure if it hit the line or was outside the line.


iPhones and GoPros can easily do 60fps (or higher), but introduce a LOT of complexity in trying to use them for this. For one, to get them in the right position requires putting them on a mount high enough that they require a stepladder. And you have to make sure you align it properly and hit start and stop and then gather the video from the device and a whole bunch of nonsense that happens around the playing that’s just, frankly, frustrating on its own. The NVR and built-in cameras is just way better since they are always recording. The problem is that the only “security cameras” that can do this are either hard to find or VERY expensive. Fortunately some sleuthing turned up an Axis camera that’s no longer sold, but is very available used on eBay for around $150 each or less.


I bought one of those and then setup an open source NVR called Frigate to do the recording. At first it looked very promising and I was actually able to get a usable game from it, but at some point things went sideways and it took a few hours of troubleshooting to make the cameras pretty solid at shooting 60fps. Once done, now I basically had a higher quality video system that was no better than the original in how much time it took ME to get the video from it.


But along this time I had started experimenting with Home Assistant, an open source home automation package that’s really great at being the glue for automating all sorts of things. It knows how to talk to things like Frigate, Flic buttons, the Protect security cameras, and much more. So I had Claude help me convert the Flic buttons from simple timestamp-dropping to actually have Frigate just export the last 60s or 120s (single or double-tap the button) before each button press into its exports container, which works great. Frigate has a reasonable web interface for downloading those, which by itself would save me a good bit of time grabbing clips that are “very close.” 


But I wanted even better, so I had Claude write me an app for the iPhone/iPad to manage the Frigate exports. So it will load whatever Frigate has into a nice list with thumbnails and I can download those to the app. Once in the app, I can very easily trim them down to the proper size. If I find that the export didn’t quite get enough footage, it’s very easy to hit a button and download it again with 30s added to it. Then once trimmed to the clip I want, if I find that I really want that same clip from one of the Protect cameras (which are on the other side from the Frigate cameras, as well as the center court having an aerial camera), I can click one button and it goes and grabs the exact same time range from those cameras, too, and imports them to the app.


Once I have all the clips in the app that I want, I can share them directly via the normal iOS “share sheet”, which means generating an email or text message is super easy. And I can also save them all directly to my Photos roll. Bang, workflow taken from 15 minutes to more like 2, if that. It’s entirely possible to ship the videos to the participants before they can change shoes and walk out the door!



And there we have it. Video captured on the Axis Q3517 that was pulled via a single button press, then processed using my iPadOS app completely. It's pretty perfect at this point and makes this process so much easier. I may go back to posting some things on Instagram, even!


I'm baaaaaaack....maybe?

 Quick post. Yeah, it's been like 12 years since I was here. Many reasons why that don't matter, but I've found myself recently wishing I had a good place to publish a few things, so here it is. Gonna give this a try again.