OpenCut-app / OpenCut-app/OpenCut

[FEATURE] Feature Request: Python API for Batch Asset/Subtitle Management & Pipeline Automation

Open
#528 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
89.8k
Forks
8.9k
PR merge metrics
No merged PRs in 30d

Description

Problem

Currently, users must manually perform repetitive editing tasks through the GUI. This creates bottlenecks for:

Batch subtitle import/export (SRT/VTT)
Media asset management at scale
Automated timeline assembly workflows
Integration with external tools (ML captioning, QC systems)

Manual workflows make it impossible to build reusable editing pipelines or integrate OpenCut into production environments.

Solution

Implement Python API with this core functionality:

import opencut

# 1. Batch processing
project = opencut.load_project("demo")
project.import_subtitles(["intro.srt", "scene_*.vtt"], format="vtt")
project.export_assets(output_dir="/exports", pattern="*.mp4")

# 2. Timeline automation
timeline = project.create_timeline()
timeline.auto_sequence(clips=project.assets, transition="crossfade")
timeline.apply_template("news_package")
timeline.render("final.mp4", preset="4k")

# 3. Extensibility hooks
@opencut.hook("pre_render")
def color_correction(timeline):
    timeline.apply_lut("film_emulation.cube")

External integration

from autocaptions import generate_subs
project.import_subtitles(generate_subs("presentation.mp4"))
Alternative
Option Drawback
CLI Limited workflow composability
JS API Incompatible with Python ML stack
External scripts No project state access
Anything else?

Use Cases:

  • Newsrooms: Auto-daily highlight reels
  • Education: Bulk lecture processing
  • Localization: Multi-language subtitles

Roadmap:

  1. v0.5: Read-only API
  2. v1.0: Asset/subtitle write ops
  3. v1.5: Full timeline control

Tech Notes:

  • Bindings: Pybind11/Cython
  • Backend: Existing FFmpeg integration
  • Security: Plugin sandboxing

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing project architecture and its FFmpeg integration, then compare them with the proposed Python API, bindings, and plugin-sandboxing notes. The issue does not identify files, tests, or a settled scope; done would require agreeing on a roadmap phase and implementing its defined API surface.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, typescript
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.