Datenight aims to solve the problem of sync'ing when multiple parties are co-consuming the same media.
-
On macOS and Linux (via unixsocket):
-
On Linux:
Additionally, for the introspective client (recommended):
- PyGObject (pypi)
pip install PyGObject
- GObject Introspection (upstream)
sudo pacman -S gobject-introspection
And one of the following two packages:
- PyGObject (pypi)
Dependencies can be installed via pip install -r client_requirements
- The only client supported so far is vlc
- Having two clients open is unsupported and results in undefined behavior
- The unixsocket client on macOS or linux requires a one-time configuration to VLC. On vlc 2.2.3, the instructions are as follows:
- Go to tools --> preferences (ctrl/cmd + P)
- Toggle "show settings" to "All" instead of "Simple" (bottom left corner)
- Under "Interface" --> "Main interfaces", tick "Remote control interface"
- Under "Interface" --> "Main interfaces" --> "RC", tick "Fake TTY" and type "/tmp/vlc.sock" as the "UNIX socket command input"
- Save and restart VLC
The client can be run via the ./run_client.py
script. -h
for help.
- Python3
- Flask-SocketIO
Dependencies can be installed via pip install -r server_requirements
The server can be run via the ./run_server.py
script. -h
for help.
- resume countdown (in 3..2..1)
- save publishers as objects on datenight.js + only send relevant data from server
- migrate client to twisted/autobahn/sockjs
- support multiple rooms
- client for windows
- after "stability" is reached, split client/server into separate repos