A Python library to monitor and control Blackmagic Design ATEM video switchers.

# Create ATEMMax object
import PyATEMMax
switcher = PyATEMMax.ATEMMax()

# Connect

# Have fun!
switcher.setAudioMixerMasterVolume(1.8)    # Set Master Volume: 1.8dB
switcher.setPreviewInputVideoSource(0, 5)  # Set PVW on input 5 for m/e 0


pip install PyATEMMax

PyATEMMax on the Python Package Index


  • Built using Python 3, runs on Windows/Mac/Linux.
  • Huge set of switcher settings available (see list of ‘set’ methods).
  • Automatic reconnection to the switcher in case of connection loss.
  • Switcher settings automatically updated, there’s no need to call update() methods.
  • Able to simultaneously connect to multiple switchers.
  • Open source, you can see the code and customize it to fit your needs (see License)
  • No dependencies, the only thing you need installed on your system is Python 3.
  • Meant to be user friendly, so you can start playing with your switchers in no time:
    • Intellisense friendly: get yourself a Python plugin for your editor and you’re ready to go!.
    • Uses Python Type Hints (PEP 484), which is extremely useful if you are using a linter.


These are just a few possible projects that could be easily built with PyATEMMax:

  • Custom tallies:
    • DIY classic tally lights (PGM/PVW/Audio).
    • Audio tallies: play a sound when an input is in PGM/PVW.
    • Action tallies: move motors, tun on lights, fans… anything!
  • Smart tallies (depending on complex factors):
    • You can use all the available switcher settings to build complex notification settings.
  • All kinds of crazy DIY controllers, as the most of the settings of the switcher are exposed:
    • Make a touch remote with the MultiViewer from the switcher and a touch screen.
    • Execute a CUT when you hit the table with your fist (using a piezo sensor).
    • Change camera settings depending on the input of a light/distance/sound sensor.
    • Change PVW input to certain cameras depending on their sound levels.
  • Automation
    • Complex macros, depending on many factors (even external ones).
    • Manage many switches from a central point for coordination. If you work on a site with a lot of ATEM switchers you may find this very useful! (see the examples)

Talk is cheap. Show me the code.

You can find the code at

Additional resources

Latest news

subscribe via RSS