Skip to main content

Library implementing the ATEM video switcher protocol and a GTK3.0 application

![Screenshot of the control application](https://brixitcdn.net/metainfo/openswitcher.png)

Installation

Install the pyatem protocol module:

setup.py build
sudo setup.py install

Build and install the gtk application and proxy:

meson build
meson compile -C build
sudo meson install -C build

Run the application:

switcher-control

There is also the openswitcher-install.sh script which will install the library, proxy and gtk application in /usr/local for a quick installation of all components.

External dependencies

The only external dependency for pyatem is pyusb for the USB protocol support. It contains a native compiled module so it also requires a toolchain and python-dev headers at build time.

OpenSwitcher depends on the python bindings from gtk3.

OpenSwitcher-proxy only depends on pyatem for the core functionality but it might need more dependencies when loading specific frontends or backends:

  • MQTT Frontend: paho-mqtt

Developing

To work on the pyatem library the quickest way to get up and running is using the openswitcher-develop.sh script that will install the pyatem library in devel mode where the files are symlinked to the git repository. It will also install the proxy and gtk application in /usr/local which will use the symlinked library.

Development happens on matrix on #openatem:brixit.nl

Proxy

There is also the openswitcher_proxy python module in this repository. It will run an API wrapper around one or more ATEM switchers. There is currently a single api supported which is a HTTP REST api for sending commands and reading the mixer state.

It can be run by starting the module:

python3 -m openswitcher_proxy --config /etc/myconfigfile.toml

Or if the software installed it can be started using the launcher script:

openswitcher-proxy --config /etc/myconfigfile.toml

The default config location is /etc/openswitcher/proxy.toml if not specified. Here’s an example config:

[[hardware]] id = “mini” label = “Atem Mini” address = “192.168.2.84”

[[hardware]] id = “mini2” label = “Local switcher” address = “usb”

[[frontend]] type = “http-api” bind = “:8080” auth = true username = “bob” password = “hunter2” hardware = “mini,mini2”

[[frontend]] type = “status” bind = “127.0.0.1:8082” auth = false

The status frontend provides a simple html page with the state of the connected switchers and a list of the enabled frontends.

The http-api frontend provides a HTTP server that can return any of the supported fields as json and trigger commands by sending a HTTP POST request with formfields or json

Translations

The main language for the software is english, the translation for the project happens on https://hosted.weblate.org/projects/openswitcher

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyatem-0.10.0.tar.gz (4.0 MB view details)

Uploaded Source

File details

Details for the file pyatem-0.10.0.tar.gz.

File metadata

  • Download URL: pyatem-0.10.0.tar.gz
  • Upload date:
  • Size: 4.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for pyatem-0.10.0.tar.gz
Algorithm Hash digest
SHA256 5b3fcc736af0401041373c896547519b27b9b2ed1d290310922ef69fa20468b4
MD5 494a22be81ea96ab057c54b04635becb
BLAKE2b-256 dca6020358a54d725f28c7f0d5c0d60f17300f7563f01384a4c07ffa1557af8e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.10.0 This release

1 file

0.9.0

1 file

0.8.0

1 file

0.7.0

1 file

0.5.1

1 file

0.5.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page