This project aims to refactor a monolithic video processing toolkit into a modular, backend-driven framework. It allows users to seamlessly execute video processing tasks on different environments, from local machines to remote CI/CD pipelines, and offers a dedicated Textual UI for Android devices running Termux.
📖 For a deep dive into the project's design and structure, please refer to ARCHITECTURE.md.
-
Clone the repository:
git clone https://github.com/your-username/vucar.git cd vucar -
Install core Python dependencies (for PC CLI):
pip install . -
For Android (Termux) TUI: If you plan to use the
vucarTextual UI on an Android device via Termux, you will need to install additional dependencies:# From the project root cd droid/ ./install_deps.sh
This script will guide you through installing system-level tools (like FFmpeg, gh, gnupg) and the Python
textuallibrary, which is an optional dependency for PC users.
If you intend to use the github backend, vucar requires a specific git_context setup to manage interactions with your GitHub repository without affecting your main project's Git history.
Please refer to the detailed guide for a one-time setup: assets/docs/setup_guide.md
This guide covers:
- Required command-line tools (Git, GitHub CLI, GnuPG, ExifTool).
- How to initialize the
config/git_context/directory as a separate Git repository. - How to configure it to push to your desired GitHub repository.
To run the video processing toolkit from your PC, use the vucar command followed by the run subcommand and the path to your video file.
vucar run <path_to_video_file> [OPTIONS]--backend, -b: Specify the backend to use. Options:local(default),github.--verbose, -v: Show raw output for debugging.
Run locally:
vucar run my_video.mp4 --backend localRun via GitHub Actions:
vucar run my_video.mp4 --backend githubAfter running the droid/install_deps.sh script, you can launch the touch-friendly Textual UI:
# From the project root
python3 droid/tui_app.pyThe TUI will guide you through selecting video files, choosing presets, and executing processing tasks directly on your Android device.
Create a config.toml file in the project root with your GitHub repository details and GPG key information:
[user]
repo = "your-username/your-repo"
workflow_file = "your_workflow.yml"
default_branch = "main"
action_gpg_recipient = "github-action-gpg-key-id"
user_gpg_recipient = "your-gpg-key-id"Create a presets.toml file in the project root for FFmpeg command presets:
[preset_name_1]
name = "Preset 1 Description"
command = "ffmpeg -i {input} -c:v libx264 -crf 23 {output}"
[preset_name_2]
name = "Preset 2 Description"
command = "ffmpeg -i {input} -c:v libvpx-vp9 -crf 30 {output}"Refer to ARCHITECTURE.md for the most up-to-date and detailed project structure.