- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| src/renasync | ||
| .gitignore | ||
| LICENSE | ||
| PROTOCOL.md | ||
| pyproject.toml | ||
| README.md | ||
Renasync
Renasync makes synchronized playback between video player instances easy and simple. This repository comes with a server implementation and a desktop client using libmpv, along with documentation about the underlying protocol.
Features
- Small codebase with minimal amount of dependencies
- Join different lobbies and chat together with people
- Load files/URLs and synchronize pause/seek state among participants
- Server supports TLS and comes with isolation features for security (chroot, pledge)
Installation
Requirements:
- python (3.10 or higher)
- libmpv (client only)
You can either download and run the zipapp from the Releases section, or use one of the methods listed below.
Using pip
From inside this repository, run:
pip install .
Building the zipapp
If you wish to build the zipapp yourself, run:
pip install -t dist --no-compile --platform any --only-binary=:all: .
python -m zipapp -o renasync -p '/usr/bin/env python3' -m renasync.cli:main -c dist
Getting Started
Run the interactive CLI:
renasync
Alternatively, you can use the command line arguments for extra customization:
renasync client --help
renasync server --help
To start a local server, run:
renasync server
And then to connect to it:
renasync client -n name -r room -s ws://127.0.0.1:9999
MPV Keybinds
ENTER -> Send messages in chat
TAB -> View online users
' -> Load a local file or URL
: -> Ignore URLs from other users
Chat commands
While typing in chat, you can use commands to perform certain actions:
/privmsg [USER] [MESSAGE]
Sends a private message to USER.
/loadto [USER] [URL]
Makes USER load the given URL.
/loadfrom [USER]
Load the same file or URL that USER is playing.
Notes
When someone else loads a local file in the lobby, the desktop client will attempt to load a file in the current directory with the same name. You can use this feature to make several clients load the same local file at once.