# Clipshelf (working title)

Local-first VOD organizer + editor for streamers who record full sessions
with OBS.

- **Timeline timestamping** — games POST events (GSI or plugins) while you
  play; kills, matches and game chapters land on your recording's own clock
  and render as a scrubbable timeline per VOD.
- **CUT editor** — a full in-browser timeline editor over your recordings;
  exports render through headless Chrome so output matches the preview.
- **Manual clipping** — pick a range on the timeline, cut it losslessly.

## Requirements

- Python 3.11+
- ffmpeg on PATH
- optional: Node.js 20+ and Chrome/Edge (only for editor renders)
- optional: OBS WebSocket enabled (stamps events onto the recording clock)

## Run

    python run.py        # or double-click run.bat on Windows

First run asks for your OBS recordings folder and the OBS websocket
password, then opens http://127.0.0.1:8420/.

## Layout

    run.py / run.bat        entry points
    src/clipshelf/            application package (FastAPI app on :8420)
    src/clipshelf/frontend/   the UI (no build step)
    render/                 headless-Chrome render worker (Node)
    data/                   your library, projects, renders (created on run)
    plugins/                drop-in plugins (created on run; see docs)
