~/projects/clipvault

SOFTWARE2026live

ClipVault

A self-hosted system that uploads OBS replay-buffer clips from a desktop client to a home server, which processes the video and generates a shareable link that embeds as a playable video in Discord.

TIMELINE
Sep 2026
TEAM
Solo
CONTEXT
Personal project

Overview

ClipVault is a self-hosted pipeline that turns an OBS replay-buffer save into a shareable link. A desktop tray client listens for OBS’s replay-buffer event, uploads the resulting clip to a home server, and the server processes and hosts the video behind a short link that unfurls as a playable video embed in Discord.

Features

  • Captures clips via OBS’s existing replay-buffer hotkey, with no OBS plugin required
  • Automatically re-targets the OBS Game/Window Capture source based on the running game
  • Uploads clips in resumable 8 MiB chunks to tolerate a dropped connection
  • Lossless remux when the source codec allows it, with a transcode fallback otherwise
  • Crash-safe job queue that requeues any clip stuck mid-processing after a worker restart
  • Shareable short links with OpenGraph video tags so links embed as inline playable video in Discord
  • Non-destructive clip trimmer with fast (copy) and precise (re-encode) modes and one-click undo
  • Per-viewer, per-day deduplicated view counts that ignore link-unfurler bots
  • Windows system tray client with autostart

How it works

A Rust/Tauri desktop client connects to OBS over obs-websocket and watches for the ReplayBufferSaved event, then uploads the clip in chunks to a Next.js API backed by Postgres. Uploads are handed to a pg-boss job queue, where a dedicated ffmpeg worker remuxes or re-encodes the clip and writes a faststart MP4; a Caddy instance serves the finished file with byte-range support so it streams directly into Discord’s video embed. Each clip gets a permanent share slug backed by a non-destructive trim history.