This repo contains all code for the browser extension Jelly-Party. Jelly-Party syncs video playback between a group of peers.
npm install
npm run 'stage devtools'
This will compile the project and serve it under dist
, which you can load unpacked into Chrome or Firefox. Furthermore, this spins up vue-remote-devtools
for debugging purposes.
Note that you'll connect to the staging server (staging.jelly-party.com
) instead of the live server (ws.jelly-party.com
).
Please head to the Jelly-Party-Server repository and spin up a server instance. You must set up your custom domain and you'll need to tweak both Jelly-Party-Extension and Jelly-Party-Server.
npm run build
As a browser extension, Jelly-Party is inherently more difficult to test than e.g. pure javascript
libraries. For now, we have a semi-automatic setup using puppeteer
coupled with a local Chrome installation.
Copy config.template.ts
to config.ts
.
cd jelly-party-extension
cp tests/config.template.ts tests/config.ts
The file will look as follows:
export const config = {
chromePath: "/opt/google/chrome/google-chrome",
ublockPath:
"/home/user/.config/google-chrome/Profile 1/Extensions/cjpalhdlnbpafiamejdnhcphjbkeiagm/1.28.4_0",
cookies: {
netflix: [],
disneyPlus: [],
},
};
Edit chromePath
(mandatory) & ublockPath
(optional — required if you want Chrome to launch with uBlock Origin
) and add any session cookies you have for netflix
, disneyPlus
and other providers. chromePath
is required, because DRM-protected services (most of them use widevine
) do not allow playback in Chromium
browsers.
Make sure the provider is configured correctly in tests/src/index.ts
. At the very least, your provider will require a magic link. If the provider requires a login, you'll also need to specify a setCookiesAtURL
(navigated to once, to set the cookies) and a cookies
parameter.