Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nikhilweee/seeksync
Watch Videos Together in Sync
https://github.com/nikhilweee/seeksync
chrome-extensions sidepanel
Last synced: 22 days ago
JSON representation
Watch Videos Together in Sync
- Host: GitHub
- URL: https://github.com/nikhilweee/seeksync
- Owner: nikhilweee
- License: mit
- Created: 2024-08-01T04:15:00.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-09-08T21:06:54.000Z (4 months ago)
- Last Synced: 2024-10-24T21:24:21.603Z (2 months ago)
- Topics: chrome-extensions, sidepanel
- Language: JavaScript
- Homepage: https://chromewebstore.google.com/detail/seeksync/jlofdbpgmgeokldbfhlcihikebgmpnoa
- Size: 74.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# seeksync
Browser extension for synchronized video playback.
![Seeksync Screenshot](https://i.imgur.com/PeMSkZK.jpg)
## Summary
- Synchronize play, pause and seek actions between users.
- Send messages to each other using the chat feature.
- Free and open source. Have complete control over your data.
- Requires hosting your own sync server.
- Currently only supports Netflix.## Getting Started
This extension is based on a client-server architecture, and has two components:
1. A browser extension (the client) to relay actions to / from the server.
2. A server (seekserver) to coordinate communication between clients.The browser extension can be installed from the
[Chrome Web Store](https://chromewebstore.google.com/detail/seeksync/jlofdbpgmgeokldbfhlcihikebgmpnoa).
A simple websockets based python server is available at `seekserver/server.py`.
To get started, every user needs to install the extension on their browsers.
However, only instance of the server can cater to multiple clients.Follow these steps for detailed instructions on how to install the extension and
setup the server.## Extension Setup
You can either install the extension from the Chrome Web Store, or download the
latest version of the extension as a ZIP file and manually install it. For
simplicity, we recommend the Chrome Web Store.### Chrome Web Store
You can install the extension from the
[Chrome Web Store](https://chromewebstore.google.com/detail/seeksync/jlofdbpgmgeokldbfhlcihikebgmpnoa).### Download ZIP
1. Download this repository. Go to https://github.com/nikhilweee/seeksync/,
click on the green `Code` button on the top right, then click `Download ZIP`.
Unzip the file after downloading.
2. On Chrome, open the extensions page. On the top right of the toolbar, click
`⋮` > `Extensions` -> `Manage Extensions`, or go to `chrome://extensions`
from the address bar.
3. Enable developer mode. Click the toggle on top right which says
`Developer mode`.
4. Install the extension. Click on `Load unpacked` and navigate to the unzipped
download location. Select the inner `seeksync` folder.## Server Setup
The server is a simple python script that can be hosted on any machine with a
publicly reachable IP address. The server script is available at
`seekserver/server.py`. An easy way to run the server is to host it on any cloud
VM provider with a public IP. You can either run the server manually, or use
Docker Compose. The instructions assume that you are running the server on a
linux machine with a public IP of `11.22.33.44`.### Docker Compose
Just navigate to `seeksync/seekserver` and spin up a container:
```console
$ # Run this from seeksync/seekserver
$ docker compose up -d
```The server should be ready to serve connections at `11.22.33.44:5678`
### Manual Setup
A working installation of Python is required.
1. Create a virtual environment (optional)
```console
$ # Run this from seeksync/seekserver
$ python3 -m venv .venv
$ source .venv/bin/activate
```2. Install dependencies
```console
$ pip install -r requirements.txt
```3. Start the server
```console
$ python server.py
```Like before, clients should be able to connect to `11.22.33.44:5678`
## Usage
Follow these steps to setup a connection to the server and enjoy watching videos
in sync.### Connect to the Server
1. Activate the extension by clicking its icon on the toolbar. If the icon isn't
visible, click on the extensions button (shaped like a jigsaw) on the toolbar
and click SeekSync. You should see the sidepanel open up.
2. On the sidepanel, click `⚙` and enter some details.
1. In the server field, enter the public IP of your server
`11.22.33.44:5678`.
2. The room name can be anything as long as all users use the same room name.
3. Choose any username to identify yourself in the room.
3. Click the toggle right next to the settings icon. If everything goes well,
you should see a message saying `Connected to `.### Start Watching
1. To watch videos together as a group, ask all users to connect using the same
server and the same room. Make sure each user sets a unique username.
2. Start watching something on a supported platform. Other users should get a
message with the link to the video that you are watching. Ask them to click
on that link so they are "on the same page".
3. From here on, every user watching the same video should have synchronized
playback. Whenever someone performs an action (pause, play or seek), the
action will be performed for all users. A message will also appear on the
chat window every time someone performs an action.
4. If you face any issues, try refreshing the page to trigger a refresh.
5. To disconnect and exit the room, press the toggle next to `⚙`.## Documentation
Additional documentation can be found in [DOCS.md](DOCS.md).