cmyflix

Lightweight Netflix-style media server written in C

194 stars 13 forks last commit first released AGPL-3.0

Slowing down

No commits since 18 Dec 2025. Check the issue tracker before you rely on it.

cmyflix is a lightweight, DIY Netflix-style media server implemented in C. It scans a filesystem for movies and TV shows, retrieves metadata, generates JSON databases and static HTML pages, and provides a simple web UI and HTML5 video playback suitable for low-resource devices and NAS setups.

Key Features

  • Scans media directories and builds JSON databases describing movies and TV shows
  • Generates static HTML pages from metadata for serving via any web server
  • Uses TMDB metadata for titles, covers and descriptions (requires an API key)
  • Supports HTML5-friendly video formats (mp4, mkv, ogv, webm) for direct playback
  • Generates thumbnails and works with tools like ffmpeg and ImageMagick for media processing
  • Minimal dependencies and a small C codebase optimized for low-power devices; buildable with make and installable via a prebuilt package

Use Cases

  • Run a lightweight media catalogue and player on a Raspberry Pi or NAS to stream files to browsers on the local network
  • Generate a static, browsable movie/TV library that can be served from any web server or static hosting on constrained hardware
  • Maintain a simple media index for families or small teams without deploying a heavyweight media server solution

Limitations and Considerations

  • Requires a TMDB API key for rich metadata; basic operation is limited without it
  • No built-in transcoding; streaming is limited to formats supported by client HTML5 players
  • Assumes a strict folder structure for TV shows and movies; organization mismatches may require manual fixes

cmyflix is suited for users who want a minimal, fast media catalog and playback frontend with low resource usage. It prioritizes simplicity and performance over advanced server features and heavy integrations.

Categories:

Tags:

Tech Stack:

Share:

Similar to cmyflix

Stash logo

Stash

Web app to organize and stream a private adult media library

12.9k
1.2k
Last commit

Self-hosted web app for organizing, tagging, and streaming a private adult video and image library with metadata scraping, galleries, and markers.

AGPL-3.0Actively maintained
Alternative to:
Plex logo
Plex
+11
Gaseous logo

Gaseous

Self-hosted game ROM library manager with in-browser emulation

928
36
Last commit

Self-hosted ROM and game library manager that identifies titles from multiple sources, enriches metadata, and lets you play supported systems in the browser.

AGPL-3.0Actively maintained
Alternative to:
PlayOn Cloud logo
PlayOn Cloud
+4

CouchTube

YouTube-based frontend that simulates a scheduled TV channel

261
10
Last commit

CouchTube is a Go application that schedules and plays curated YouTube videos as TV-style channels using JSON playlists, with Docker and SQLite support.

GPL-3.0Actively maintained
Alternative to:
Watch2Gether logo
Watch2Gether
+2
Kodi logo

Kodi

Open source home theater and media center software

21.1k
6.6k
Last commit

Kodi is an open source media center for organizing and playing local and networked video, music, and photos with a TV-friendly interface and add-on ecosystem.

Actively maintained
Alternative to:
Microsoft Windows Media Player logo
Microsoft Windows Media Player
+7
Lyrion Music Server logo

Lyrion Music Server

Music streaming server for Squeezebox and compatible players

1.8k
375
Last commit

Open-source music server that streams local libraries, internet radio, and streaming services to Squeezebox hardware and software players like Squeezelite.

Actively maintained
Alternative to:
Roon logo
Roon
+12
MistServer logo

MistServer

Open-source streaming media server for OTT, live and VOD.

508
155
Last commit

MistServer is an open-source streaming media toolkit that supports HLS, DASH, RTMP, RTSP, SRT and WebRTC for low-latency live and VOD workflows.

UnlicenseActively maintained
Alternative to:
Wowza Streaming Cloud logo
Wowza Streaming Cloud
+13