A semantic video search plugin for DaVinci Resolve that allows you to search through your media pool using natural language queries and automatically add matching clips to your timeline.
- Semantic Video Search: Search your media pool using natural language (e.g., "woman walking", "car driving")
- Smart Upload Management: Track which files have been processed and upload only new files
- Background Job Tracking: Monitor upload and processing jobs with real-time status updates
- Timeline Integration: Add search results directly to your timeline with precise timing
- Dark/Light Theme: Modern UI with theme toggle support
- Python 3.12+
- uv (recommended) or pip
- DaVinci Resolve Studio (paid version required for scripting support)
# Navigate to plugin directory
cd plugin
# Create virtual environment and install dependencies
uv venv
source .venv/bin/activate
uv pip install -e .
# Or install globally via pip
pip install PyQt6 requests watchdogYou can preview the UI without DaVinci Resolve:
# Navigate to plugin directory
cd plugin
# Activate virtual environment
source .venv/bin/activate
# Run the plugin
python clipabit.py
# Close the window (Cmd+Q on Mac) and re-run to see new changesCopy the plugin to DaVinci Resolve's Scripts folder:
macOS:
cp "plugin/clipabit.py" "$HOME/Library/Application Support/Blackmagic Design/DaVinci Resolve 20/Fusion/Scripts/Edit/"Windows (PowerShell):
Copy-Item "plugin\clipabit.py" "$env:APPDATA\Blackmagic Design\DaVinci Resolve\Support\Fusion\Scripts\Utility\"Linux:
cp "plugin/clipabit.py" "$HOME/.local/share/DaVinci Resolve/Fusion/Scripts/Edit/"- Open DaVinci Resolve
- Open or create a project
- Navigate to: Workspace → Scripts → clipabit
- The plugin window will open
Note: Scripting is only available in DaVinci Resolve Studio (paid version). The free version does not support Python scripting.
# 1. Make changes to clipabit.py in your editor
# 2. Run to preview
cd plugin
source .venv/bin/activate
python clipabit.py
# 3. Close the window (Cmd+Q) and re-run to see new changes
# 4. When ready, copy to Resolve
cp "clipabit.py" "$HOME/Library/Application Support/Blackmagic Design/DaVinci Resolve 20/Fusion/Scripts/Edit/"For automatic copying during development:
# From the repository root
source plugin/.venv/bin/activate
python watch_clipabit.py --source plugin/clipabit.pyThis watches for changes and automatically copies to Resolve's Scripts folder.
- Enter a natural language query in the search box (e.g., "person walking", "sunset scene")
- Click Search or press Enter
- Browse the results in the grid view
- Click Add to timeline on any result to insert it
- Click the ⚙ (settings) button in the top-right
- Select files to upload for processing
- Monitor progress via Active Jobs/Debug button
- Click ⚙ (settings) button
- Click Toggle Dark/Light Mode
Set the CLIPABIT_ENVIRONMENT environment variable:
dev(default) - Development environmentprod- Production environmentstaging- Staging environment
| Platform | Scripts Location |
|---|---|
| macOS | ~/Library/Application Support/Blackmagic Design/DaVinci Resolve 20/Fusion/Scripts/Edit/ |
| Windows | %APPDATA%\Blackmagic Design\DaVinci Resolve\Support\Fusion\Scripts\Utility\ |
| Linux | ~/.local/share/DaVinci Resolve/Fusion/Scripts/Edit/ |
- Pushes to
stagingrun semantic-release automatically. - Tags are created as
vX.Y.Z-staging.N. plugin/CHANGELOG.mdandplugin/pyproject.tomlare updated.
- Use GitHub Actions workflow Promote staging to main.
- It asks for release type (
patch,minor,major). - It merges
staging→main, then runs semantic-release onmainwith the chosen release type.
- Run Permissions Probe workflow to verify whether
GITHUB_TOKENhas write access. - If it fails, org-level settings likely block write permissions.
- Likely cause: You're using the free version of DaVinci Resolve
- Solution: Scripting requires DaVinci Resolve Studio ($295)
- This is normal when running standalone (outside of Resolve)
- The UI will still work, but media pool features are disabled
- Restart DaVinci Resolve completely
- Make sure you copied to the correct folder for your Resolve version
- Check Preferences → System → External scripting using is set to Local
plugin/
├── clipabit.py # Main plugin file
├── pyproject.toml # Dependencies
├── README.md # This file
└── uv.lock # Dependency lock file
watch_clipabit.py # Development file watcher (in repo root)
- PyQt6 Interface: Modern, responsive UI with dark/light themes
- Modal.com Backend: Serverless video processing
- Pinecone Vector Database: Semantic search with CLIP embeddings
- Cloudflare R2: Video file storage