The Z-Cam flagship line has an API of sorts. This can be used to control the camera–via a StreamDeck, say.

This seems like a good enough reason to me to learn Go.

Ideally this is useful for someone besides me.


./zcam-controller [options] start starts the camera recording ./zcam-controller [options] stop starts the camera recording ./zcam-controller [options] download downloads the files currently on the device’s disk to a location you specify with the -o flag. An optional --delete at the end will then delete the files from the camera post-copy.

A -u or --url flag is required, and it expects either an IP address or a resolvable hostname for the z-cam.

Putting it all together, ./zcam-controller -u -o "/tmp" download --delete is what a command looks like.


If you’re going to call this from a Stream Deck, you’re in for a “fun” time. It doesn’t support arguments to binaries, so you get to wrap it with an executable shell script–then set the System -> Open action to call that shell script instead of the binary directly.


View Github