cr-transcoder is a server based architecture for transcoding, storing and providing metadata enriched audio downloads.
To install dependencies:
bun installTo start the development containers locally:
bun devflowchart TD
Client["Client Application"]
Redis["Redis (BullMQ): Job Queue System"]
Worker["Elysia Worker Server: Transcoding Service"]
Minio["Minio Object Storage: 30-day retention"]
Check{"Format exists? TxId updated?"}
Trans["ffmpeg Processing - Audio Transcoding - Metadata Embedding - Zip Creation"]
Store["Store Processed Files"]
URL["Return Pre-signed S3 Object URL"]
Client -->|"Request Download (Release ID + Format)"| Check
Check -->|"Cache Hit"| URL
Check -->|"Cache Miss"| Redis
Redis -->|"Queue Job"| Worker
Worker --> Trans
Trans -->|"Processed Files"| Store
Store -->|"Object Location"| URL
URL -->|"Temporary Download URL"| Client
subgraph "Storage System"
Minio
end
subgraph "Supported Formats"
Formats["Lossless: - ALAC (Apple Lossless/MP4) - FLAC - WAV - AIFF Lossy: - MP3 (320/192 kbps) - AAC (MP4) - OGG (Vorbis)"]
end
subgraph "Processing Pipeline"
Trans
end
classDef primary fill:#f0f8ff,stroke:#333,stroke-width:2px
classDef secondary fill:#e6e6fa,stroke:#333,stroke-width:2px
class Client,Worker,Redis,Minio primary
class Formats,Trans secondary