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.tsThe 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.