thehardwarestore.ai

where AI agents shop for the right tools

── 99215 repos indexed ── | filtered by tag: #media-server
mopidy/mopidy ★ 8598 724 APPLICATION

Mopidy is an extensible, headless music server written in Python. In production it runs as a daemon, plays audio through GStreamer, pulls local files and streaming radio via pluggable backends, and exposes control to clients over HTTP JSON-RPC and WebSockets, with MPD protocol support provided by an external extension. The architecture is modular: a Pykka actor-based core orchestrates library, tracklist, playback, mixer, and history controllers; separate backend, audio, and media layers isolate concerns; and an entry-point-driven extension system lets third parties register backends, frontends, mixers, and CLI commands. Bundled extensions provide local file playback, M3U playlists, HTTP control, a software mixer, and stream handling. The codebase is a modern, typed Python application requiring Python 3.13+, with Pydantic domain models, asyncio/Tornado HTTP handling, a reusable config schema system, and a GStreamer-based media reader that probes metadata and parses playlists. The test suite is extensive (pytest, dummy actors, fixture audio files), and CI covers multiple Python versions. Some legacy APIs are marked deprecated for removal in Mopidy 5.0, but overall the project is actively maintained and structurally coherent. It is not a data/research repository; its only data-heavy aspects are media metadata extraction and playlist parsing.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 4 reusable components found
MunifTanjim/stremthru ★ 554 119 APPLICATION

StremThru is a media server backend designed as a companion for Stremio, providing unified access to torrents, Usenet, and various debrid services (Real-Debrid, TorBox, AllDebrid, etc.) through Stremio addons. The architecture features a Go-based backend with modular packages for store integrations, metadata enrichment, worker queues, and caching, alongside a TypeScript/React dashboard for configuration and monitoring. Key functionalities include Stremio addon endpoints (wrap, store, newz, torz), indexer support (Torznab/Newznab), background workers for data synchronization, and SDKs for JavaScript and Python. Data flows involve user requests via Stremio addons triggering store API calls, metadata enrichment from services like TMDB/TVDB, and background jobs maintaining caches and syncing external accounts. External dependencies include debrid services, metadata APIs, Usenet servers, and a SQLite/PostgreSQL database with optional Redis caching.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
tubearchivist/tubearchivist ★ 8516 428 APPLICATION

TubeArchivist is a self-hosted YouTube media server that downloads, indexes, and serves YouTube video content. In production, it runs as a Docker-based stack with a Django REST API backend, React/TypeScript frontend, Celery task queue, Redis broker, and Elasticsearch for metadata storage and full-text search. The system subscribes to YouTube channels and playlists via yt-dlp, extracts comprehensive metadata (including subtitles, comments, SponsorBlock segments, and thumbnails), and provides a web UI for browsing, searching, streaming video, and managing downloads. It supports multiple authentication modes (single user, LDAP, forward proxy), scheduled tasks for rescanning subscriptions and backups, and integrates with Apprise for notifications and a membership/SponsorBlock API for ad-skipping. The architecture follows a modular Django app pattern (video, channel, playlist, download, task, appsettings, user, stats) with consistent use of base views, serializers, and search processors. The frontend uses Zustand for state management and a custom API client with CSRF handling. The codebase is actively maintained with comprehensive test coverage and CI/CD pipelines.

RATING: 9.1/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
ossrs/srs ★ 29319 5699 APPLICATION

SRS (Simple Realtime Server) is a high-performance, multi-protocol media streaming server primarily written in C++ with a newer Go-based proxy component (SRSX). It ingests, processes, and delivers live audio/video streams via RTMP, WebRTC (WHIP/WHEP), HLS, HTTP-FLV, SRT, and GB28181. The core C++ engine uses a coroutine model built on state-threads, implements stream forwarding, transcoding via FFmpeg, and provides a full HTTP API for management. The Go proxy component (cmd/proxy, internal/) adds load balancing, Redis integration, and protocol proxying for RTMP/HTTP/WebRTC, designed to scale origin/edge deployments. The repository also includes extensive research code, blackbox integration tests, and vendored third-party libraries (FFmpeg 4, OpenSSL 1.1, gperftools, SRT, libsrtp) that have been customized with a '-fit' suffix. This hybrid architecture is actively developed with multiple CI workflows and a large test suite, though some vendored dependencies are older and may require security updates.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
meetecho/janus-gateway ★ 9182 2630 APPLICATION

Janus is a general-purpose WebRTC media server and gateway written in C. It provides a modular architecture with a core daemon that dynamically loads plugins for various use cases (video conferencing, audio bridging, streaming, SIP, etc.), transports (HTTP, WebSockets, MQTT, RabbitMQ, Unix sockets), and event handlers. The server handles ICE/DTLS/SRTP for WebRTC peer connections, relays RTP/RTCP media between participants, and supports advanced features like simulcast, SVC, recording, and post-processing. A JavaScript client library (janus.js) is provided for browser integration. The system is production-grade, actively maintained, and widely deployed.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
euzu/tuliprox ★ 557 58 APPLICATION

Tuliprox is a production-grade IPTV streaming proxy and DVR system written in Rust, with a WebAssembly frontend in Yew. It aggregates IPTV sources from M3U, Xtream, Stalker, HDHomeRun, and media servers (Plex/Emby/Jellyfin) and presents them as a unified streaming backend via multiple protocols (HLS, Xtream, M3U, HDHomeRun). The system provides advanced features: HLS caching and segment repair, recording with conflict resolution and retention policies, RBAC with per-user connection limits and GeoIP filtering, EPG with smart matching, playlist transformation with a DSL-based mapping engine, and comprehensive notification channels (Discord, Telegram, Slack, etc.). The architecture is modular with many loosely-coupled crates (auth, session, hls, dvr, parser, repository, messaging) sharing a common model crate (`shared`), which enforces type safety and prevents configuration drift between frontend and backend. The frontend is a rich single-page application with real-time dashboards, source/playlist editors, user management, and a setup wizard. The codebase demonstrates high craftsmanship in its custom B+Tree storage engine, HLS state machine, notification channel trait, and frontend form management macros. It is actively maintained with CI/CD, Docker deployment, and clear separation of concerns, though some dependency version pinning and large enum variants indicate areas for cleanup.

RATING: 8.8/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
jellyfin/jellyfin ★ 57545 5560 APPLICATION

Jellyfin is a free software media system that manages, organizes, and streams personal media libraries (movies, TV shows, music, photos, books, live TV). The backend server is written in C# using ASP.NET Core and provides a REST API, WebSocket support, and a plugin system. It handles media metadata aggregation from multiple external providers (TMDB, MusicBrainz, AudioDB, etc.), transcoding via FFmpeg, user authentication and authorization, and real-time session synchronization (SyncPlay). The architecture is modular with separate packages for API controllers, database persistence (EF Core with SQLite), media file naming/parsing, metadata providers, and background scheduled tasks. Key entry points include the main server startup (Jellyfin.Server), API controllers (Jellyfin.Api), and the plugin system (MediaBrowser.Providers.Plugins). External dependencies include FFmpeg for transcoding, SQLite for the database, and various third-party metadata APIs. The codebase demonstrates strong engineering practices with extensive unit and integration tests, a custom event-driven architecture, and a well-defined authorization handler pattern for fine-grained access control. While there are some legacy namespaces and a large number of database migrations indicating schema evolution, the overall structure is clean and maintainable.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
9001/copyparty ★ 46903 1904 APPLICATION

copyparty is a portable, multi-protocol file server written in Python. It serves files over HTTP/WebDAV, FTP, SFTP, TFTP, and SMB/CIFS, with a rich web UI for browsing, uploading (resumable, chunked, deduplicated), searching, and media playback. The server supports user authentication, per-volume permissions, event hooks, metadata extraction, thumbnail generation, and audio transcoding. It can run on minimal dependencies (Python 3.3+), and is packaged as a self-extracting script, Docker image, or native installer. The architecture is modular: a central service hub (SvcHub) orchestrates protocol servers, a virtual filesystem (VFS) enforces permissions, and a broker pattern handles parallel tasks. The codebase includes a large set of example hooks, handlers, and plugins for customization. While the project is actively maintained and well-documented, it carries some technical debt from supporting very old Python versions and vendored libraries.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
signalwire/freeswitch ★ 5232 1885 APPLICATION

FreeSWITCH is a production-grade, open-source software-defined telecom stack that functions as a media switching platform, PBX, and session border controller. In production, it handles real-time communication signaling (SIP, WebRTC, MSRP, Skinny, RTMP) and media processing (audio/video codecs, conferencing, voicemail, IVR, fax, tone detection). It is architected as a modular monolith: a core library (libfreeswitch) provides telephony primitives, event system, and scheduling, while over 100 loadable modules implement endpoints, applications, codecs, languages, and event handlers. Key entry points include the SIP module (mod_sofia), the Event Socket (mod_event_socket) for external control, and the XML-RPC interface. Data flows involve receiving media from network endpoints, processing through codec chains, and routing via dialplan scripts written in Lua, Python, Java, JavaScript, or managed C#. Externally, FreeSWITCH depends on several bundled libraries: APR for cross-platform portability, libvpx for VP8/VP9 video codec, libyuv for image conversion, libsrtp for secure RTP, and libxmlrpc-c for XML-RPC. It also integrates with external databases (ODBC, MariaDB, Redis), message queues (AMQP), and monitoring (SNMP). The build system uses autotools with extensive platform-specific code for Windows, OS/2, BeOS, and others, though modern deployments target Linux and Docker. The codebase demonstrates strong engineering practices with a modular architecture, extensive unit and integration tests, and a well-defined event system. However, it carries significant technical debt from bundled third-party libraries, platform-specific legacy code, and a large surface area of language bindings. The project is actively maintained by SignalWire with regular commits and CI pipelines.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
tsukumijima/KonomiTV ★ 1049 106 APPLICATION

KonomiTV is a modern, full-stack online PVR/streaming server tailored for Japanese digital television (GR, BS, CS, BS4K). In production, it serves as a live TV player with hardware-accelerated transcoding (QSV, NVENC, VCE, FFmpeg), a complete EPG and recording scheduler, and deep social media integration (Twitter/X, Bluesky, Niconico Jikkyo). The system acts as a modern web frontend for the traditional EDCB and Mirakurun TV middleware. The backend is a Python FastAPI application executing complex pipelines for MPEG-TS parsing, live encoding, and metadata analysis. The frontend is a Vue 3/TypeScript Progressive Web App with offline storage via Service Workers. The codebase exhibits high craftsmanship in its low-level protocol interactions: it contains a complete reverse-engineered binary protocol parser for EDCB, an undocumented Twitter GraphQL scraper, and zero-dependency keyframe seekers for MPEG-TS and MP4 containers. While primarily an application, it incorporates significant reverse-engineering and data processing research, including automatic CM detection, computer vision-based thumbnail scoring, and BML data broadcasting support. The architecture is well-structured but heavily coupled to the Japanese TV ecosystem and multiple fragile third-party dependencies (custom binary forks, hardware-specific drivers, browser automation for social feeds). These dependencies introduce medium technical drift, but the project is actively maintained with thorough CI/CD and regular third-party updates.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
awesome-jellyfin/awesome-jellyfin ★ 9608 326 APPLICATION

This repository is a curated list of Jellyfin resources, including plugins, themes, clients, companion tools, guides, and snippets. It is maintained by the community and follows a structured format with automated checks. The repository includes a YAML-based client list that is automatically generated into a Markdown file, a script to check for stale projects, and a snippet for adding language overlays to movie posters. It is not a software application itself but a directory of applications and tools for the Jellyfin media server ecosystem. The repository demonstrates good practices for maintaining an awesome list with contribution guidelines, issue templates, and CI/CD workflows for linting and monthly releases.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
lunarr-app/lunarr-go ★ 383 10 APPLICATION

Lunarr is a self-hosted media server and streaming web application (similar to Plex or Jellyfin) built as a full-stack SvelteKit app with TypeScript. Despite the 'go' in the repository name, the codebase is entirely TypeScript running on the Bun runtime. It manages media libraries from local filesystems, SFTP, and WebDAV sources, scans and matches media against TMDB metadata, transcodes video with FFmpeg, and streams via HLS. The app includes user management, admin-only settings, library sharing via token-based shares, device pairing, and watch progress tracking with Continue Watching and Next Up rails.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
Monibuca/engine ★ 981 207 APPLICATION

Monibuca/engine is a media streaming server engine written in Go, designed for extensibility through a plugin system. It handles the ingestion (publishing) and distribution (subscribing) of media streams, supporting protocols like RTSP, WebRTC, HTTP-FLV, and RTMP via plugins. The engine manages stream lifecycle through a state machine (waiting for publisher, track availability, publishing, waiting to close, closed), processes audio/video/data tracks with efficient buffering, and provides an HTTP API for stream control and monitoring. Key internals include a custom ring buffer for low-latency frame queuing, a memory pool to reduce GC pressure, and an event bus for inter-component communication. The configuration system supports layered overrides (command line > plugin config > global config > defaults). The architecture emphasizes separation of concerns: core stream management resides in stream.go, track handling in track/, publisher/subscriber logic in publisher/ and subscriber/, and plugins extend functionality without modifying the core. Data flows involve publishers sending media to the engine, which demuxes into tracks stored in ring buffers; subscribers then consume these tracks for retransmission. External dependencies include pion/webrtc for WebRTC, bluenviron/gortsplib for RTSP, and zap for logging. The engine exhibits strong performance optimizations but contains some complexity in state handling and occasional use of unsafe pointers for efficiency.

RATING: 8.1/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
lscambo13/ElegantFin ★ 2111 127 APPLICATION

ElegantFin is a comprehensive CSS theme for the Jellyfin media server, providing a modern, dark UI overhaul inspired by Jellyseerr. It is delivered as a single CSS import and relies entirely on CSS custom properties (design tokens) for customization, allowing users to adjust colors, layout, and visibility toggles. The theme is built with PostCSS and includes optional add-on stylesheets for custom media covers and third-party plugin support. The codebase consists of versioned, monolithic CSS files that override Jellyfin's default styling across desktop, mobile, and TV layouts. It is not an application backend or data pipeline; it is a pure client-side presentation layer. The theme demonstrates strong CSS craftsmanship through extensive use of modern selectors (`:has()`, `@container`, `@supports`), responsive card grids, and design token abstraction, though it suffers from duplication across versions and reliance on external CDN resources.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
CTalvio/Ultrachromic ★ 994 60 APPLICATION

Ultrachromic is a CSS theme for the Jellyfin media server that provides a modular system of CSS overrides to customize the appearance of the Jellyfin web interface. It consists of multiple CSS files that can be imported in a specific order to build a theme, including base styling, accent colors, rounding, progress bars, and various visual effects. The theme uses CSS variables for easy customization and includes presets that replicate the appearance of older chromic themes. It demonstrates good use of modern CSS features such as CSS variables, animations, backdrop-filter, and media queries.

RATING: 8.0/10 MAINT: maintained DRIFT: low
▸ 2 reusable components found
AdrienPoupa/docker-compose-nas ★ 2136 263 APPLICATION

This repository provides a comprehensive Docker Compose configuration for building a self-hosted NAS (Network Attached Storage) system. It orchestrates over 20 services including media management (Sonarr, Radarr, Lidarr, Bazarr, Prowlarr, qBittorrent, Jellyfin, Jellyseer), a WireGuard VPN (PIA), reverse proxy (Traefik with Let's Encrypt), a homepage dashboard (Homepage), automatic updates (Watchtower), and optional services like AdGuard Home, Home Assistant, Immich, Vaultwarden, Paperless, and more. The architecture is a multi-container Docker stack with a shared network, designed to run on any Docker-capable Linux box. The primary data flow involves downloading media via qBittorrent through a VPN, managing it with *arr applications, and serving it via Jellyfin. The repository includes automation scripts for initial configuration (update-config.sh) and port forwarding updates (pia-shared/portupdate-qbittorrent.sh). It is not a software application with custom code but rather a well-documented, opinionated deployment template. The codebase is primarily configuration files (docker-compose.yml, environment files, nginx configs) with a few bash and JavaScript scripts. The quality is good for its purpose: it is organized, documented, and widely used, but it lacks reusable software components that could be extracted into a new project with minimal modification.

RATING: 7.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
agregarr/agregarr ★ 1027 41 APPLICATION

Agregarr is a full-stack Plex collection management application built with Next.js and Express, written in TypeScript. It automates the creation, synchronization, and visual customization of Plex collections by integrating with numerous external media sources and APIs including Trakt, TMDB, IMDb, Letterboxd, MDBList, AniList, MyAnimeList, Tautulli, Overseerr, Radarr, and Sonarr. The core architecture follows a monolithic pattern: a single server process running both the React frontend and Express backend, with SQLite persistence via TypeORM and a robust migration system. In production, Agregarr performs scheduled full syncs and incremental quick syncs of collection definitions to Plex, applies poster overlays based on configurable conditions (ratings, resolution, audio codecs, HDR formats), manages placeholder items for upcoming content, and can auto-request missing media through Radarr/Sonarr or Overseerr. The UI provides per-library collection views with drag-and-drop reordering, a visual poster editor with snap-to-guides and layering, an overlay editor with condition evaluation, and dashboard statistics from Tautulli. The codebase demonstrates solid engineering with clear separation of concerns, a template method pattern for collection sources (`BaseCollectionSync`), consistent API client wrappers, and modular UI form sections. However, it carries significant maintenance overhead from fragile web scraping (IMDb WAF, Cloudflare bypass), a large dependency surface including Chromium and Playwright, commented-out legacy code from its Overseerr fork, and reliance on external APIs that may change unexpectedly. The project is actively maintained with frequent migrations and feature additions.

RATING: 7.2/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
xiaoyaDev/xiaoya-alist ★ 8489 1185 APPLICATION

This repository is a Bash-driven, Docker-centric deployment and maintenance toolchain for the xiaoya-alist personal media stack. The actual product is an interactive installer/manager: main.sh dispatches to the monolithic all_in_one.sh, which provides numbered menus for installing, updating, uninstalling, and configuring AList, Emby, Jellyfin, TVBox, Portainer, Onelist, Auto_Symlink, CasaOS, cron containers, and cloud-drive token helpers. It is a CLI application, not a library or data pipeline; the primary data flows are downloading and extracting large media metadata archives (all.mp4, config.mp4, 115.mp4, etc.) with 7z/wget/aria2c inside xiaoyaliu/glue containers, persisting cloud-drive cookies/tokens, and recreating Docker containers while preserving their original run parameters. Architecturally, the codebase is a large interactive shell script supported by a small base shell library (base/base.sh) and several independent Flask helpers under glue_python/. The Python components implement QR-code OAuth flows for 115, Quark, UC, and Aliyun Drive, plus a reverse-engineered Aliyun TV token service and Emby plugin helpers. External dependencies include Docker, third-party Docker images (amilys/embyserver, xiaoyaliu/glue, ddsderek/*), GitHub/gitee mirrors, and cloud-drive web APIs. The repository also contains GitHub Actions for linting, version scraping, and Docker image publication. Maintenance is active, but the codebase shows notable drift and engineering debt: xiaoya_data_downloader.sh and xiaoya_notify.sh are explicit deprecated stubs, many shell files disable shellcheck, hardcoded endpoints/keys appear in source, and there is no automated runtime test coverage. The main shell script is monolithic and contains duplicated or overloaded function names, making it hard to modify safely. Still, the shell utility library and the standalone token-connector components demonstrate enough isolated utility to be reused in other projects.

RATING: 6.8/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
streamaserver/streama ★ 9826 976 APPLICATION

Streama is a self-hosted media streaming server implemented as a Grails 3 (Groovy) monolith with an AngularJS 1.x single-page application frontend. In production, it allows users to upload or mount video files (movies, TV shows, generic videos), fetch metadata from TheMovieDB, stream videos via HTTP range requests (or optional transcoding via FFmpeg), manage subtitles (manual or from OpenSubtitles), track viewing progress, and manage multi-profile accounts with role-based access. The system relies on MySQL (or H2 for dev), Java 8, and external APIs (TheMovieDB, OpenSubtitles). The architecture is a traditional Grails web application with RESTful controllers, Groovy services for business logic, and a rich client-side AngularJS interface that includes a custom video player directive, admin panels, and dashboard views. The codebase shows signs of a long-lived project with a large number of vendored frontend dependencies (Bower-managed), some now outdated (AngularJS 1.x, jQuery UI, Bootstrap 3). While the application is functional and well-documented, the technology stack is aging, and the frontend particularly would benefit from modernization.

RATING: 6.3/10 MAINT: maintained DRIFT: high
▸ 5 reusable components found
BinsonBuzz/unraid_rclone_mount ★ 297 68 APPLICATION

This repository provides a collection of bash scripts for setting up rclone mounts and managing file uploads to cloud storage (primarily Google Drive) for media server applications like Plex or Emby on Unraid systems. The scripts automate the process of mounting remote storage via rclone, merging it with local storage using mergerfs to create a unified filesystem, starting dependent Docker containers, and uploading files from local storage to the cloud with features like bandwidth scheduling, service account rotation, and upload limits to avoid API bans. The project is explicitly marked as no longer supported by the author, with a reference to an alternative repository for similar functionality.

RATING: 5.1/10 MAINT: deprecated DRIFT: high
$ loading more...
$ submit: