For a self hosted media server for videos, the strongest matches are mediacms-io/mediacms (MediaCMS is a self-hosted media content management system with), jellyfin/jellyfin (Jellyfin is a self-hosted media server that fully delivers) and sampotts/plyr (Plyr is a customizable web media player library, not). sqzw-x/mdcx and diygod/dplayer round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “video browsing”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
MediaCMS is a self-hosted media content management system designed for hosting, organizing, and distributing video, audio, images, and PDF files. It functions as a digital asset management platform that combines a transcoding pipeline with a server capable of delivering adaptive video streaming. The system is distinguished by its automated media transcoding pipeline, which converts uploaded files into multiple resolutions and codecs and generates automatic transcriptions. It integrates SAML and OAuth identity layers to connect external enterprise identity providers for managing user access an
MediaCMS is a self-hosted media content management system with automated video transcoding, adaptive streaming, multi-user support, and a web-based player, making it a strong fit for organising and streaming a personal video collection with playlist support and responsive design.
Jellyfin is a self-hosted media server that organizes digital media collections and streams content to various client devices over a local or remote network. It utilizes a client-server architecture that separates media processing and storage from user interfaces, communicating through a standardized web-based application programming interface. The platform is designed for cross-platform hosting, running consistently across Linux, Windows, and macOS through native binaries or containerized environments. It features a hardware-accelerated transcoding engine that offloads intensive video conver
Jellyfin is a self-hosted media server that fully delivers video transcoding, metadata scraping, multi-user accounts, a web-based player with responsive design, and playlist support, with official mobile clients as well — exactly what the visitor needs for browsing, organising, and streaming a personal video collection.
This project is a customizable media player designed to provide a consistent interface for video and audio content across all modern web browsers and mobile devices. It functions as a unified abstraction layer, standardizing playback behavior and control interfaces for both native media elements and third-party streaming service embeds through a predictable, declarative API. The library distinguishes itself by wrapping native media elements with custom HTML structures, ensuring a uniform look and feel regardless of the underlying browser implementation. Developers can manage playback state, m
Plyr is a customizable web media player library, not a self-hosted media server for browsing, organising, and streaming a personal video collection — it lacks transcoding, metadata scraping, multi-user support, and playlist management.
MDCx is a self-contained media management tool that automatically scrapes metadata from online sources and renames local video files to match standardized naming schemes. It organizes personal media libraries by attaching descriptive information to each file, enabling easy browsing and search through a browser-based interface. The tool operates through a modular backend that includes a configurable rule engine for defining naming patterns, plugin-based scrapers that load metadata from multiple sources, and a filesystem watcher that triggers processing workflows automatically when new media fi
MDCx is a metadata scraper and file renamer that helps organize a personal media library, but it does not transcode or stream video—it is a companion tool for media servers like Jellyfin or Emby rather than a self-contained streaming solution.
DPlayer is a web-based HTML5 video player designed as a modular frontend component for embedding interactive media into web applications. It provides a unified interface for controlling playback and extends native browser capabilities to support complex streaming protocols such as HLS, DASH, and FLV. The player distinguishes itself through a built-in real-time comment system, which renders scrolling or static text overlays directly over the video content to facilitate viewer engagement. To optimize delivery, it incorporates peer-to-peer networking, allowing connected clients to share video st
DPlayer is a modular HTML5 video player component for embedding in web apps, not a self-hosted media server with browsing, organizing, transcoding, or multi-user support — it only covers the playback piece of the puzzle.
Fluid Player is a web-based media playback library designed to embed lightweight, responsive video players into websites. It supports standard video formats and adaptive streaming across modern browsers, providing a foundation for consistent media delivery and custom interface branding. The library distinguishes itself through integrated support for industry-standard advertising protocols, allowing for the injection and orchestration of linear and non-linear video advertisements. It includes built-in tracking for viewer engagement and performance metrics, ensuring that ad delivery is synchron
Fluid Player is a reusable HTML5 video player library, not a self-hostable media server — it provides a playback component, not the full collection management, transcoding, or multi-user features needed to replace tools like Plex or Jellyfin.
MediaElement is an HTML5 media player framework that provides a unified interface for playing audio and video across different web browsers. It acts as a cross-browser media API and a multi-source video wrapper, ensuring consistent playback controls and behavior regardless of the underlying file format or source. The framework integrates adaptive bitrate streaming for HLS and MPEG-DASH protocols and allows for the embedding of content from third-party hosting services such as YouTube and SoundCloud. It uses a provider-based abstraction to translate generic playback commands into source-specif
MediaElement is an HTML5 media player framework for cross-browser playback, not a self-hosted media server that organises, transcodes, and streams a personal video collection — it could be used as a component within one, but isn't the tool itself.
Video.js is a customizable HTML5 video player framework and JavaScript media plugin system. It provides a foundation for rendering and controlling web video playback across different devices and screen sizes, supporting both standard HTML5 integration and adaptive bitrate streaming for live or on-demand content. The project is distinguished by a modular architecture that allows for the extension of playback functionality through a class-based plugin system and middleware-based method interception. This enables the development of tailored media interfaces and the integration of specialized beh
Video.js is a customizable HTML5 video player framework, not a self-hosted media server — it handles web playback but lacks the server-side features (transcoding, metadata scraping, multi-user access, media library management) you need for organising and streaming a personal video collection.
Webamp is a JavaScript library that provides a browser-based media player interface designed to replicate the experience of classic desktop audio software. It functions as a reusable component that allows developers to embed customizable, skinnable audio playback controls directly into web pages. The project distinguishes itself through its focus on legacy software emulation, recreating the visual and functional design patterns of traditional media players within modern web environments. It achieves this by rendering complex interface elements onto a canvas surface and managing application st
Webamp is a browser-based audio player emulating classic desktop software, not a self-hosted video library or media server — it handles audio playback only and lacks video transcoding, metadata scraping, and server-side organization features.
MediaElement is a JavaScript library that wraps native HTML5 audio and video elements to provide a unified media interface and a customizable player framework. It acts as a multi-format media controller and a web-based plugin framework, normalizing playback controls and visual styles to ensure a consistent experience across different web browsers. The project distinguishes itself through a plugin-based playback system that maps specific MIME types to custom renderers, allowing the integration of third-party media embeds and external playback engines. It supports advanced delivery features inc
MediaElement.js is a client-side JavaScript media player library that provides a consistent playback interface across browsers, but it lacks the server-side components—transcoding, metadata scraping, multi-user support, and playlist management—that define a self-hostable video library or media server.
flv.js is a JavaScript library and HTML5 Media Source Extension wrapper designed to play FLV video and live streams in web browsers. It enables the rendering of FLV content within a standard web video element without the need for external plugins. The project focuses on real-time transmuxing, converting FLV container data into fragmented MP4 segments to ensure browser compatibility. It includes specific implementations for low-latency live streaming and cross-origin video loading via CORS-compliant server headers. The library provides capabilities for segmented media playback, media position
flv.js is a client-side library for playing FLV video in browsers, not a self-hosted media server for organising and streaming a personal video collection — it lacks the transcoding, metadata scraping, multi-user support, and playlist management the search requires.
This project is a React-based video frontend designed as a YouTube clone. It provides a user interface for browsing and playing video content, recreating the layout and navigation of a professional video sharing platform. The interface is constructed using Tailwind CSS to implement a responsive web design. It focuses on the development of a video streaming layout, including the implementation of video players, sidebars, and navigation elements.
This repo is a React frontend that clones YouTube’s layout and navigation, but it provides no server-side features like transcoding, metadata scraping, or user management — it is a UI component, not a self-hosted video library or media server for your own collection.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| mediacms-io/mediacms | 4.7K | JavaScript | agpl-3.0 | |
| jellyfin/jellyfin | 53.3K | C# | GPL-2.0 | |
| sampotts/plyr | 29.9K | JavaScript | MIT | |
| sqzw-x/mdcx | 3.4K | Python | gpl-3.0 | |
| diygod/dplayer | 16.4K | JavaScript | MIT | |
| fluid-player/fluid-player | 940 | JavaScript | MIT | |
| johndyer/mediaelement | 8.3K | JavaScript | MIT | |
| videojs/video.js | 39.8K | JavaScript | NOASSERTION | |
| captbaritone/webamp | 11.1K | TypeScript | MIT | |
| mediaelement/mediaelement | 8.3K | JavaScript | MIT |