from http.server import HTTPServer, BaseHTTPRequestHandler from urllib.parse import urlparse, parse_qs import threading import obspython as obs def set_current_scene(scene_name): scenes = obs.obs_frontend_get_scenes() for scene in scenes: name = obs.obs_source_get_name(scene) if name == scene_name: obs.obs_frontend_set_current_scene(scene) return 0 return 1 class RqstHandler(BaseHTTPRequestHandler): def do_GET(self): up = urlparse(self.path) if up.path == '/Scene': qc = parse_qs(up.query) set_current_scene(qc.get('name', [''])[0]) self.send_response(200) self.end_headers() elif up.path == '/ping': self.send_response(200) self.end_headers() def log_message(self, format, *args): pass def run(name): httpd = HTTPServer(('127.0.0.1', 9302), RqstHandler) httpd.serve_forever() t = threading.Thread(target=run, args=(1,), daemon=True) t.start()