A FULLY synchronized HTML5 video player for Minecraft's WebDisplays mod using Node.js and Socket.IO. This project allows all players to view the same video in perfect sync—including play, pause, and seek actions—across connected clients.
Frequently Asked Questions: FAQ
- Node.js installed on your machine (v16+ recommended)
- ffmpeg installed for high bitrate support and video optimization
- Media files placed in the
/videos/
folder (supports MP4, MP3)
- Multi-format streaming (MP4, MP3)
- High Quality streaming with FFmpeg optimization
- Playlist support with sequential playback
- Admin control panel for remote management
- Real-time playback synchronization using Socket.IO
- Lightweight Node.js + Express server
- Custom video control zones designed for the WebDisplays mod thats still usable in normal web browsers(click-based)
- Automatic video preloading for smooth transitions
Warning
H.265 or HEVC codec are not yet supported
Zone | Action | Sync Behavior |
---|---|---|
Left Edge (≤ 87px) | ⏪ Rewind 5 seconds | ✅ Synced |
Right Edge (≥ screen width − 87px) | ⏩ Skip forward 5 seconds | ✅ Synced |
Center (±75px from center) | ⎯️ Toggle Play / Pause | ✅ Synced |
Between Left Edge and Center | 🔈 Decrease volume (5%) | ❌ Local only |
Between Center and Right Edge | 🔊 Increase volume (5%) | ❌ Local only |
Of course use Left Click if you're not in minecraft while using this
- Playlist creation and management
- Remote play/pause/skip/seek controls to eliminate desync
- Main video selection with custom start time
- File browser for media management
Note
All users will see the same video at the same time except for volume, which is controlled individually per client.
Note
Ensure Node.js is installed before proceeding. Run "npm install express@5.1.0 socket.io@4.8.1" at cmd in case of the auto install failing.
Best for Many people and Repeated users, complex setup
- Run
start.bat
in your folder - Make sure your selected port is open in your firewall/router
- Access the video player from devices at the provided links
- Access admin panel at
http://your-ip:port/admin
and go tohttp://your-ip:port
in minecraft
Method 2: Tailscale (Virtual LAN) Basic to setup. Takes a bit longer than method one to do a subsequent start
- Download and install Tailscale on everybody's computers
- Invite your friends to your Tailnet
- Run
start.bat
, then visit the provided network link
Important
Beware, Tailscale only allows 3 emails per Tailnet, but it allows a 100 devices to be connected at the same time, so it would be best if you created a new email for your friends to log into tailscale to just for this
- Fork the repository: https://github.com/Lakunake/Minecraft-WebDisplays-Sync-Player
- Connect your repository to your hosting service
- Set build command:
npm install
- Set start command:
node server.js
- Deploy and access your video player via the provided URL
Warning
Not recommended due to the free plan limitations of websites
Congratulations if you managed to deploy it successfully using Cloud Hosting...
/videos/ # Folder containing media files
server.js # Node.js backend with Socket.IO
index.html # Client video player interface
admin.html # Admin control panel
package.json # Node.js dependencies and scripts
start.bat # Windows startup script
config.txt # Configuration file (port, settings, etc.)
Edit config.txt
to customize:
max_clients: 10 # Amount of Expected Simultaneous clients
chunk_size: 10 # Video chunk size in MB
port: 3000 # Server port
volume_step: 5 # Volume adjustment percentage
skip_seconds: 5 # Skip duration in seconds
Short name: CC BY-NC-SA 4.0
URL: https://creativecommons.org/licenses/by-nc-sa/4.0/
This project is licensed under CC BY-NC-SA 4.0:
- Free to use and modify
- Must credit the original creator (Lakunake)
- Commercial use is not allowed
- Must share any changes with the same license if distributed or hosted publicly
See LICENSE for more details.
Created by Lakunake Built using Node.js, Express, and Socket.IO Contact: johnwebdisplays [at] gmail [dot] com (Obviously not my real name)