import obsstudio_sdk as obs class Observer: def __init__(self, cl): self._cl = cl self._cl.callback.register( [ self.on_current_program_scene_changed, self.on_scene_created, self.on_input_mute_state_changed, self.on_exit_started, ] ) print(f"Registered events: {self._cl.callback.get()}") def on_current_program_scene_changed(self, data): print(f"Switched to scene {data['sceneName']}") def on_scene_created(self, event, data): """A new scene has been created.""" print(f"{event}: {data}") def on_input_mute_state_changed(self, event, data): """An input's mute state has changed.""" print(f"{event}: {data}") def on_exit_started(self): print(f"OBS closing!") self._cl.unsubscribe() if __name__ == "__main__": cl = obs.EventsClient() observer = Observer(cl) while cmd := input(" to exit\n"): if not cmd: break