2018-07-20 04:32:39 +00:00
< p align = "center" > < img src = "https://synclounge.tv/assets/img/SL_LOGO_800x200_DARK.png" / > < / p >
2017-04-07 05:09:03 +00:00
2017-06-08 18:31:10 +00:00
< p align = "center" >
2018-07-20 04:31:44 +00:00
< a href = "https://hub.docker.com/r/starbix/plextogether/builds/" > < img src = "https://img.shields.io/docker/build/starbix/plextogether.svg" alt = "Build Status" > < / a >
< a href = "https://microbadger.com/images/starbix/plextogether:latest" > < img src = "https://images.microbadger.com/badges/version/starbix/plextogether:latest.svg" alt = "Version" > < / a >
< a href = "https://microbadger.com/images/starbix/plextogether:latest" > < img src = "https://images.microbadger.com/badges/image/starbix/plextogether:latest.svg" alt = "Size" > < / a >
< a href = "https://hub.docker.com/r/starbix/plextogether/" > < img src = "https://img.shields.io/docker/pulls/starbix/plextogether.svg" alt = "Pulls" > < / a >
2017-06-08 18:31:10 +00:00
< a href = "https://opensource.org/licenses/MIT" > < img src = "https://img.shields.io/badge/License-MIT-yellow.svg" alt = "License" > < / a >
< br >
< / p >
2017-06-08 18:42:10 +00:00
2017-12-13 12:58:15 +00:00
SyncLounge (Previously PlexTogether) is a tool to sync [Plex ](http://plex.tv ) content across multiple players in multiple locations.
2017-04-07 05:09:03 +00:00
2018-07-20 04:37:24 +00:00
While we run a live version available at [synclounge.tv ](http://app.synclounge.tv ), the project can be built and deployed completely seperate from synclounge.tv. We also provide a handful of public SyncLounge Server instances that everyone is free to use.
2017-06-08 18:31:10 +00:00
< p align = "center" >
2017-12-13 12:58:15 +00:00
< a href = "http://app.synclounge.tv" > Live Version< / a >
2017-06-08 18:31:10 +00:00
< br >
< / p >
2017-04-07 05:09:03 +00:00
## How it works
2017-12-13 23:19:59 +00:00
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.
2017-04-07 05:09:03 +00:00
2017-12-13 23:19:59 +00:00
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 equiavalent copy, even if it is not from the same Plex Media Server as the Host.
2017-04-07 05:09:03 +00:00
## Features
* Syncing between Plex Clients over the Internet
2017-12-13 12:58:15 +00:00
* SyncLounge Player
* Plays content directly within SyncLounge.
2018-07-20 04:31:44 +00:00
* Built specifically for syncing.
2017-12-13 12:58:15 +00:00
* Settings to tune SyncLounge to your environment
* Client Polling Interval - Sets how frequently SyncLounge will poll the client for new information.
2018-07-20 04:31:44 +00:00
* Sync Flexability - Sets the acceptable distance away from the host in milliseconds.
2017-04-07 05:09:03 +00:00
* Sync method:
* Clean seek - Seeks straight to where the host is.
* Skip ahead - Seeks 10 seconds ahead, pauses and then resumes 10 seconds later.
2018-07-20 04:31:44 +00:00
* Plex Media Server blocking - allows you to restrict the servers SyncLounge searches for content.
2017-05-11 14:41:20 +00:00
* Autoplay content
2017-12-13 12:58:15 +00:00
* SyncLounge will automatically search all of your available Plex Media Servers for content that is similar to the Host.
2018-07-20 04:31:44 +00:00
* Plex Media Server Browsing - find, search and fling content to Plex Clients from within SyncLounge.
2017-04-07 05:09:03 +00:00
* Metadata fetching from Plex Media Server
* Chat to others in your room
* Password locked rooms
2017-04-17 11:36:03 +00:00
* Invite others via generated short link
2017-04-07 05:09:03 +00:00
* Movies and TV Shows (Music not supported)
## FAQ
* _I have to login to Plex.tv on the site, how come?_
2018-07-20 04:31:44 +00:00
* SyncLounge uses your Plex account to fetch details about your Plex Clients and Media Servers to use within the app.
2017-04-07 05:09:03 +00:00
* _Won't you have access to my username, password and Plex account?_
2017-12-13 12:58:15 +00:00
* All of your details are stored client side (in your browser). Absolutely none of your **confidential** data is sent to our server. You can verify this by inspecting the Network tab within Chrome developer tools or if you would like you can deploy SyncLounge yourself - read the 'Building and deploying' section below.
2017-04-07 05:09:03 +00:00
* _What is sent then?_
2017-12-13 12:58:15 +00:00
* When you've connected to a SyncLounge room, a few details are sent back and forth to the SyncLounge Server to enable syncing. The data sent contains the following:
2017-04-07 05:09:03 +00:00
* Plex Username
* Plex User Thumbnail URL
* Content playing title (Eg. Lord of the Rings: The Fellowship of the Ring)
* Current timestamp (Eg. 00:35:02)
* Maximum timestamp (Eg. 03:48:18)
2018-07-20 04:54:44 +00:00
* Host content ratingKey
* Host machineIdentifier
2017-04-07 05:09:03 +00:00
* Playerstate (Eg. paused, stopped, playing)
* Client response time (Ping time between you and your Plex Client)
2017-12-23 12:51:28 +00:00
* SL Server address, SL Server Room and SL Server Room Password are sent to the WebApp when you join a room to create shortened invite links.
2017-12-13 12:58:15 +00:00
* _What about the public server provided by SyncLounge? Is my data safe?_
2017-04-07 05:09:03 +00:00
* We log absolutely nothing to disk. Data is kept within the room instance until you leave or the server restarts. We have enabled SSL on our public servers but if privacy is a concern for you we strongly suggest running your own server. For more details read the 'Building and Deploying' section below.
* _Speaking of SSL, why isn't the site served over HTTPS?_
2018-07-20 04:37:24 +00:00
* By default SyncLounge is server via HTTP. While we do offer HTTPS, doing so forces modern browsers in to blocking all HTTP connections. This effectively stops all communication with Plex Clients which are all HTTP.
2017-04-07 05:09:03 +00:00
## Screenshots
2017-12-13 12:58:15 +00:00
Head to the [website ](http://synclounge.tv )
2017-04-07 05:09:03 +00:00
## Supported Plex Clients
2017-12-13 12:58:15 +00:00
Theoretically, all Plex Clients that implement the Plex Client Protocol will work. As some clients have this implemented slightly differently, compability 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.
2017-04-07 05:09:03 +00:00
Some low powered clients may be hard to achieve a perfect sync with (for example: Raspberry Pi clients).
2017-06-08 18:31:10 +00:00
### Unsupported
* Plex Web Player (Chrome/Safari/Firefox)
2017-04-07 05:09:03 +00:00
### Supported
2017-05-11 14:41:20 +00:00
* Plex Media Player
2017-04-07 05:09:03 +00:00
* Plex Home Theater
* OpenPHT
* Rasplex
* Roku
* Android
2017-06-08 18:31:10 +00:00
* Nvidia Shield
* iOS (iPhone & iPad)
* AppleTV
2018-07-20 04:37:24 +00:00
### Broken
2017-04-07 05:09:03 +00:00
* Xbox One
* Xbox 360
* PS3
* PS4
## Contributing
2017-05-11 14:41:20 +00:00
Please use the Issue tracker here on Github for Issues & Feature requests. We'll gladly merge Pull requests if you're keen to get hands on with the development.
2017-04-07 05:09:03 +00:00
## Building and deploying
2017-05-11 14:41:20 +00:00
### Docker
2018-07-20 04:37:24 +00:00
This is the official Docker container for SyncLounge: https://hub.docker.com/r/starbix/synclounge
2017-05-11 14:41:20 +00:00
The following tags are available:
2018-07-20 04:31:44 +00:00
* latest / alpine: webapp and server based on alpine
2017-05-11 14:41:20 +00:00
* server: only server based on alpine
* dev: development version of webapp and server based on alpine
2017-06-01 13:27:22 +00:00
* nginx: latest + nginx reverse proxy
2017-05-11 14:41:20 +00:00
```
2017-06-07 16:07:28 +00:00
docker run \
2018-07-20 04:37:24 +00:00
--name=synclounge \
2017-05-11 14:41:20 +00:00
-p 8088:8088 \
-p 8089:8089 \
2017-06-07 16:07:28 +00:00
-e DOMAIN=example.com \
2018-07-20 04:37:24 +00:00
starbix/synclounge
2017-05-11 14:41:20 +00:00
```
2017-06-01 13:27:22 +00:00
Use this for the nginx tag:
```
2017-06-07 16:07:28 +00:00
docker run \
2018-07-20 04:31:44 +00:00
--name=plextogether_nginx \
2017-06-01 13:27:22 +00:00
-p 80:80 \
-e DOMAIN=example.com \
2018-07-20 04:37:24 +00:00
starbix/synclounge:nginx
2017-06-01 13:27:22 +00:00
```
2017-04-17 11:36:03 +00:00
### Building and running the webapp:
2017-04-07 05:09:03 +00:00
2018-07-23 16:50:29 +00:00
* Make sure you have Node v8.4.0+ installed
2017-05-11 14:41:20 +00:00
2017-12-13 12:58:15 +00:00
* ``git clone https://github.com/samcm/synclounge``
* ``cd synclounge``
2017-04-07 05:09:03 +00:00
* ``npm install``
* ``npm run build``
2018-07-23 16:50:29 +00:00
* ``node webapp.js --accessUrl=http://example.com``
2018-07-20 04:37:24 +00:00
* The SL web app will be running at http://ip:8088.
2017-05-11 14:41:20 +00:00
2017-04-07 05:09:03 +00:00
### Running the server:
2018-07-23 16:50:29 +00:00
* Make sure you have Node v8.4.0+ installed
2017-05-11 14:41:20 +00:00
2017-12-13 12:58:15 +00:00
* ``git clone https://github.com/samcm/synclounge``
* ``cd synclounge``
2017-04-07 05:09:03 +00:00
* ``npm install``
2017-04-17 11:36:03 +00:00
* ``npm run server``
2018-07-20 04:37:24 +00:00
* The SL server will be running at http://ip:8089.
2017-04-17 11:36:03 +00:00
### Deploying:
2017-12-13 12:58:15 +00:00
* To run both the SyncLounge webapp and the SyncLounge server through a web server like nginx you will need to make sure you proxy websockets. Example nginx.conf:
2017-04-17 11:36:03 +00:00
```
server {
listen 80;
server_name example.com;
2018-07-23 16:50:29 +00:00
location / {
2018-07-20 04:37:24 +00:00
proxy_pass http://localhost:8088;
2017-04-17 11:36:03 +00:00
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
2017-06-04 08:13:01 +00:00
}
2018-07-23 16:50:29 +00:00
location /socket.io {
2018-07-20 04:37:24 +00:00
proxy_pass http://localhost:8089;
2017-04-17 11:36:03 +00:00
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
2017-06-04 08:13:01 +00:00
}
2017-04-17 11:36:03 +00:00
}
```
2017-04-07 05:09:03 +00:00
## Developing
You need:
2018-07-20 04:37:24 +00:00
* Node v8.4.0+
2017-05-11 14:41:20 +00:00
2018-07-20 04:31:44 +00:00
* ``git clone https://github.com/samcm/SyncLounge``
2018-07-23 16:50:29 +00:00
* ``cd synclounge``
2017-04-07 05:09:03 +00:00
* ``npm install``
* ``npm run dev``
2017-05-11 14:41:20 +00:00
* Once Webpack has finished compiling, navigate to http://localhost:8080 in your web browser.
2017-04-07 05:09:03 +00:00
* Hot reload is enabled
* Suggested to install [Vue.js Devtools ](https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=en )
## Issues
If you run in to any issues:
* Raise an Issue here on Github. Try to be as detailed as possible by including details such as:
* Operating System
* Web Browser name and version
* Plex Media Server details
* Version
* Operating System
* Location (Local/Remote)
* Plex Client details
* Name
* Version
* Network connection (Wired/Wifi)
* Platform
* Join the [Discord Server ](https://discord.gg/Cp9RPSJ ) and raise your issue.
## Contributors
[samcm ](https://twitter.com/durksau ) - Developer
2017-06-04 08:13:01 +00:00
[gcordalis ](https://twitter.com/midnitegc ) - User Interface
2017-04-07 05:09:03 +00:00
[Brandz ](https://twitter.com/homebrandz ) - Design
[TheGrimmChester ](https://github.com/TheGrimmChester ) - Developer/Tester
2017-06-04 08:13:26 +00:00
[Starbix ](https://github.com/Starbix ) - Docker Support
2017-06-04 08:13:01 +00:00
2017-04-07 05:09:03 +00:00
kg6jay - Tester
## Contact
[Discord Server ](https://discord.gg/Cp9RPSJ )
Twitter:
2017-12-13 12:58:15 +00:00
[SyncLounge ](https://twitter.com/syncloungetv )
2017-04-07 05:09:03 +00:00
## License
2017-12-13 12:58:15 +00:00
SyncLounge is licensed under MIT License. See the ``LICENSE.txt`` file.
SyncLounge is in no way affiliated with Plex Inc.