MCPSERV.CLUB
CyTube

CyTube

Self-Hosted

Synchronized video watching with chat for shared playlists

Active(88)
1.5kstars
0views
Updated 16 days ago

Overview

Discover what makes CyTube powerful

CyTube is a self‑hosted, real‑time media streaming platform that allows users to create “channels” where viewers watch videos from various hosts (YouTube, Twitch, etc.) in perfect sync. At its core it manages a playlist per channel, orchestrates playback timing across all connected clients, and provides an integrated chatroom for discussion. The application is built as a web service with a real‑time backend, making it suitable for community hubs, virtual watch parties, or any scenario that requires synchronized media consumption.

Language & Runtime

Frameworks

Database

Frontend

Overview

CyTube is a self‑hosted, real‑time media streaming platform that allows users to create “channels” where viewers watch videos from various hosts (YouTube, Twitch, etc.) in perfect sync. At its core it manages a playlist per channel, orchestrates playback timing across all connected clients, and provides an integrated chatroom for discussion. The application is built as a web service with a real‑time backend, making it suitable for community hubs, virtual watch parties, or any scenario that requires synchronized media consumption.

Technical Stack

  • Language & Runtime: The server side is written in Node.js, leveraging its event‑driven architecture to handle thousands of concurrent WebSocket connections.
  • Frameworks: Uses the Express.js web framework for HTTP routing and Socket.IO (or a compatible WebSocket library) to deliver real‑time events such as play, pause, skip, and chat messages.
  • Database: Relies on a lightweight relational database (SQLite or PostgreSQL) to persist channel definitions, playlists, user accounts, and chat history.
  • Frontend: Pure HTML5/JavaScript with modern UI libraries (React/Vue not required) for the client interface. The player layer is abstracted to support multiple video hosts via iframe or API integration.

Core Capabilities

  • Synchronized Playback: The server keeps a master clock for each channel and broadcasts timestamped play events to all clients, ensuring that latency differences are compensated automatically.
  • Playlist Management: Users can enqueue videos by URL, reorder items, and remove entries. The playlist is stored server‑side and synchronized across all viewers.
  • Chat API: A lightweight chat system is exposed via WebSocket events, with optional persistence in the database.
  • Extensible Video Sources: The architecture supports adding new video providers by implementing a simple adapter that validates URLs and extracts embed parameters.
  • Developer API: REST endpoints exist for creating channels, querying playlists, and managing users. Webhooks can be configured to trigger external services on events like “video started” or “channel created.”

Deployment & Infrastructure

CyTube is designed for self‑hosting on any Linux distribution with Node.js and a database installed. The codebase is containerizable; Dockerfiles are available in the repository, enabling quick deployment via docker-compose. For scalability, each channel can be served by a separate process or container, and load balancers can route WebSocket traffic using sticky sessions. The lightweight stack keeps memory usage low (≈200 MB per instance) and makes horizontal scaling straightforward.

Integration & Extensibility

  • Plugin System: Developers can add or replace modules (e.g., authentication backends, analytics dashboards) by dropping JavaScript files into a designated plugins directory.
  • Webhooks & Callbacks: External services can subscribe to channel events, enabling integrations with Discord bots, Slack notifications, or custom dashboards.
  • Custom Themes: The UI is themeable via CSS overrides; community themes are hosted on the project's wiki.
  • OAuth Support: Optional OAuth2 providers can be configured for single‑sign‑on, useful in corporate or educational deployments.

Developer Experience

  • Documentation: The GitHub wiki contains a comprehensive installation guide, API reference, and troubleshooting sections.
  • Community: Active issue tracking on GitHub, an IRC channel for real‑time help, and a public FAQ reduce friction for new contributors.
  • Licensing: MIT license grants full freedom to modify, redistribute, or commercialize the codebase without copyleft constraints.

Use Cases

  • Virtual Watch Parties: Organize synchronized viewing sessions for film clubs or streaming events.
  • Educational Lectures: Instructors can create a channel where students watch lecture videos together, with real‑time chat for questions.
  • Community Events: Gaming communities or fan clubs can host live commentary sessions with integrated chat.
  • Enterprise Training: HR departments can deploy internal channels for training videos, ensuring all employees view the same content simultaneously.

Advantages Over Alternatives

  • Performance: Node.js and WebSocket provide low‑latency synchronization suitable for large audiences.
  • Flexibility: The adapter pattern allows adding new video hosts without touching core logic.
  • Self‑Hosting Freedom: No reliance on third‑party services; data remains under the owner’s control, essential for privacy‑conscious deployments.
  • Open Source & MIT: No licensing fees or restrictions, making it ideal for both open source projects and commercial products.

In summary, CyTube offers a lightweight yet powerful platform for developers who need synchronized media streaming with real‑time interaction, all backed by a clear architecture and robust community support.

Open SourceReady to get started?

Join the community and start self-hosting CyTube today