My goal is to call blender form the command line with a set of arguments to use the built in 2D video stabilization tools.
I have been able to (via the bpy API):
- Get parameters from command line call
- load a new clip
- add a marker (to track)
- position the marker
- 'select' the marker/track (not sure if needed)
This is all possible without relying on bpy.ops
Unfortunately now I need to access the following functionality programmatically:

My main question: I can't find a way to get to that (bpy.ops.clip.stabilize_2d_add()). I have no idea what context I would need to switch to to make this a valid python call.
At this point I also notice the transition from doing everything in code to having to hunt through the UI workflow for ways to replicate UI functionality. I am wondering if I shouldn't need to call bpy.ops.clip.stabilize_2d_add() at all and should instead find the underlying functionality?
The part that comes right after this, which is making the stabilized track is completely lost to me as well. Am I going in the wrong direction?
Any help would be greatly appreciated.
overrideis hardcoded. How did you get the values you hardcode it to? – BorisKourt Mar 02 '17 at 22:45, 'active_object': bpy.context.object, 'edit_object': bpy.context.object, 'selected_objects': [helper]where I set thehelper = bpy.data.objects['Empty']and then adjustedoverride['selected_objects'] = [helper]andoverride['active_object'] = helper... This allowed me to call anotherbpy.ops.anim.keyframe_insert(override, type='Location')to create a new keyframe via python. – Samoth Mar 02 '17 at 23:04