mirror of
https://github.com/onyx-and-iris/obsws-python.git
synced 2024-11-22 12:50:53 +00:00
commit
dc6829434c
1
.gitignore
vendored
1
.gitignore
vendored
@ -20,7 +20,6 @@ wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
setup.py
|
||||
MANIFEST
|
||||
|
||||
# Unit test / coverage reports
|
||||
|
14
README.md
14
README.md
@ -12,7 +12,7 @@ Not all endpoints in the official documentation are implemented.
|
||||
|
||||
- [OBS Studio](https://obsproject.com/)
|
||||
- [OBS Websocket v5 Plugin](https://github.com/obsproject/obs-websocket/releases/tag/5.0.0)
|
||||
- Python 3.11 or greater
|
||||
- Python 3.10 or greater
|
||||
|
||||
### How to install using pip
|
||||
|
||||
@ -44,7 +44,7 @@ Import and start using, keyword arguments are as follows:
|
||||
Example `__main__.py`:
|
||||
|
||||
```python
|
||||
from obsstudio_sdk import reqs as obs
|
||||
import obsstudio_sdk as obs
|
||||
|
||||
# pass conn info if not in config.toml
|
||||
cl = obs.ReqClient(host='localhost', port=4455, password='mystrongpass')
|
||||
@ -60,15 +60,14 @@ Method names for requests match the API calls but snake cased.
|
||||
example:
|
||||
|
||||
```python
|
||||
from obsstudio_sdk import reqs as obs
|
||||
cl = obs.ReqClient(host='localhost', port=4455, password='mystrongpass')
|
||||
|
||||
# load conn info from config.toml
|
||||
cl = obs.ReqClient()
|
||||
|
||||
# GetVersion
|
||||
resp = cl.get_version()
|
||||
|
||||
# SetCurrentProgramScene
|
||||
cl.set_current_program_scene()
|
||||
cl.set_current_program_scene("BRB")
|
||||
```
|
||||
|
||||
For a full list of requests refer to [Requests](https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#requests)
|
||||
@ -80,7 +79,8 @@ When registering a function callback use the name of the expected API event in s
|
||||
example:
|
||||
|
||||
```python
|
||||
cl = EventClient()
|
||||
# load conn info from config.toml
|
||||
cl = obs.EventClient()
|
||||
|
||||
def scene_created(data):
|
||||
...
|
||||
|
16
examples/events/README.md
Normal file
16
examples/events/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
## About
|
||||
|
||||
Registers a list of callback functions to hook into OBS events.
|
||||
|
||||
## Use
|
||||
|
||||
Simply run the code and trigger the events, press `<Enter>` to exit.
|
||||
|
||||
This example assumes the existence of a `config.toml`, placed next to `__main__.py`:
|
||||
|
||||
```toml
|
||||
[connection]
|
||||
host = "localhost"
|
||||
port = 4455
|
||||
password = "mystrongpass"
|
||||
```
|
20
examples/hotkeys/README.md
Normal file
20
examples/hotkeys/README.md
Normal file
@ -0,0 +1,20 @@
|
||||
## About
|
||||
|
||||
Sets up some hotkeys to trigger certain actions. Registers a callback function to notify of scene switch event.
|
||||
|
||||
Requires [Python Keyboard library](https://github.com/boppreh/keyboard).
|
||||
|
||||
## Use
|
||||
|
||||
Simply run the code and press the assigned hotkeys. Press `ctrl+enter` to exit.
|
||||
|
||||
This example assumes the existence of a `config.toml`, placed next to `__main__.py`:
|
||||
|
||||
```toml
|
||||
[connection]
|
||||
host = "localhost"
|
||||
port = 4455
|
||||
password = "mystrongpass"
|
||||
```
|
||||
|
||||
It also assumes the existence of scenes named `START`, `BRB` and `END`.
|
14
examples/scene_rotate/README.md
Normal file
14
examples/scene_rotate/README.md
Normal file
@ -0,0 +1,14 @@
|
||||
## About
|
||||
|
||||
Collects the names of all available scenes, rotates through them and prints their name.
|
||||
|
||||
## Use
|
||||
|
||||
This example assumes the existence of a `config.toml`, placed next to `__main__.py`:
|
||||
|
||||
```toml
|
||||
[connection]
|
||||
host = "localhost"
|
||||
port = 4455
|
||||
password = "mystrongpass"
|
||||
```
|
@ -7,9 +7,9 @@ def main():
|
||||
resp = cl.get_scene_list()
|
||||
scenes = reversed(tuple(di.get("sceneName") for di in resp.scenes))
|
||||
|
||||
for sc in scenes:
|
||||
print(f"Switching to scene {sc}")
|
||||
cl.set_current_program_scene(sc)
|
||||
for scene in scenes:
|
||||
print(f"Switching to scene {scene}")
|
||||
cl.set_current_program_scene(scene)
|
||||
time.sleep(0.5)
|
||||
|
||||
|
||||
|
@ -4,7 +4,11 @@ import json
|
||||
from pathlib import Path
|
||||
from random import randint
|
||||
|
||||
import tomllib
|
||||
try:
|
||||
import tomllib
|
||||
except ModuleNotFoundError:
|
||||
import tomli as tomllib
|
||||
|
||||
import websocket
|
||||
|
||||
|
||||
|
6
setup.py
6
setup.py
@ -5,7 +5,7 @@ from setuptools import find_packages, setup
|
||||
HERE = pathlib.Path(__file__).parent
|
||||
|
||||
|
||||
VERSION = "1.0.2"
|
||||
VERSION = "1.0.3"
|
||||
PACKAGE_NAME = "obsstudio_sdk"
|
||||
AUTHOR = "Adem Atikturk"
|
||||
AUTHOR_EMAIL = "aatikturk@gmail.com"
|
||||
@ -18,7 +18,7 @@ LONG_DESCRIPTION = (HERE / "README.md").read_text()
|
||||
LONG_DESC_TYPE = "text/markdown"
|
||||
|
||||
# Dependencies for the package
|
||||
INSTALL_REQUIRES = ["websocket-client"]
|
||||
INSTALL_REQUIRES = ["websocket-client", "tomli >= 1.1.0;python_version < '3.11'"]
|
||||
|
||||
# Development dependencies
|
||||
EXTRAS_REQUIRE = {
|
||||
@ -31,7 +31,7 @@ EXTRAS_REQUIRE = {
|
||||
}
|
||||
|
||||
# Python version requirement
|
||||
PYTHON_REQUIRES = ">=3.11"
|
||||
PYTHON_REQUIRES = ">=3.10"
|
||||
|
||||
setup(
|
||||
name=PACKAGE_NAME,
|
||||
|
Loading…
Reference in New Issue
Block a user