ELITE EDITOR is a professional desktop video editor built with Python, PySide6 (Qt Widgets), and MoviePy. It aims to provide a real, production-grade editing experience with a modern UI, signature-driven effect controls, real drag-and-drop, integrated preview and render pipelines, and AI-assisted features. Status: βοΈ Active development (dev)
- Real MoviePy-based effects and composition (no placeholders) ποΈ
- QGraphicsView-based timeline with draggable/resizable clips and snapping βοΈ
- Signature-driven Properties Panel that auto-generates controls from MoviePy callables π§©
- Low-res preview renderer (fast iterations) + subprocess renderer for full exports β±οΈ
- Theming and persistent project format (.eep) for portability πΎ
- Planned & partial AI integration using Gemini for timeline insights and generation π§
Prerequisites:
- Python 3.11+ (recommended)
- FFmpeg (installed and discoverable via PATH)
Clone the repo and prepare a Python virtual environment:
git clone https://github.com/pro-grammer-SD/EliteEditor.git
cd EliteEditor
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txtRun the app:
python run.pyIf you see a splash and a window, the app is running β welcome! π
This project is actively in development. Follow these steps to contribute or run locally:
- Create a virtual environment and install dependencies (see Quick Start).
- Use a code formatter and linter before committing (e.g.
black,ruff). - Run the application from the repository root using
python run.py. - Unit tests (when available):
# Example (if tests exist)
pytest -qDev notes:
- Config, cache, and projects are stored under your user folder (e.g.
%USERPROFILE%/.eliteeditor/). - The bundled font is located at
font/font.ttfand the app attempts to load it at startup. - The main application entrypoint is
run.py.
core/β core data models, project & registry systems (MoviePy reflection, timeline markers)ui/β all Qt widgets (timeline view, panels, main window, style files)rendering/β preview & subprocess renderersai/β Gemini integration scaffolding and AI helperstimeline/β timeline & clip models used by the UIrequirements.txtβ pinned Python dependencies
- The app reads configuration from the project-specific files and a global config under
~/.eliteeditor. - To enable Gemini AI features, set an environment variable named
ELITE_EDITOR_GEMINI_API_KEYor enter your key in the Settings β AI panel at runtime.
Note: Gemini integration requires the official client and an enabled API key β the app will gracefully disable AI features if no key is present.
- The UI styling is loaded exclusively from
ui/style.qss(orui/style_light.qssfor light theme). The stylesheet should be the single source of truth for look-and-feel. - The bundled font is at
font/font.ttf. The app attempts to load this font at startup; if it fails it falls back to the system default.
We welcome PRs and issues. Please follow these guidelines for contributions:
- Open an issue describing the bug, enhancement, or feature idea.
- Create a topic branch off
mainnamed likefeat/some-featureorfix/issue-xyz. - Write tests for new behavior when applicable; keep changes focused.
- Run linters and formatters, then open a PR and reference the issue.
Be civil and constructive β we prefer clear, respectful communication. π€
- If the custom font doesn't appear, check the logs for font loading messages and confirm
font/font.ttfexists. - If styles appear missing, ensure
ui/style.qssis present and readable; the app reads the QSS file at startup and applies it globally. - For render/export issues, verify FFmpeg is installed and reachable via PATH.
This repository uses an open-source license (update as needed). Please include a short LICENSE file in the root.
We expect contributors to follow a respectful Code of Conduct.
If you need help or want to request features, please open an issue on this repository. For quick dev questions, add a note to the issue and tag maintainers.
Thanks for checking out Elite Editor β contributions are welcome and appreciated! π