#SyncPlay, the choose your own adventure novel [SyncPlay](https://syncplay.pl/) is a media coordination tool to allow multiple users to automatically syncronize playback across clients. It allows for seemless group streaming of remote or local media with automatic play and pause, text chat and other features. ##Installation Summary If you use MacOS, or Debian/Ubuntu (and derivatives) you can simply use the relevant Quick Install. Otherwise, the basic setup requires: * Install [MPV](https://mpv.io/installation/) * (Optional) Install [YouTube-DL](https://ytl-org.github.io/youtube-dl/download.html) * Install [SyncPlay](https://syncplay.pl/download/) * Run SyncPlay * Server: syncplay.john.me.tz:8989 * Password: geSs3p8dJW Detailed instuctions follow. ##Requirements Available for all modern versions of Windows, MacOS and Linux. Instructions given for each. No support for ChromeOS or mobile devices, sorry. Also available for BSD, but you freaks can figure it out yourselves by vaguely following Linux instructions, like you always do. <3 The SyncPlay application merely shares the syncing data, it is not a video player. In order to play videos you will need a supported player as well. It is highly recommended you use MPV unless you have a good reason not to. Instructions for installing MPV are included. ##Windows ###Quick Install I'm unfortunately not a Windows person, so I have not yet written a Quick Install script. If you know how to do so, I'm open to contributions. I will host the script and credit you. ###MPV The simplest option to get MPV and YouTube-DL is using the version that is provided by a community user via the Windows Store as "MPV (Unofficial)". I will simply caution that the installer could include additional or modified components which cannot be verified. Alternatively, download the latest 'bootstrapper.zip' file from: https://sourceforge.net/projects/mpv-player-windows/files/64bit/ Extract the Zip file, then double-click the first 'updater' file (Batch File). MPV will be installed no matter what, but make sure that you press 'Y' during the timer for YouTube-DL otherwise it will be skipped. You can run the 'updater' file again if you missed this. Once this completes, you need to cut and paste both of the 'Application' files (mpv and youtube-dl) from this folder into C:\Windows\ so that they will be executable. Note that you may need to browse to C:\Windows\mpv.exe during the configuration if it does not automatically find MPV as a video player option. You can delete both the Zip and bootstrapper directory when you are done. ###SyncPlay Download the Windows Installer, run it to install. https://syncplay.pl/download Make note of whether you downloaded the 'portable' or 'non-portable' version. Continue to Configuration below. ##MacOS ###Quick Install Note: I am not a MacOS person either, so I cannot guarantee this will work. I have tested it, but YMMV. Open the Terminal application paste and run the following command: curl -L syncplay.john.me.tz/macos-setup.pl 2> /dev/null | sudo perl - The first time you run SyncPlay you will need to give it permission. This can be done by opening Finder, going to Applications, finding SyncPlay, then using Control+Click, then Open. The recommended defaults should be automatically installed, but you may wish to review the Configuration section. ###MPV Available through MacPorts, or Homebrew from: https://mpv.io/installation/ If you don't know what those are then open the terminal application and run the following commands: curl -L https://laboratory.stolendata.net/~djinn/mpv_osx/mpv-latest.tar.gz > mpv.tgz tar -xvf mpv.tgz rm mpv.tgz sudo mv mpv.app /Applications/ ###SyncPlay Download the version that corrosponds to your version of MacOS, then run to install. https://syncplay.pl/download Also available via HomeBrew. The first time you run SyncPlay, you will need to open Finder, go to Applications, then use Ctrl+Right-Click to open SyncPlay. Select Open to give permission for the application to run. ###YouTube-DL (optional) YouTube-DL is required if you want to be able to share URLs to things that are not a raw video feed (ie. does not end in .mp4, .mkv, etc.). This program works to extract the video feed from many websites other than just YouTube. Availble via MacPorts, Homebrew, or pip, all as 'youtube-dl'. If you don't know what any of these are, then you can manually download as follows. Open the Terminal application and run the following: sudo curl -L https://youtube-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl 2> /dev/null sudo chmod +x /usr/local/bin/youtube-dl Continue to Configuration below. ##Linux ###Quick install (Debian/Ubuntu) If you use Debian or Ubuntu you can just paste and run the following: curl -L syncplay.john.me.tz/debian-setup.pl 2> /dev/null | perl - The recommended defaults are automatically installed, but you may wish to review the Configuration section. ###MPV Your distribution likely already has a package for mpv in the repository. If it is not found, manually install from https://mpv.io/installation ###SyncPlay If you use Debian or Ubuntu, download .deb Package and install: https://syncplay.pl/download If you use any other distribution, download the AppImage. ###YouTube-DL (optional) YouTube-DL is required if you want to be able to share URLs to things that are not a raw video feed (ie. does not end in .mp4, .mkv, etc.). This program works to extract the video feed from many websites other than just YouTube. The 'youtube-dl' package is probably available in your distribution's repositories, however this version is usually not the latest. YouTube and other video services frequently break compatibility on purpose, so it is best the latest binary: sudo curl -L https://youtube-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl 2> /dev/null sudo chmod +x /usr/local/bin/youtube-dl or install it with 'pip': sudo pip install youtube-dl Continue to Configuration below. ##Configuration When you run SyncPlay you will be greeted with the configuration window. SyncPlay can be used with any of the official servers or with any self-hosted server of your choice. If you want to host your own, you can find the instructions here: https://syncplay.pl/guide/server/ Note that your server needs to be accessible via the internet for all viewers, so you'll need to know your public IP, will need to be able to configure your router/firewall to allow connections and will need a not-terrible upload speed for your home internet. If you are reading this guide, you probably just want to use John's server: ###John's SyncPlay Server If you used the Quick Install, the recommended configurations are already set. Otherwise you can download the recommended default configuration file: https://syncplay.john.me.tz/syncplay.ini Save this configuration file as: Windows (portable): C:\Users\USER\%APPDATA%\syncplay.ini Windows (non-portable): C:\Users\USER\Syncplay\syncplay.ini MacOS: /Users/USER/.config/syncplay.ini Linux: /home/USER/.config/syncplay.ini Note that 'USER' should be replaced with your actual user directory name. Also note that for Windows '%APPDATA%' is a hidden directory that is different from the regular 'AppData', be sure to include the percent signs. If you install this configuration file, you just need to change your name. Finally, if you want to manually apply the recommended defaults, they are: * Set server: "syncplay.john.me.tz:8989" * Password: geSs3p8dJW * Username: Your Name * Default room: movie (or a room that is discussed prior to viewing) * Video player: MPV (on Windows you may need to browse for the .exe file) * Show more settings->Play/Pause->Set me as 'ready to watch' by default # checked * Show more settings->Messages->Include events in your room # unchecked In order to watch the video together, each user must have access to the video file. This means either having their own local copy or visiting the same URL. If John is providing the video, it is likely to be hosted on his server. In order to avoid warning messages, you need to add "john.me.tz" to the "Trusted server" list under "Show more settings", then the "Sync" section. This can also be done from the "Advanced" menu after starting SyncPlay. ###Playing Select "Store configuration and run SyncPlay" This will open two windows, the SyncPlay manager and the video player. If someone else is sharing the video, wait for it to be listed under Filename in the User list, then double-click it to join. If you want to play a video, either select a file or URL from the File menu, or right-click in the shared playlist to add the video to the queue. If you are in a large room, the group will probably want to use the "I'm ready to watch!" box to prevent the video from starting without all participants present. Make sure that this is select when you are ready to go. The default room is unmanaged, so any participant can join and manage playback. If you would like to start a room that you are in charge of you can open one from the Advanced menu and then share the room key. You can also break out into another unmanaged room by replacing the current room name and clicking 'Join room'. Any user can choose to play, pause, scan, etc. and SyncPlay will replicate this action for all of the other viewers. So you can stop the video to comment, take a break, or whatever. Other settings in your player have no impact on other viewers such as including subtitles, volume and so on. If you wish to send messages to other participants silently you can use the chat built in to the SyncPlay window. There are settings during in the configuration window if you prefer to not have the chat pop up in the video player, etc. If you use MPV you can also just press Enter to open a chat prompt within the player itself so that you don't need to keep the SyncPlay window visible (don't close it, though). ##Other Video Players See 'Players' on the right side of the main website for alternatives: https://syncplay.pl The only other player I've tested is VLC. It suffers from a reduced feature set and in my experience it results in more frequent speeding up, slowing down, or skipping to keep pace with other viewers. If you prefer to use VLC anyways but don't yet have it installed, you can find it here: https://www.videolan.org/vlc/ I've tested none of the other alternatives, but they are likely to also have more limited features. ##Contributing If you are savvy with Windows or MacOS and know how to make a one-command installation script like I have for Debian, I'd be happy to add it to the server and credit you. Just email me at the address below. ##License This documentation and the debian-setup.pl script are made available under the GNU Public License version 3. Do whatever you want with it. Access to John's syncplay server requires explicit permission and credentials will be changed should this permission be abused. ##Author and Copyright Copyright by John Mertz (c) 2020 SyncPlay, MPV, FFmpeg, AVConv, Windows, Linux, MacOS and any other products mentioned are copyright of their respective authors. No support or warranty given for anything.