This returns cinesync URLs for controlling cineSync, and also defines do_* variants that run those URLs. For example, cinesync.commands.join_session("ASDF1234") returns the string "cinesync://session/ASDF1234". cinesync.commands.do_join_session("ASDF1234") sends cineSync that URL (via the OS).
Call this with the media file and the frame number, and it will return the path to the saved frame image, or None if it does not exist. To enumerate annotated frames on a file, first iterate over the annotations and check if drawing_objects is empty. If its length is non-zero, call saved_frame_path on the event and use the result. (Just calling saved_frame_path for every frame and using the results would incorrectly give a path for a frame that had previously been saved, but then erased in cineSync).