MediaCMS
Modern video-sharing and content management platform
MediaCMS is a modern, fully featured video and media content management system that can power a video-sharing site or internal media portal. It supports uploads, transcoding, playlists, and user-generated content.
Key features
- Video uploads and transcoding
- Playlists and channels
- REST API
- Responsive UI
Pros & cons
Strengths
- Active development
- Good for video portals
Trade-offs
- Heavier resource use
- Requires database setup
MediaCMS replaces
Last reviewed Sep 13, 2026 · 835 words
MediaCMS is not a media server in the Jellyfin sense. It is a publishing platform: strangers (or staff) upload video through a browser, the server transcodes it into 4 or 5 resolutions, and viewers watch it on a public or private portal with comments, playlists and channels. If your actual goal is to watch your own ripped library on a TV, close this page and install Jellyfin. If your goal is "a YouTube for our company, school or club, on our own hardware", MediaCMS is the most complete option in the 5,000-star band and the one I would pick over PeerTube for anything that is not federation-first.
The transcoding queue is the whole product, and it eats the CPU
Every upload triggers a Celery job that runs ffmpeg once per output resolution. On a 4-core box, a 10-minute 1080p clip takes roughly 10 to 15 minutes to finish all encodes, and the queue is serial by default. That is fine for a portal receiving a few videos a day; it is a problem if you plan to bulk-import a 2 TB archive on launch week. Two levers matter: the number of Celery worker processes (set it to your core count minus one) and the list of target resolutions in the portal settings. Disabling 240p and 360p halves the encode time for content nobody will watch on a phone over 3G.
Disk is the second cost. Each source file is kept alongside every encoded rendition plus HLS segments, so budget about 2.5 times the size of your originals. A portal with 500 GB of uploads wants 1.3 TB free before you start.
The stack has five containers and 2 GB is the honest floor
The official compose file starts PostgreSQL, Redis, a web container, a Celery beat scheduler and at least one Celery worker. The 2 GB minimum in our catalogue is real for idle plus light transcoding; with two workers encoding at once I have seen 3.5 GB in use. Nothing in that list is exotic, and the docker compose up path works first time more often than most Django-plus-React projects.
The default admin login created by the compose file is admin / admin. Change it before you open port 80 to anyone, and set ADMIN_PASSWORD in the environment on the first boot so it never exists in that state at all. Put Caddy or Traefik in front for TLS; the built-in nginx serves plain HTTP only.
Portal workflow decides who sees what, and it is set once
MediaCMS has a single global switch that sets what happens to a fresh upload: public immediately, private until an admin approves, or unlisted. Pick this on day one, because changing it later does not retroactively alter existing media. For an internal training portal I set it to private-with-review and made two people reviewers. For a community site, public with a report button and the comment moderation queue enabled is workable, though you will be moderating by hand; there is no automated abuse filtering.
Users can be registered by an admin, by open signup, or via the REST API. The API is complete enough that I have scripted bulk uploads from a folder with about 40 lines of Python, including titles and categories pulled from a CSV.
Where it beats PeerTube, and where it does not
PeerTube is the larger project (more stars, more contributors) and federates over ActivityPub, so your videos can appear in other instances' feeds and viewers can peer-share bandwidth. If you want to be part of the Fediverse, PeerTube wins outright. MediaCMS wins on the things a private organisation cares about: a cleaner admin, a simpler permission model, a proper category and tag taxonomy, and audio, image and PDF support alongside video, which makes it usable as a general media library rather than strictly a video site. The UI also looks less like a 2019 project.
The cons are honest ones. Development is active but it is a small team, mobile apps do not exist (the responsive web UI is what you get), and there is no live streaming. If you need to broadcast a lecture rather than publish its recording, this is the wrong tool.
What I'd do
Run MediaCMS on a machine with 4 cores, 4 GB of RAM and a big cheap disk, with the workflow set to private review from the first boot and the admin password replaced before the container ever answers a request. Trim the resolution list to 480p, 720p and 1080p. For a family or a homelab wanting to watch existing files, skip it and use Jellyfin; for a public-facing community that wants federation, use PeerTube. For a company, a school, a church or a club that wants its own upload-and-watch portal and controls who sees what, MediaCMS is the one I would install and expect to still be running in 3 years.
Compare MediaCMS
4 head-to-head comparisons.
Similar media servers apps
Jellyfin
Media ServersFree software media system for streaming your library
Replaces Plex, Emby
qBittorrent
Media ServersBittorrent client that aims to be a good alternative to all other
Replaces µTorrent
SRS
Media ServersA simple, high efficiency and real-time video server, supports RTMP,
Navidrome
Media ServersModern music streaming server for your collection
Replaces Spotify
Kodi
Media ServersOpen-source home theater and media center
Replaces Plex
Koel
Media ServersPersonal music streaming server with an elegant interface
Replaces Spotify