I tinker with VLC using and... so far my "trick" is a bit dirty, namely I don't "control" it as much as I killall potential running instances then I start cvlc again with the right parameters. If you want continuity though you might not want that.
Note also that if you plan to do scripting check mpv as it's a bit easier to tinker with IMHO.
Python
Check https://pypi.org/project/python-vlc/ then for Python bindings, that should give you the affordances you need.