MediaCMS是一个现代的,功能齐全的开源视频和媒体CMS。它是为了满足现代网络平台观看和分享媒体的需要而开发的。它可以在几分钟内建立一个小型到中型的视频和媒体门户。
它主要使用现代堆栈Django React构建,并包含一个REST API。
在https://demo.mediacms.io上有一个演示

学校和教育机构。管理员和编辑可以控制哪些内容将被发布,学生不会受到广告和无关内容的干扰,同时他们还可以选择流式传输或下载内容。
组织敏感内容。在某些情况下,内容可能非常敏感,无法上传到外部网站。
建立一个强大的社区。MediaCMS 可以进行定制(URL、徽标、字体、美观性),因此您可以为您的社区创建一个高度定制化的视频门户!
个人门户。按照您喜欢的方式组织、分类和托管您的内容。
官方提供了两者安装方式 Docker 和 单节点服务 安装。目前经过测试 Dcoekr安装存在问题,所以此处只在服务器上安装
使用的是:Ubuntu22.04
# 1、更新操作系统,并安装git
apt update
apt install git -y
# 2、下载安装脚本并运行
mkdir /home/mediacms.io && cd /home/mediacms.io/
# 如果下面地址下载不下来可以使用:https://github.com/mediacms-io/mediacms
git clone https://github.com/mediacms-io/mediacms
cd /home/mediacms.io/mediacms/
bash ./install.sh
在安装过程中需要注意,有一个地方会提示需要输入 URL,如果使用的是域名基本没问题,但是如果使用的是IP需要注意下方是正常的,表示程序正在生成 Diffie-Hellman(DH)密钥交换所需的参数。 … 这些会生成很久只要不报错就一直等就可以了,有点慢

正常执行完成后会在后面输出登录的用户名密码,MediaCMS installation completed, open browser on http://192.168.92.188 and login with user admin and password 2h4thhbw5f
打开页面显示如下:

查看管理菜单


目前看汉化不完整,所以可不做
vim /home/mediacms.io/mediacms/cms/local_settings.py
# 在文件中添加如下配置
LANGUAGE_CODE = "zh_CN"
TIME_ZONE = "Asia/Shanghai"
# 重启服务
systemctl restart mediacms.service
配置文件地址:/home/mediacms.io/mediacms/cms/settings.py
如果修改某项配置,建议通过将它们添加到 local_settings.py 来覆盖它们中的任何一个。
如果是单服务器安装,添加到 cms/local_settings.py 。
如果是docker组合安装,添加到 deploy/docker/local_settings.py 。这将自动覆盖 cms/local_settings.py 。
# 单机安装:编辑 cms/local_settings.py ,修改并重启MediaCMS
systemctl restart mediacms
# Docker组合安装:编辑 deploy/docker/local_settings.py ,修改并重启MediaCMS容器
docker-compose restart web celery_worker celery_beat
以下为配置文件中的默认值
# 设置全局门户标题
PORTAL_NAME = "MediaCMS"
# 设置字符集
LANGUAGE_CODE = "en-us"
# 设置时区
TIME_ZONE = "Europe/London"
# 设置谁能添加视频文件,默认情况下所有人都可以
# who can add media
# valid options include 'all', 'email_verified', 'advancedUser'
# all:所有人都可以
# Email_verified,用户不仅要注册一个帐户,还要验证电子邮件(通过单击注册时发送的链接)。显然,电子邮件配置需要工作,否则用户将无法收到电子邮件。
# advancedUser,只有标记为高级用户的用户才能添加媒体。管理员或MediaCMS管理员可以通过编辑用户的配置文件并选择advancedUser,使用户成为高级用户。
CAN_ADD_MEDIA = "all"
# 指定对新上传的媒体进行处理
# valid choices here are 'public', 'private', 'unlisted'
# Public是默认选项,意味着媒体可以出现在列表中。如果媒体类型是视频,则至少在生成文件的编码版本的任务成功完成后,它将出现。对于其他类型的文件,如图像/音频,它们立即出现
# private意味着新上传的内容是私有的——只有用户或MediaCMS的编辑、经理和管理员才能看到它。这些还可以将状态设置为公开或未上市
# Unlisted是指未列出的项目。但是,如果用户访问未列出的媒体的url,它将被显示(与私有相反)。
PORTAL_WORKFLOW = "public"
# 设置主题
# valid values: 'light', 'dark'.
DEFAULT_THEME = "light"
# 设置还是隐藏登录按钮,True:显示,False:隐藏
LOGIN_ALLOWED = True # whether the login button appears
# 显示/隐藏注册按钮,True:显示,False:隐藏
REGISTER_ALLOWED = True # whether the register button appears
# 显示/隐藏上传媒体按钮
UPLOAD_MEDIA_ALLOWED = True # whether the upload media button appears
# 显示/隐藏动作按钮(喜欢/不喜欢/举报)
### 对以下任何一项进行更改(True/False):
CAN_LIKE_MEDIA = True # whether the like media appears
CAN_DISLIKE_MEDIA = True # whether the dislike media appears
CAN_REPORT_MEDIA = True # whether the report media appears
CAN_SHARE_MEDIA = True # whether the share media appears
# 被举报时自动隐藏媒体,为变量 REPORTED_TIMES_THRESHOLD 设置一个低值,一旦达到限制,媒体将进入私有状态,并向管理员发送电子邮件,如下:
Reported_times_threshold = 2
# 在媒体上传页面设置自定义消息,此消息将出现在媒体拖放表单的下方
PRE_UPLOAD_MEDIA_MESSAGE = '自定义消息'
# 设置邮件设置。为每个提供程序设置正确的设置
DEFAULT_FROM_EMAIL = "info@mediacms.io"
EMAIL_HOST_PASSWORD = "xyz"
EMAIL_HOST_USER = "info@mediacms.io"
EMAIL_USE_TLS = True
SERVER_EMAIL = DEFAULT_FROM_EMAIL
EMAIL_HOST = "mediacms.io"
EMAIL_PORT = 587
ADMIN_EMAIL_LIST = ["info@mediacms.io"]
# 禁止来自特定域的用户注册,通过这个变量设置注册无效的域:
RESTRICTED_DOMAINS_FOR_USER_REGISTRATION = ["xxx.com", "emaildomainwhatever.com"]
# 需要MediaCMS编辑/经理/管理员审核
MEDIA_IS_REVIEWED = True # whether an admin needs to review a media file.
# 默认情况下不需要,设置为False,任何上传的媒体都需要在出现在列表之前进行审查。 MediaCMS的编辑/经理/管理员可以访问媒体页面并编辑它,在那里他们可以看到将媒体标记为已审阅的选项。默认设置为True,因此不需要审查所有媒体
# 指定播放列表的最大媒体数
MAX_MEDIA_PER_PLAYLIST = 70
# bytes, size of uploaded media,指定可上传的最大媒体大小,默认是4G
UPLOAD_MAX_SIZE = 800 * 1024 * 1000 * 5
# 指定注释的最大大小
MAX_CHARS_FOR_COMMENT = 10000
# 并行上传多少个文件
UPLOAD_MAX_FILES_NUMBER = 100
# 强制用户在注册时确认他们的电子邮件。电子邮件确认的默认选项是可选的。将此设置为强制性,以便强制用户在登录之前确认他们的电子邮件
ACCOUNT_EMAIL_VERIFICATION = "optional" # 'mandatory' 'none'
# 限制用户登录次数
ACCOUNT_LOGIN_ATTEMPTS_LIMIT = 20
# 限制用户登录超时时间
ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = 5
# 如果设置为False,则禁止用户注册
USERS_CAN_SELF_REGISTER = True
# 配置通知
USERS_NOTIFICATIONS = {
"MEDIA_ADDED": True, # in use,如果要禁用新媒体通知,请设置为False
"MEDIA_ENCODED": False, # not implemented
"MEDIA_REPORTED": True, # in use
}
ADMINS_NOTIFICATIONS = {
"NEW_USER": True, # in use,NEW_USER:添加新用户
"MEDIA_ADDED": True, # in use,MEDIA_ADDED:添加媒体
"MEDIA_ENCODED": False, # not implemented
"MEDIA_REPORTED": True, # in use
}
# 设置仅允许成员访问媒体
GLOBAL_LOGIN_REQUIRED = True
## 使门户工作流公开,但同时设置 GLOBAL_LOGIN_REQUIRED = True ,以便只有登录的用户才能看到内容。
可以实现视频上传、分类、字幕制作等操作,具体可参考:https://github.com/mediacms-io/mediacms/blob/main/docs/user_docs.md
可以在 Upload中上传文件,可以是文件也可以是图片或者视频
需要注意的是:视频上传是成功后也无法立即查看,需要等转码完成后才可以

下载文件

下载视频

需要准备一份vtt字幕文件


Language添加:



添加标题即可

选择你要分类的视频或文件

