Synchronize playback between video player instances
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-03-22 20:34:44 -03:00
src/renasync Bumped version to 1.0.2 2026-03-22 20:34:44 -03:00
.gitignore Initial commit 2026-01-27 17:55:42 -03:00
LICENSE Initial commit 2026-01-27 17:55:42 -03:00
PROTOCOL.md Initial commit 2026-01-27 17:55:42 -03:00
pyproject.toml Bumped version to 1.0.2 2026-03-22 20:34:44 -03:00
README.md Change default keybind 2026-02-16 21:28:32 -03:00

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.