Snitch

A self-hosted library for processing and searching gaming clips.

Overview

Snitch ingests video, schedules processing and makes clip transcripts searchable, including by identified speaker.

Problem

Finding a particular moment in a growing collection of clips requires more than browsing filenames.

Architecture

The application stores its data in PostgreSQL with pgvector. A remote worker processes explicitly scheduled transcription and voice jobs; a separately configured embeddings endpoint supports semantic search. Search combines textual and semantic retrieval.

  1. Video import
  2. Scheduled jobs
  3. Remote worker
  4. Transcription / voice
  5. PostgreSQL / search
Simplified component flow.

Engineering decisions

Speaker matches are based on human-validated references. Automatic attribution is disabled by default and controlled by an administrator. Transcription corrections retain their history and update the search index.

Challenges

Speaker attribution needs correction and review workflows, while searchable transcript corrections must survive reindexing and concurrent edits.

Reliability & security

Workers use credentials; local accounts require approval, and Discord is optional. Voice profile deletion removes associated samples and attributions.

Testing

The repository includes automated integration tests and documented phase reports. Real voice models have yet to be validated on real clips; recognition quality is not guaranteed.

Links

Repository · Documentation · Lab