An open API service indexing awesome lists of open source software.

https://github.com/lakunake/minecraft-webdisplays-video-player

Lets you have a FULLY SYNCED .mp4 video player specifically designed for the mod WebDisplays for all versions!
https://github.com/lakunake/minecraft-webdisplays-video-player

cef expressjs forge html5-video minecraft nodejs real-time server socket-io sync synchronization video video-player video-sync watch-together webdisplays

Last synced: 9 months ago
JSON representation

Lets you have a FULLY SYNCED .mp4 video player specifically designed for the mod WebDisplays for all versions!

Awesome Lists containing this project

README

          

# WebDisplays-Video-Player

THIS IS NO MOD, DATAPACK, PLUGIN OR RESOURCE PACK. THIS IS A STANDALONE COMPANION TOOL NODE.JS SERVER ENCHANCED WITH FFMPEG

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.

> ๐Ÿ”— GitHub Repo: [Lakunake/WebDisplays-Video-Player](https://github.com/Lakunake/WebDisplays-Video-Player)

---

## ๐Ÿš€ Requirements

* [Node.js](https://nodejs.org/) installed on your machine (v16+ recommended)
* [ffmpeg](https://ffmpeg.org/) installed on your machine for 1.3 and further versions if you want high bitrate support and the video optimizer working (7.1 below is not tested)
* A `.mp4` video file named `filmeva.mp4` placed in the `/videos/` folder

---

## ๐ŸŽฎ Features

* ๐Ÿ“บ MP4 video streaming via HTML5 `` tag
* โœจ VERY High Quality support in 1.3+ thanks to ffmpeg!
* ๐Ÿ” Real-time playback synchronization using Socket.IO
* โŽฏ๏ธ Syncs `play`, `pause`, and `seek` events across all connected users
* ๐Ÿ“ก Can be used over LAN, Hamachi, or hosted publicly (Render etc.)
* โš™๏ธ Lightweight Node.js + Express server
* ๐Ÿ–ฑ๏ธ Custom video control zones (click-based)

---

## ๐Ÿ•น๏ธ Controls

Click-based controls have been implemented for easy, mouse-only interaction:

| 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 |

> โš ๏ธ All users will see the same video at the same time except for **volume**, which is controlled individually per client.

---

## ๐ŸŒ Hosting Tutorials

> โš ๏ธ All commands are run from Command Prompt (CMD).
> Ensure [Node.js](https://nodejs.org/) is installed before proceeding.
> Place `videos/`, `server.js`, and `index.html` in the same folder, e.g. `C:\YourFolder\`.

### ๐Ÿ”Œ Option 1: LAN or Public IP (Direct Hosting)

1. Run `start.bat` in your folder
2. Make sure your selected port is open in your firewall/router.
3. Access the video from another device at the links given

### ๐ŸŒ Option 2: Hamachi (Virtual LAN)

1. Download and install [LogMeIn Hamachi](https://vpn.net).
2. Create a network, have others join it.
3. Share your **Hamachi IP address** (shown in Hamachi).
4. Run `start.bat`, then visit the `Your Network` link

### ๐Ÿš‚ Option 3: Hosting on Render or any other Cloud Hosting Service (Not Recommended)

1. Go to [Render](https://render.com).
2. Create a new project โ†’ Deploy from GitHub.
3. Connect your repository:
[https://github.com/Lakunake/WebDisplays-Video-Player](https://github.com/Lakunake/WebDisplays-Video-Player)
4. Choose the "RENDER" branch
5. Set these scripts to:

```json
"start": "node server.js"
"build": "npm install"
```
6. Deploy and access your video player via the Render-provided URL.

---

## ๐Ÿ“ File Structure

```
/videos/filmeva.mp4 # Your synced video file
server.js # Node.js backend for socket and file serving
index.html # The frontend video player
package.json # This tells Node.js which dependencies to install and how to run the server
start.bat # The start file, gives you the link of the server
config.txt # Optional config file to customize server port, install behavior, and launch settings
```

---

## ๐Ÿ“œ License

**Short name**: `CC BY-NC-SA 4.0`
**URL**: [https://creativecommons.org/licenses/by-nc-sa/4.0/](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](LICENSE) for more details.

---

## ๐Ÿ™ Credits

Created by **Lakunake**
Built with โค๏ธ using Node.js, Express, and Socket.IO
Contact me at JohnWebdisplay@gmail.com