PyATEM
======
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
Raw data
{
"_id": null,
"home_page": "https://git.sr.ht/~martijnbraam/pyatem",
"name": "pyatem",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Martijn Braam",
"author_email": "martijn@brixit.nl",
"download_url": "https://files.pythonhosted.org/packages/dc/a6/020358a54d725f28c7f0d5c0d60f17300f7563f01384a4c07ffa1557af8e/pyatem-0.10.0.tar.gz",
"platform": null,
"description": "PyATEM\n======\n\nLibrary implementing the ATEM video switcher protocol and a GTK3.0 application\n\n![Screenshot of the control application](https://brixitcdn.net/metainfo/openswitcher.png)\n\nInstallation\n------------\n\nInstall the pyatem protocol module::\n\n setup.py build\n sudo setup.py install\n\nBuild and install the gtk application and proxy::\n\n meson build\n meson compile -C build\n sudo meson install -C build\n\nRun the application::\n\n switcher-control\n\nThere is also the `openswitcher-install.sh` script which will install the library, proxy and gtk application in\n/usr/local for a quick installation of all components.\n\nExternal dependencies\n---------------------\n\nThe only external dependency for pyatem is pyusb for the USB protocol support. It contains a native compiled module so\nit also requires a toolchain and python-dev headers at build time.\n\nOpenSwitcher depends on the python bindings from gtk3.\n\nOpenSwitcher-proxy only depends on pyatem for the core functionality but it might need more dependencies when loading\nspecific frontends or backends:\n\n* MQTT Frontend: paho-mqtt\n\nDeveloping\n----------\n\nTo work on the `pyatem` library the quickest way to get up and running is using the `openswitcher-develop.sh` script\nthat will install the `pyatem` library in devel mode where the files are symlinked to the git repository. It will also\ninstall the proxy and gtk application in /usr/local which will use the symlinked library.\n\nDevelopment happens on matrix on #openatem:brixit.nl\n\nProxy\n-----\n\nThere is also the `openswitcher_proxy` python module in this repository. It will run an API wrapper around one or\nmore ATEM switchers. There is currently a single api supported which is a HTTP REST api for sending commands and\nreading the mixer state.\n\nIt can be run by starting the module::\n\n python3 -m openswitcher_proxy --config /etc/myconfigfile.toml\n\nOr if the software installed it can be started using the launcher script::\n\n openswitcher-proxy --config /etc/myconfigfile.toml\n\nThe default config location is /etc/openswitcher/proxy.toml if not specified. Here's an example config:\n\n [[hardware]]\n id = \"mini\"\n label = \"Atem Mini\"\n address = \"192.168.2.84\"\n\n [[hardware]]\n id = \"mini2\"\n label = \"Local switcher\"\n address = \"usb\"\n\n [[frontend]]\n type = \"http-api\"\n bind = \":8080\"\n auth = true\n username = \"bob\"\n password = \"hunter2\"\n hardware = \"mini,mini2\"\n \n [[frontend]]\n type = \"status\"\n bind = \"127.0.0.1:8082\"\n auth = false\n\nThe status frontend provides a simple html page with the state of the connected switchers and a list\nof the enabled frontends.\n\nThe http-api frontend provides a HTTP server that can return any of the supported fields as json and\ntrigger commands by sending a HTTP POST request with formfields or json\n\n\nTranslations\n------------\n\nThe main language for the software is english, the translation for the project happens on\nhttps://hosted.weblate.org/projects/openswitcher\n",
"bugtrack_url": null,
"license": "LGPL3",
"summary": "Library implementing the Blackmagic Design Atem switcher protocol",
"version": "0.10.0",
"project_urls": {
"Homepage": "https://git.sr.ht/~martijnbraam/pyatem"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dca6020358a54d725f28c7f0d5c0d60f17300f7563f01384a4c07ffa1557af8e",
"md5": "494a22be81ea96ab057c54b04635becb",
"sha256": "5b3fcc736af0401041373c896547519b27b9b2ed1d290310922ef69fa20468b4"
},
"downloads": -1,
"filename": "pyatem-0.10.0.tar.gz",
"has_sig": false,
"md5_digest": "494a22be81ea96ab057c54b04635becb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3967609,
"upload_time": "2024-03-25T11:14:36",
"upload_time_iso_8601": "2024-03-25T11:14:36.099749Z",
"url": "https://files.pythonhosted.org/packages/dc/a6/020358a54d725f28c7f0d5c0d60f17300f7563f01384a4c07ffa1557af8e/pyatem-0.10.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-25 11:14:36",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pyatem"
}