Syncplay development

How to get involved

Syncplay is developed using Python. You could help by reporting bugs, working on the code, or providing translations to other languages. The project is hosted at https://github.com/Syncplay/syncplay/. You can also e-mail us via dev@syncplay.pl.

Core developers

  • albertosottile – macOS Lead (also works on Qt.py, Italian translation, etc)
  • Et0h – GUI/Player/NSIS/message/website lead
  • daniel-123 – Linux lead and major mpv contributor
  • Uriziel – Syncplay architecture/protocol/Twisted/networking/threading lead (now mostly retired from active development)

Translators

Graphic designers

Other contributors

  • abtalerico – Improvement to configuration GUI
  • abhsag24 (abhay-raizada) – Improved Unicode support
  • atagulalan – Improve installer handling of LANG parameter
  • alxpettit – Python 3 transition bug fix
  • Assistant – Work on room persistence
  • borislav-draganov – Fixed MPC crashes when trying to open YouTube videos with emojis
  • blaenk – Work on rewind on desync option + making Syncplay packagable
  • bobismijnnaam – Work on resolving VLC issues with some Snap configurations
  • Bosmanfrx – Inital NSIS + Polish translation work
  • Bruno Kleinert – Initial work on manpages
  • csandras05 – Ability to control playlist from console, chat and mpv chat
  • danfai – Fixed converting lines to array
  • FichteFoll – Workaround performance regression in mpv’s osd code
  • Fluxid – Initial SyncPlay code
  • Gbd199 – Room history feature
  • HarHar – Initial work on IRC bot
  • Hummer12007 – Improved the makefile
  • hunbernd – Improved mpv input for Hungarian
  • ImportTaste – Added support for LAV Filters Megamix
  • ion1 – Contributed mplayer/MPV bugfixes
  • joelixny – Fixed the makefile
  • jurplel – Removed some odd locations for icons
  • Kansattica – Print timestamp when pausing
  • kidburglar – TLS: Add error message if SAN doesn’t match hostname
  • Konubinix – Added an error message
  • Lctrs – Create icons folder if it doesn’t exist
  • luk1337 – Maintenance, inc,. to improve Python >= 3.12 support
  • luke-jr – Improved documentation
  • Lqlsoftware – Typo fix
  • mentofa123 – Changed mpvnet icon from .ico to .png for consistency
  • modwizcode (Lunaphied) – Corrected persistence argument type
  • mordner – Allow for settings variables to be stored in environmental variables
  • NoahSaso – Fixed chat font change not being stored
  • powerjungle – Fixed server argument max-username-length not working and added command line switches to server to allow better control over binding to interfaces
  • nilsding – BSD support
  • odrling – Fix to persistent rooms code and did work on ability to control playlist from console, chat and mpv chat
  • ObserverOfTime – Fixed string equality checks
  • palfrey – Maintenance tweak
  • remimarenco – Divided language into separate files
  • rtix – Add playlist commands (/next, /qn, etc)
  • seitokaichouseitokaichou (prez) – Add simple wildcard matching mechanism for trusted domains
  • solarnz – GUI bugfix, and initial OS X guide
  • sometoby – Added XDG path support
  • TaPO4eg3D – MPV: Add possibility to control which socket to use
  • tari – Prevent freezing when probing player paths on network drives
  • TacticalGenius230 – work on old configuration UI
  • teohhanhui – Bundled libgthread-2.0.so.0 into AppImage
  • Tremolo4 – Allow trusting a domain regardless of HTTP basic auth credentials
  • Tyris – Substantial code contribution to libMal (no longer used by Syncplay)
  • ViktorOn – Typo fixes
  • wiiaboo – mpv and NSIS fixes
  • xNinjaKittyx – Code syntax refactoring
  • young-shounen – MPV: Add the possibility to control which socket to use
  • z411– Define desktop filename for Wayland compliance to fix icon
  • zeroeightysix – Allow playlists to be played from network

Thanks should also go to:

  • The media player developers, especially those who directly supported Syncplay (e.g. vBm from MPC-HC and jb from VLC)
  • Those who posted bug reports which made us aware of various issues (including those people thanked in the Syncplay Changelog and relevant commit messages)
  • Those who developed the libraries and platforms which Syncplay relies on (e.g. Python, Twisted, py2exe, PySide and NSIS)
  • Those who developed the tools we use to develop and promote Syncplay (e.g. PyCharm, Eclipse and WordPress)
  • Everyone who has donated, spread the word, or given us feedback on the project
  • The users – Thank you for flying with Syncplay!

Getting a Python set-up for Windows Syncplay development

1)  Install Python 3.8 from https://www.python.org/downloads/
2) Install the Microsoft Visual C++ 2015-2022 Redistributable Package (Download the 32-bit version, i.e. ‘vc_redist.x86.exe’). You could also use the command line console version (SyncplayConsole.exe).
3) Get NSIS to create the installer, installing it to ‘C:\Program Files (x86)\NSIS\’ (probably the default directory). You don’t need this just to run Syncplay, only if you want to build your own installers.
4) Download and install PyCharm Community Edition and Git
5) In PyCharm create a virtual environment for Python 3.8 then after this has processed close PyCharm. Don’t forget to note where you create the virtual environment, as you’ll need to find the activate.bat file in its \venv\Scripts folder for Step 6!
5) Copy over python3.dll from Python 3.8 \DLLs\ folder the into the \venv\Scripts folder if it doesn’t already exist (this bit might no longer be necessary, I’m not sure)
6) In the Command Prompt activate that virtual environment (by running the relevant activate.bat file in the \venv\Scripts folder) and enter the following:

pip3 install -U setuptools wheel pip
pip3 install -r requirements.txt
pip3 install -r requirements_gui.txt
pip3 install py2exe

(You might need to copy the .txt files into the \scripts\ folder)

 

7) You can fork the https://github.com/Syncplay/syncplay GitHub repository to your own repository and use PyCharm to make change to the Syncplay code. Push changes to your own GitHub branch, then make a Pull Request (PR) to propose that this be incorporated into the Syncplay code.

History

Syncplay started out as a fork of SyncPlay, which emerged from #anime&manga on irc.rizon.net as a tool to facilitate watching videos with friends and commenting on them (the videos, not the friends) ‘live’ on IRC or Mumble. Uriziel came up with the idea as a replacement to having to shout “3..2..1.. Play! …No wait, pause!”, but the initial code for SyncPlay was mostly written by Tomasz “Fluxid” Kowalczyk. Fluxid’s work on SyncPlay started in January 2012 and ended in February 2012.