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.
- Video import
- Scheduled jobs
- Remote worker
- Transcription / voice
- PostgreSQL / search
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.