Skip to content

feat(video_compose): allow a job-scoped browser executable for Remotion renders - #620

Merged
calesthio merged 1 commit into
OpenMontageInc:mainfrom
Alan5168:feat/remotion-browser-executable
Nov 8, 2026
Merged

calesthio merged 1 commit into
OpenMontageInc:mainfrom
Alan5168:feat/remotion-browser-executable

Conversation

@Alan5168

@Alan5168 Alan5168 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Closes #619.

What

�ideo_compose's Remotion path always let Remotion locate a browser automatically (bundled Chromium or system default). On locked-down or heterogeneous machines (such as air-gapped workstations, pinned enterprise Chromium/Edge installs, or multi-job workflows with isolated runtimes), passing an explicit browser binary is necessary.

  • Add optional
    emotion_browser_executable property to VideoCompose.input_schema.
  • Add _append_remotion_browser_executable() helper: validates the path exists and is a file, then appends --browser-executable=.
  • Wire into both the standard _remotion_render() and _render_via_atelier() render execution paths.
  • Forward
    emotion_browser_executable through the high-level _render() entry point.
  • Fail fast with clear error message if the specified path does not exist or is not a file.

Backwards-compatible: when omitted, behavior is identical to current upstream.

Tests

Added 5 tests in ests/tools/test_remotion_diagnostics.py:

  • est_remotion_browser_executable_is_passed_through: verifies --browser-executable= is appended.
  • est_remotion_browser_executable_fails_on_missing_file: verifies clear error when file is missing.
  • est_high_level_render_forwards_browser_executable: verifies high-level _render forwards the input.
  • est_no_browser_executable_flag_when_not_requested: verifies flag is omitted when not specified.
  • est_atelier_render_appends_browser_executable: verifies atelier mode also appends the flag.

All 10 tests in est_remotion_diagnostics.py pass.

…ion renders

Remotion renders default to locating a browser automatically (bundled Chromium
or system default). On locked-down or heterogeneous machines (e.g. air-gapped
Windows setups, pinned enterprise browser binaries, or multi-job workflows),
passing an explicit browser binary is necessary.

- Add remotion_browser_executable to VideoCompose.input_schema.
- Add _append_remotion_browser_executable() helper validating file existence
  and appending --browser-executable=<path>.
- Wire into both standard _remotion_render and atelier render paths.
- Forward from execute(operation="render") high-level entrypoint.

Tests: test flag pass-through, fail-fast on nonexistent file, high-level
forwarding, omitted flag case, and atelier mode pass-through.

Closes OpenMontageInc#619

@calesthio calesthio left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding a job-scoped browser override. I reviewed the full diff and the standard/atelier command construction: the path is validated before execution, passed as one argv element, and forwarded through the high-level render path. In a clean checkout, python -m pytest -q -p no:cacheprovider tests/tools/test_remotion_diagnostics.py passed 10 tests, including the new standard, atelier, missing-file and absent-option cases. The flag matches Remotion's documented CLI. No browser install, live provider call or full video render was performed. https://www.remotion.dev/docs/cli/render

@calesthio calesthio closed this Nov 7, 2026
@calesthio calesthio reopened this Nov 7, 2026
@calesthio
calesthio merged commit 2ad8a16 into OpenMontageInc:main Nov 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

video_compose: allow a job-scoped browser executable for Remotion renders

2 participants