MCPcopy Index your code
hub / github.com/Kirari04/videocms

github.com/Kirari04/videocms @v0.1.10

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.10 ↗ · + Follow
614 symbols 1,951 edges 170 files 7 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Video-CMS 🎬

Go Version License Docker Build

A self-hosted Content Management System for your videos. 🎞️

Features ✨

  • 🏠 Self-host: Host VideoCMS using Docker on your own hardware.
  • ✍️ Pretty Subtitles: Subtitles are stored as softsubs in the ASS format to preserve styling and save storage.
  • ⚡ HLS Multi-Quality: Videos are converted into multiple qualities to ensure smooth playback for different connection speeds.
  • 🔊 Multi-Audio: The player supports multiple audio tracks that are not stored inside the video, saving storage space.
  • 🚀 Fast Chunked Upload: Allows the server to be behind a proxy without requiring high maximum post limits.
  • 📦 Dynamic MKV Download: The server dynamically assembles subtitles, audio tracks, and video tracks during download without re-encoding.

Documentation 📚

Follow the documentation to setup VideoCMS: https://videocms-docs.vercel.app/

Screenshots 📸

Simple Panel

{1CBD78E3-477B-4271-AF77-39A4F1C3C0E3}

File Information

{89B50AF3-8BFD-4EDA-8471-8833D4B73189} {A2167759-2941-43F3-9AFD-8F22D6253DAD}

Easy Export

{FBB41552-30A2-4C70-AFAF-23DAC35EF6B5}

Quality Settings

{F2015B0B-759F-4666-8B4B-A2217F819197}

Multiple Qualities

Alt text

Multiple Subtitles

Alt text

Multiple Audio Channels

Alt text

Embed in Chats (like Discord)

Alt text

Build 🛠️

make docker-build

Docker Images

Images are published to both registries:

  • ghcr.io/kirari04/videocms
  • kirari04/videocms

Available tags:

  • staging: release-candidate image built from the staging branch.
  • beta: accepted beta/default release built from master.
  • latest: same image as beta while VideoCMS is still in beta.
  • vX.Y.Z: immutable version tag for an accepted master release.

Release Flow

Development work starts on feature branches and opens pull requests into dev. The dev branch is the active integration branch and only runs validation: Go tests, vet/build checks, frontend generation, docs build, and Docker build validation. It does not publish Docker images.

When dev is ready for release testing, open a pull request from dev into staging. A push to staging publishes only the mutable staging Docker tag to GHCR and Docker Hub.

When staging is accepted, open a pull request from staging into master. The master branch is release-only. Every accepted push to master verifies the project, resolves the next patch version, builds Linux binaries, publishes multi-arch Docker images, creates the Git tag, creates or updates the GitHub Release, and uploads checksums.

After the workflow changes are merged to master, repository maintainers can create the dev and staging branches, set dev as the default branch, and apply branch/tag protections with:

scripts/setup-release-flow.sh

Extension points exported contracts — how you extend this code

IwithProcess (Interface)
(no doc) [3 implementers]
services/Encoder.go

Core symbols most depended-on inside this repo

Config
called by 53
controllers/handlers.go
Validate
called by 53
helpers/Validator.go
Save
called by 37
services/Encoder.go
Scan
called by 32
models/UserSettings.go
boolPtr
called by 29
configdb/configdb.go
IsAdmin
called by 25
middlewares/IsAdmin.go
Config
called by 25
logic/service.go
getEnvDb_bool
called by 25
configdb/configdb.go

Shape

Method 303
Function 180
Struct 127
TypeAlias 2
FuncType 1
Interface 1

Languages

Go100%

Modules by API surface

services/tusupload/service.go44 symbols
services/tusupload/service_test.go42 symbols
services/Downloader.go26 symbols
services/Encoder.go22 symbols
controllers/RemoteDownloadController.go18 symbols
app/runtime.go16 symbols
controllers/PlayerController.go15 symbols
logic/TrafficStats.go12 symbols
logic/LinkThumbnail.go12 symbols
config/config.go12 symbols
logic/LinkThumbnail_test.go11 symbols
services/tusupload/url.go10 symbols

For agents

$ claude mcp add videocms \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact