Files
metabuilder/services/media_daemon
johndoe6345789 9e892dcd74 refactor(deployment): remove 10 redundant shell scripts replaced by Python CLI
All deployment commands now go through deployment.py. Deleted:
build-base-images.sh, build-apps.sh, build-testcontainers.sh, deploy.sh,
start-stack.sh, release.sh, nexus-ci-init.sh, push-to-nexus.sh,
populate-nexus.sh, publish-npm-patches.sh.

Kept nexus-init.sh and artifactory-init.sh (Docker container entrypoints).
Updated all references in CLAUDE.md, README.md, AGENTS.md, ROADMAP.md,
deployment docs, Dockerfiles, and docker-compose comments.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 01:19:32 +00:00
..
2026-03-09 22:30:41 +00:00
2026-03-09 22:30:41 +00:00
2026-03-09 22:30:41 +00:00
2026-03-09 22:30:41 +00:00
2026-03-09 22:30:41 +00:00
2026-03-09 22:30:41 +00:00
2026-03-09 22:30:41 +00:00
2026-03-09 22:30:41 +00:00
2026-03-09 22:30:41 +00:00

MetaBuilder Media Daemon

A C++ Docker daemon for media processing, radio streaming, and TV channel simulation with a modular plugin architecture.

Features

🎬 Job Queue System

  • Video transcoding (H.264, H.265, VP9, AV1)
  • Audio transcoding (MP3, AAC, FLAC, Opus)
  • Document conversion (PDF, Office formats)
  • Image processing (resize, convert, optimize)
  • Priority queuing with configurable workers

📻 Radio Streaming

  • Live audio streaming with multiple quality levels
  • Playlist scheduling and auto-DJ
  • Crossfading and audio normalization
  • Metadata injection (artist, title, album art)
  • Icecast/Shoutcast compatible output

📺 TV Channel Simulation

  • Multi-channel scheduling system
  • EPG (Electronic Program Guide) generation
  • Bumpers, commercials, and interstitials
  • Live-to-VOD and VOD-to-Live workflows
  • HLS/DASH output for web players

🔌 Plugin Architecture

  • Dynamic plugin loading (.so/.dll)
  • Hot-reload support in development mode
  • Plugin API for custom processors
  • Built-in plugins: FFmpeg, ImageMagick, Pandoc

🔗 DBAL Integration

  • Job status notifications to users
  • Progress tracking in real-time
  • User permission checks
  • Multi-tenant isolation

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Media Daemon                              │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  HTTP API   │  │  WebSocket  │  │   gRPC      │         │
│  │  (Drogon)   │  │  (Live)     │  │  (Internal) │         │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘         │
│         └────────────────┼────────────────┘                 │
│                          ▼                                  │
│  ┌───────────────────────────────────────────────────────┐ │
│  │                   Core Engine                          │ │
│  │  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐  │ │
│  │  │ Job     │  │ Radio   │  │ TV      │  │ Plugin  │  │ │
│  │  │ Queue   │  │ Engine  │  │ Engine  │  │ Manager │  │ │
│  │  └────┬────┘  └────┬────┘  └────┬────┘  └────┬────┘  │ │
│  └───────┼────────────┼────────────┼────────────┼───────┘ │
│          └────────────┴────────────┴────────────┘          │
│                          ▼                                  │
│  ┌───────────────────────────────────────────────────────┐ │
│  │                  Plugin System                         │ │
│  │  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐         │ │
│  │  │FFmpeg  │ │ImageMag│ │Pandoc  │ │Custom  │         │ │
│  │  │Plugin  │ │Plugin  │ │Plugin  │ │Plugins │         │ │
│  │  └────────┘ └────────┘ └────────┘ └────────┘         │ │
│  └───────────────────────────────────────────────────────┘ │
│                          ▼                                  │
│  ┌───────────────────────────────────────────────────────┐ │
│  │              DBAL Client (Notifications)               │ │
│  └───────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

Quick Start

# Build
docker build -t metabuilder/media-daemon -f Dockerfile .

# Run
docker run -d \
  -p 8090:8090 \
  -v /media:/data/media \
  -e DBAL_URL=http://dbal:8080 \
  metabuilder/media-daemon

API Endpoints

Job Queue

  • POST /api/jobs - Submit a new job
  • GET /api/jobs/:id - Get job status
  • GET /api/jobs - List jobs (filtered by user/tenant)
  • DELETE /api/jobs/:id - Cancel a job

Radio

  • POST /api/radio/channels - Create radio channel
  • GET /api/radio/channels/:id/stream - Get stream URL
  • POST /api/radio/channels/:id/playlist - Update playlist
  • GET /api/radio/channels/:id/now-playing - Current track info

TV Channels

  • POST /api/tv/channels - Create TV channel
  • GET /api/tv/channels/:id/schedule - Get EPG
  • POST /api/tv/channels/:id/schedule - Update schedule
  • GET /api/tv/channels/:id/stream.m3u8 - HLS playlist

Plugins

  • GET /api/plugins - List loaded plugins
  • POST /api/plugins/:id/reload - Hot-reload plugin (dev mode)

Configuration

See config/media-daemon.yaml for full configuration options.