
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
synclounge
Advanced tools
SyncLounge (Previously PlexTogether) is a tool to sync Plex content across multiple players in multiple locations.
SyncLounge aims to keep multiple viewing sessions in sync regardless of whether the clients are in the same room or across the globe. To do this SyncLounge utilizes a middle-man server to communicate between each of the SyncLounge clients. Users choose their Plex client, decide on a SyncLounge Server and Room name and join up. Your friends/family can do the same. Whoever joins the room first will become the host.
The host has complete control over a room. Commands they send to their client will be sent through to other people in the room (Play, Pause, Seek etc). If the host starts playing something different, SyncLounge will search all of your available Plex Media Servers for an equivalent copy, even if it is not from the same Plex Media Server as the Host.
Head to the website
Theoretically, all Plex Clients that implement the Plex Client Protocol will work. As some clients have this implemented slightly differently, compatibility with SyncLounge may vary. If you have access to one of the untested clients please let us know so we can update our list below.
Some low powered clients may be hard to achieve a perfect sync with (for example: Raspberry Pi clients).
By default, it listens on port 8088. All the paths are relative, so you can use a reverse proxy at any subdirectory or subdomain without any additional configuration to SyncLounge. In this version, the webapp and socket server are combined so you only need to proxy that one port if you are using a reverse proxy.
Using the Docker image is the easiest path because it works out of the box. You can get it running immediately by
docker pull synclounge/synclounge
docker run -p 8088:8088 synclounge/synclounge:latest
You can use environment variables to change any of the default configuration.
Note that nested objects and arrays can be passed as environment variables in the following way:
AUTHENTICATION='{"mechanism":"plex","type":["server"],"authorized":["MACHINE_ID"]}'
SERVERS='[{"name":"My Server","location":"Mothership","url":"https://myserver.com","image":"https://myserver.com/myimage.jpg"}]'
Make sure you have nodejs installed.
sudo npm install -g synclounge
Then you can run it:
synclounge
If you want to change any of the default configuration, you can either use environment variables with the same name, use command line arguments, or use a config file and run synclounge like synclounge --config_file /path/to/config.json
If you want to run SyncLounge behind Nginx, here is an example configuration
map $http_upgrade $connection_upgrade {
default upgrade;
'' '';
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
# TODO: Replace this with your domain
server_name somesubdomain.yourserver.com;
# TODO: include your ssl certs and parms, etc
location / {
# TODO: Replace this with your container address or localhost
proxy_pass http://containeraddress:8088;
proxy_http_version 1.1;
proxy_socket_keepalive on;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
}
}
To make synclounge run at a subfolder, all you need to do is change your reverse proxy configuration.
map $http_upgrade $connection_upgrade {
default upgrade;
'' '';
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
# TODO: Replace this with your domain
server_name somesubdomain.yourserver.com;
# TODO: include your ssl certs and parms, etc
# TODO: replace "somefolder" with your desired subfolder
location /somefolder/ {
# TODO: Replace this with your container address or localhost.
# Important: keep the trailing slash
proxy_pass http://containeraddress:8088/;
proxy_http_version 1.1;
proxy_socket_keepalive on;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
}
}
The FAQ, Self-Hosting, Development, Contributing, and other documentation has been move to docs.synclounge.tv! Head there for more information!
samcm - Developer
gcordalis - User Interface
ttshivers - Developer
Brandz - Design
TheGrimmChester - Developer/Tester
MagicalCodeMonkey - Developer/Tester
Starbix - Docker Support
kg6jay - Tester
Twitter: SyncLounge
SyncLounge is licensed under MIT License. See the LICENSE.txt
file.
SyncLounge is in no way affiliated with Plex Inc.
Using Material Design libraries provided under CC-BY 4.0
FAQs
Synced playback of Plex content
The npm package synclounge receives a total of 9 weekly downloads. As such, synclounge popularity was classified as not popular.
We found that synclounge demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.