PyATEMMax

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

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

# Connect
switcher.connect("192.168.1.111")
switcher.waitForConnection()

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

Installation

pip install PyATEMMax

PyATEMMax on the Python Package Index

Features

  • 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.

Ideas

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 github.com/clvLabs/PyATEMMax.

Additional resources

Latest news

subscribe via RSS