TallyPi was created to work with OBS as a script that fires whenever a video input source switches from program, preview, or idle modes.
Installing the Python version of the script requires a specific version of Python 3.9 with shared libraries installed, and then installing the Python script itself.
OBS 28 requires at least Python 3.6 shared libraries in order to execute Python scripts. On Windows this can be done using a Python 3.9 installer, and on MacOS this can be done using the Homebrew package manager.
Starting with version 28, OBS changed the way the Python distribution was loaded into its scripting plugin. Now, rather than being tied to a specific Python release, OBS will search for any available installation and attempt to use that. From the commit logs:
[OBS now] tries to find a best possible version (starting
with Python 3.10) down to and including Python 3.6 by existing file
naming conventions and loads the most recent variant it can find.
User specified search path is either a Python installation directory
(Windows), or a Framework directory containing `Python.framework`
(macOS). The dll or dylib names are composed automatically.
The Python home path is also composed automatically on macOS (where
it has to point inside the Framework directory).
If you are on a current version of MacOS for example, your can now set
your "Python Install Path" in the scripts settings dialog
to be /usr/local/Frameworks
. From there OBS 28 will search for an
appropriate Python version and load its libraries. Explicit versions
of Python do not need to be installed, so tools like pyenv
are not needed.
OBS 27 requires Python 3.9 shared libraries in order to execute
Python scripts. On Windows this can be done using a Python 3.9 installer,
and on MacOS or Linux this can be most easily managed through pyenv
.
To install pyenv
on MacOS I recommend first installing
Homebrew, and then installing pyenv
via:
brew update
brew install pyenv
On MacOS and Linux you can ask pyenv
to generate the shared libraries with:
CONFIGURE_OPTS=--enable-shared pyenv install 3.9.4
Once Python is installed, point OBS to the installation path by opening OBS and navigating to Tools -> Scripts -> Python Settings
Download the latest OBS Python script for TallyPi from the release page at https://github.com/deckerego/tally_pi/releases
Store the script wherever you like, then add the script to OBS by navigating
to Tools -> Scripts and adding the obs_tally_light.py
script
that you just downloaded.
Once the script is installed, you can use the settings interface to specify colors for idle/preview/program cameras, and map each camera source to an IP address or hostname that corresponds to a tally light.
If you are having trouble finding your lights by hostname, you can use either the HTML dashboard page or find_lights.sh command-line script to search your network for available lights. Either option will provide you with an IPv4 address for each light found which can be used to setup the OBS plugin.