Skip to content
 
 

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BridgeClip

Turn long videos into captioned short-form clips, on your own computer.

An open-source AI clipping app from BridgeMind. Drop in a podcast, stream or YouTube link, and BridgeClip finds the strongest moments, cuts them to 9:16 or 16:9, and burns in word-by-word captions.

MIT License Latest release Discord


Why BridgeClip?

  • No BridgeMind account or backend. BridgeClip runs on your machine and calls OpenRouter directly with your own provider accounts and keys. Optional social account connections use your Zernio account and API key. Your videos and keys do not pass through a BridgeMind server.
  • Pay only for what you use. Transcription and clip planning bill your OpenRouter account at their prices. Rendering happens locally with FFmpeg. BridgeClip shows estimated API cost when the providers return usable usage data.
  • Captions that look native. Nine styles (Viral, Hormozi, Bold, Clean, Minimal, Fire, Glow, Neon, Karaoke), each with a live preview before you render.
  • MIT licensed. Fork it, change it, ship it.

How it works

 Source video ──▶ Download ──▶ Transcribe ──▶ Find moments ──▶ Render
 (file or link)    yt-dlp      OpenRouter      OpenRouter        FFmpeg
                           MAI Transcribe 2    LLM ranks the     crop, captions,
                               word timings    best moments      one file per clip

Every run gets its own folder. The Library shows completed clips with virality scores, timecodes and tags. Jobs shows what is running or queued right now (up to two clipping runs go at once; more wait in a queue) and every earlier run, including completed, failed, cancelled and interrupted jobs; completed runs open their clips, and failed runs from this session can run again. Older runs without a saved status appear as unfinished. You can optionally connect social accounts through Zernio to publish or schedule a selected clip.

Download

Signed macOS builds for Apple silicon and Intel will appear on Releases after release testing. Those builds bundle Python, FFmpeg and yt-dlp. Until then, use the development setup below. Windows source builds are experimental and are not part of the supported release workflow.

On first launch, paste your OpenRouter key into the setup card:

Provider Used for Get a key
OpenRouter MAI Transcribe 2 transcription and choosing the moments to clip openrouter.ai

Keys are encrypted with your operating system's secure storage. If secure storage is unavailable, BridgeClip asks you to configure or unlock it before saving keys.

What leaves your computer

For a link, the app downloads the source using your network connection. Audio for MAI Transcribe 2 transcription goes to OpenRouter; transcript text for clip planning goes to OpenRouter. If the video has no audio or no speech, BridgeClip samples video frames and sends those images to OpenRouter for visual-only planning. Clips made through that fallback have no speech captions. If you connect social accounts, BridgeClip sends your Zernio API key to Zernio and receives account/profile metadata; platform sign-in occurs in your browser. When you choose Post or Schedule, BridgeClip uploads that clip to Zernio's media storage and sends its caption, selected accounts and publishing options to Zernio. Zernio then publishes to those platforms. Provider accounts, charges, retention and data policies are governed by those services.

Downloads and intermediate media are held in a private work/ directory under BridgeClip’s per-user application data folder. BridgeClip removes job work on completion, failure, and cancellation, and clears stale work when it next starts after a forced shutdown. A local video you selected stays where it was. Rendered clips, the transcript, plan and job_output.json remain in a run folder under your chosen Output folder (by default, ~/BridgeClip). That JSON includes the source URL or local path and video title. Delete the run folder to remove those local outputs.

Settings, the last synced list of connected accounts (platforms, handles and Zernio IDs), local posting history, and upload retry records live in Electron's per-user application data folder. Posting history can include clip paths and titles, account handles, targets, status and links; retry records can include a clip path and an uploaded media URL. Changing or removing the Zernio key hides the old workspace's records and renames its cache files as private quarantine copies. Those copies remain on disk until a later cleanup after 30 days; to erase them immediately, quit the app and delete the zernio-*.quarantine-* files from its application data folder. Key changes do not delete media or posts already held by Zernio or a social platform. Diagnostic logs live in the per-user logs folder. Remove provider keys in Settings to clear their encrypted saved copies, and review logs before sharing them in an issue.

Only download or clip material you have permission to use. Remote sites may limit downloads or change their access rules.

Develop

Prerequisites: Node.js 22, Python 3.12, and FFmpeg with the libass-backed ass filter for captions. The clipping engine, model, fonts, and locked Python dependencies are included in this repository. In development, BridgeClip uses FFmpeg from engine-bin/ when it exists, then falls back to your PATH. Provider keys are needed for live jobs, not tests.

git clone https://github.com/bridge-mind/bridgeclip
cd bridgeclip
python3.12 -m venv engine/.venv
engine/.venv/bin/pip install --require-hashes -r engine/requirements.lock
npm ci
npm run dev

BridgeClip finds its in-repo engine and virtual environment automatically. Settings → System check shows the Python, yt-dlp, FFmpeg, and engine checks; set Python path in development if you use another interpreter.

The release workflow packages the in-repo engine and media tools into signed macOS builds. For local packaging, first run bash scripts/prepare-resources.sh arm64 (or x64 on Intel), then follow the release guide. Signing credentials are still required for a distributable build.

First run and troubleshooting

  1. Add your OpenRouter key in the setup card. A saved key is never shown again; paste a new one to replace it or choose Remove key in Settings.
  2. Run Settings → System check. In development, set the Python path if your local virtual environment is not detected.
  3. Choose a local video with the file picker or paste a public video link, select clip lengths, framing, and caption style, then start. Smart framing automatically follows faces and arranges screen shares with facecams shot by shot. The optional AI vision check improves ambiguous layouts and can add OpenRouter cost. Dropping a local file opens the picker so you can grant access. Completed runs appear in Library and in your output folder.
  4. If a link fails, check it in a signed-out browser or download it yourself and select the local file. If a run fails, use the in-app error and System check first; logs intentionally omit raw provider responses and private source details.
Script What it does
npm run dev Run the app with hot reload
npm run typecheck Type-check the main process and renderer
npm run lint Check TypeScript and JavaScript source with ESLint
npm run build Production build into out/
npm run test:bridge Run Python bridge regression tests
engine/.venv/bin/python -m pytest -q engine/tests Run the clipping engine tests after installing pytest
npm run test:release Check macOS updater metadata merging
npm run test:renderer Check renderer state and parsing regressions
npm run test:main Check desktop security and pipeline regressions
npm run test:zernio Check social account, upload and posting flows against local mocks
npm run dist:mac Package the current Mac architecture into dist/ after preparing matching resources (signing needs a Developer ID)
npm run icons Regenerate the app icon from scripts/icon/ (macOS)

Project layout

src/main/        Electron main process: settings, pipeline runner, IPC, optional Zernio posting
src/preload/     The typed window.bridgeclip API exposed to the renderer
src/renderer/    React UI (Create, Library, Jobs, Accounts, Automations, Settings)
src/shared/      Product constants shared by main and renderer
bridge/          Python worker protocol and network guard
engine/          BridgeClip clipping engine, assets, locked Python dependencies, and tests
scripts/icon/    Icon and logo generators

The visual system (tokens, components and rules) is documented in DESIGN.md. The desktop trust boundaries and bridge protocol are described in Architecture. The open-source readiness checklist tracks the remaining release gates and maintenance priorities.

Contributing

Issues and pull requests are welcome. Read CONTRIBUTING.md for setup, review expectations and checks. Security reports should follow SECURITY.md, not a public issue. The community guidelines are in CODE_OF_CONDUCT.md.

License

MIT © BridgeMind

About

Open-source AI video clipping desktop app by BridgeMind

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages