How abraham-ny/vidpipeline works
This Go service accepts multipart video uploads, validates and queues them, then processes each job concurrently into video variants, thumbnails, previews, and metadata. The API also exposes job status, an in-memory job list, a processed-video library, and its files. The graph separates upload/validation, queueing, processing stages, and API access to job and artifact state. Processor details are based on partial excerpts; the README documents additional outputs and API capabilities.
Main entry points: processor.go Processor · handler.go API handlers · pool.go Worker pool · main.go HTTP server
Components 15
HTTP API
- HTTP server
main.go - API handlers
api/handler.go
Job orchestration
- Worker pool
worker/pool.go - Job registry
model/job.go - Job state
model/job.go
Video processing
- Processor
processor/processor.go - Probe and metadata
processor/processor.go - Resolution transcodes
processor/processor.go - Thumbnail generation
processor/processor.go - GIF and clip previews
processor/processor.go - Title parsing
processor/processor.go
Processed library
- Processed files
- Video metadata
model/job.go
Other components
- API client
- FFmpeg tools
Connections 23
- API client → HTTP server: sends requests
- HTTP server → API handlers: dispatches
- API handlers → FFmpeg tools: validates with ffprobe
- API handlers → Processed files: writes uploads
- API handlers → Worker pool: enqueues jobs
- Worker pool → Job registry: registers jobs
- Worker pool → Processor: dispatches jobs
- Processor → Job state: updates progress
- Processor → Probe and metadata: probes source
- Processor → Resolution transcodes: runs transcodes
- Processor → Thumbnail generation: generates thumbnails
- Processor → GIF and clip previews: generates previews
- Processor → Title parsing: parses title
- Probe and metadata → FFmpeg tools: calls ffprobe
- Resolution transcodes → FFmpeg tools: calls ffmpeg
- Thumbnail generation → FFmpeg tools: calls ffmpeg
- GIF and clip previews → FFmpeg tools: calls ffmpeg
- Processor → Processed files: writes artifacts
- Processor → Video metadata: builds metadata
- Video metadata → Processed files: saved as meta.json
- API handlers → Job registry: reads job status and list
- API handlers → Processed files: reads library metadata
- API handlers → Processed files: serves video files