mediacms is a free, open source content management systems (cms) project written in JavaScript and released under AGPL-3.0. It has 5,113 GitHub stars, 957 forks and 146 open issues, and was last pushed 7 hours ago. On this registry it ranks #19 of 47 tracked projects in Content Management Systems (CMS), with 5 head-to-head comparisons available.

What is mediacms?

MediaCMS is a modern, fully featured open source video and media CMS, written in Python/Django and React with a REST API, for anyone who wants to build and run a self-hosted small to medium video and media portal.

What it is

MediaCMS is a content management system for viewing and sharing media, developed to meet the needs of modern web platforms. It is built mostly on a Django and Python backend with a React frontend and Celery for background work, and it exposes a REST API documented through Swagger. The project sits in the Content & Publishing / Content Management Systems category, carries the AGPL-3.0 license with copyright held by Markos Gogoulos, and is distributed as a Docker image on Docker Hub as mediacms/mediacms. A live demo runs at https://demo.mediacms.io.

The concrete problem it solves is control over where media lives. Organisations that hold sensitive content which cannot be uploaded to external sites need a portal they operate themselves, with their own rules about publishing, access and appearance. MediaCMS replaces the arrangement where a team hands its video to a third-party hosting service and accepts that service's terms, advertising and limitations. Instead, the team runs the portal, decides who may publish, and decides which content is public, private, unlisted or custom.

Key capabilities

  • Support for multiple media types in one portal: video, audio, image and PDF.
  • Multiple transcoding profiles with defaults for 144p, 240p, 360p, 480p, 720p and 1080p, across h264, h265 and vp9, plus adaptive streaming through HLS.
  • Chunked file uploads that support pausable and resumable transfer of large content, with transcoding scaled through priorities.
  • Role-Based Access Control, where RBAC categories connect users to groups with view and edit access on their media.
  • Automatic transcription through integration with Whisper running locally.
  • LTI 1.3 support and a Moodle plugin for embedding media inside a learning management system, alongside SAML support with mappings to system roles and groups.
  • A customized video.js player with multiple resolution and playback speed options, multilingual subtitles and closed captions, playlists for audio and video, and a video trimmer that can trim, replace, save as new or create segments.

Who uses it and how

  • Universities and schools, where administrators and editors control what gets published, students are not distracted by advertisements or irrelevant content, and viewers choose to stream or download.
  • Organisations holding sensitive content that cannot be uploaded to external sites and must stay on infrastructure the organisation controls.
  • Community portals, since URLs, logos, fonts and aesthetics are configurable, allowing a highly customised video portal to be built for a specific community.
  • Personal portals, for people who want to organise, categorise and host their own content their own way.
  • Teams that prefer not to self-host can deploy through Elestio, listed as a commercial hosting option.

Getting started

Deploy the mediacms/mediacms Docker image from Docker Hub, or try the hosted demo at https://demo.mediacms.io before installing. MediaCMS is designed so that a small to medium video and media portal can be built within minutes.

How it compares

No comparable tools are named in the facts provided, and no list of paid products that MediaCMS replaces is given, so it stands alone in this registry. What the facts do state is that it is open source under AGPL-3.0 and self-hosted, with paid custom installations, extra development, migrations, integrations, training and support offered separately by the maintainers.

When to use it — and when not to

Self-hosting means operating a Django, Python and Celery stack with a React frontend, and running Whisper locally if automatic transcription is wanted, so a team without that operational capacity should look at the commercial hosting route or elsewhere. The AGPL-3.0 licence is strong copyleft and matters to anyone modifying the code and offering it over a network. The provided README excerpt is also cut off mid-sentence on the Elestio hosting section, so details of that path should be confirmed against the upstream repository before committing.

project readme (upstream, from github) — read inline

MediaCMS

GitHub license Releases DockerHub

MediaCMS is a modern, fully featured open source video and media CMS. It is developed to meet the needs of modern web platforms for viewing and sharing media. It can be used to build a small to medium video and media portal within minutes.

It is built mostly using the modern stack Django + React and includes a REST API.

A demo is available at https://demo.mediacms.io

Screenshots

Features

  • Complete control over your data: host it yourself!
  • Modern technologies: Django/Python/Celery, React.
  • Support for multiple publishing workflows: public, private, unlisted and custom
  • Role-Based Access Control (RBAC): create RBAC categories and connect users to groups with view/edit access on their media
  • Automatic transcription: through integration with Whisper running locally
  • Multiple media types support: video, audio, image, pdf
  • Multiple media classification options: categories, tags and custom
  • Multiple media sharing options: social media share, videos embed code generation
  • Use in LMS: LTI 1.3 support plus a Moodle plugin for embeding media in LMS
  • Video Trimmer: trim video, replace, save as new or create segments
  • SAML support: with ability to add mappings to system roles and groups
  • Easy media searching: enriched with live search functionality
  • Playlists for audio and video content: create playlists, add and reorder content
  • Responsive design: including light and dark themes
  • Advanced users management: allow self registration, invite only, closed.
  • Configurable actions: allow download, add comments, add likes, dislikes, report media
  • Configuration options: change logos, fonts, styling, add more pages
  • Enhanced video player: customized video.js player with multiple resolution and playback speed options
  • Multiple transcoding profiles: sane defaults for multiple dimensions (144p, 240p, 360p, 480p, 720p, 1080p) and multiple profiles (h264, h265, vp9)
  • Adaptive video streaming: possible through HLS protocol
  • Subtitles/CC: support for multilingual subtitle files
  • Scalable transcoding: transcoding through priorities.
  • Chunked file uploads: for pausable/resumable upload of content
  • REST API: Documented through Swagger
  • Translation: Most of the CMS is translated to a number of languages

Example cases

  • Universities, schools, education. Administrators and editors keep what content will be published, students are not distracted with advertisements and irrelevant content, plus they have the ability to select either to stream or download content.
  • Organization sensitive content. In cases where content is sensitive and cannot be uploaded to external sites.
  • Build a great community. MediaCMS can be customized (URLs, logos, fonts, aesthetics) so that you create a highly customized video portal for your community!
  • Personal portal. Organize, categorize and host your content the way you prefer.

Philosophy

We believe there's a need for quality open source web applications that can be used to build community portals and support collaboration. We have three goals for MediaCMS: a) deliver all functionality one would expect from a modern system, b) allow for easy installation and maintenance, c) allow easy customization and addition of features.

License

MediaCMS is released under GNU Affero General Public License v3.0 license. Copyright Markos Gogoulos.

Support and paid services

We provide custom installations, development of extra functionality, migration from existing systems, integrations with legacy systems, training and support. Checkout our services page for more information.

Commercial Hostings

Elestio

You can deploy MediaCMS on Elestio using one-click deployment. Elestio supports MediaCMS by providing revenue share so go ahead and click below to deploy and use MediaCMS.

Deploy on Elestio

Hardware considerations

For a small to medium installation, with a few hours of video uploaded daily, and a few hundreds of active daily users viewing content, 4GB Ram / 2-4 CPUs as minimum is ok. For a larger installation with many hours of video uploaded daily, consider adding more CPUs and more Ram.

In terms of disk space, think of what the needs will be. A general rule is to multiply by three the size of the expected uploaded videos (since the system keeps original versions, encoded versions plus HLS), so if you receive 1G of videos daily and maintain all of them, you should consider a 1T disk across a year (1G * 3 * 365).

In order to support automatic transcriptions through Whisper, consider more CPUs.

Installation / Maintanance

There are two ways to run MediaCMS, through Docker Compose and through installing it on a server via an automation script that installs and configures all needed services. Find the related pages:

Documentation

Technology

This software uses the following list of awesome technologies: Python, Django, Django Rest Framework, Celery, PostgreSQL, Redis, Nginx, Gunicorn, React, Fine Uploader, video.js, FFMPEG, Bento4

Who is using it

How to contribute

If you like the project, here's a few things you can do

  • Hire us, for custom installations, training, support, maintenance work
  • Suggest us to others that are interested to hire us
  • Write a blog post/article about MediaCMS
  • Share on social media about the project
  • Open issues, participate on discussions, report bugs, suggest ideas
  • Show and tell how you are using the project
  • Star the project
  • Add functionality, work on a PR, fix an issue!

Contact

[email protected]

Frequently asked questions

Is mediacms free to use?

mediacms is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does mediacms do?

MediaCMS is a modern, fully featured open source video and media CMS, written in Python/Django and React, featuring a REST API.

What is mediacms written in?

mediacms is primarily written in JavaScript. Its source is publicly available at https://github.com/mediacms-io/mediacms, and it has 5,113 GitHub stars.