theater-with-friends
theater-with-friends copied to clipboard
🎥 Watch movies and YouTube videos with friends in sync
TheaterWithFriends
This project runs a website on YOUR server that lets you play videos stored ON the server and YouTube, Vimeo, etc. videos, synced to everyone else.
It is a full-fledged streaming platform with queue and re-encoding and needs a dedicated server with a good enough CPU.
It USED to be able to display motion graphics on-demand with your own text, but this function is now broken for the time being.
However, if you can scrounge up two fonts (Rockwell aka. ROCK.TTF and DIN aka. DINE1.TTF), you DO have some dynamic graphics support as "overlay text," seen below in the top left:
⚠ BIG Warnings ⚠
This project is almost ten years old and I have gotten it to run BUT not perfectly.
The server is NOT secure AT ALL anymore unless you change the source files.
Please bear with it.
-Thanks, the management
Requirements
BIG REQUIREMENT: You own a Linux server and know how to configure one.
Technical knowledge required: Pasting commands
Setup and Usage
These steps are for Ubuntu in the command line.
- Download the project. Put it somewhere and
cd
to it. - Install Docker.
-
sudo apt-get install -y docker-compose
-
docker-compose build && docker-compose up -d
(remove the -d if you want to see the log when it starts up) - Upload videos to the "content" folder (pretty much every common video format works). You can upload files when the software is running.
Now, go to http://YOUR_IP/manage/
with username admin
and password admin
. You can:
- Queue up videos that you uploaded
- Queue up YouTube/etc. URLs from More -> Enqueue
- The graphics tab DOES NOT WORK anymore.
- The live tab DOES NOT WORK anymore.
To watch your video, go to http://YOUR_IP:8080/
(don't forget the :8080)
Caveats
- Once you start a video, it will take a few seconds before it will actually start playing.
Verify on
http://YOUR_IP:8080/stats.xml
that there is a "theater" stream. - Try to always have a video queued, but your friends can always refresh the page.