Syncplay auf Uberspace installieren

Syncplay ist ein Client-Server Programm, das es ermöglicht, den Abspielstatus eines Media-Players über den Syncplay-Server zu synchronisieren. Dies ist dann nützlich, wenn man mit Freunden über weite Distanz im Skype, Teamspeak oder Mumble zusammen einen Film anschauen möchte. Dabei wird lediglich der Status des Players synchronisiert nicht die Videodatei. Syncplay selbst ist in Python geschrieben und für Windows, Linux und OSX(Eingeschränkt, siehe Website) erhältlich.

Syncplay

Als Zentraler Punkt für den Syncplay-Server eignet sich Uberspace, da sich dort alle beteiligten einfach verbinden können.

Installation:

Für Syncplay gibt es ein git Repository, von dem der aktuelle Entwicklungstand heruntergeladen werden kann. Alternativ kann die aktuellste Version auch als Zip-Datei heruntergeladen und auf dem Uberspace entpackt werden. Ich beschreibe hier lediglich den weg über git, da dieser einfacher ist und lediglich ein paar Befehle in der Shell benötigt werden.

Für die Verwaltung von git Repository ist es sinnvoll einen eigenen git Ordner im Home Verzeichnis zu erstellen.

mkdir ~/git
cd ~/git

Nun kann der aktuellste Entwicklungsstand mit folgendem Befehl heruntergeladen werden.

git clone https://github.com/Syncplay/syncplay.git

Anschließend hat man den aktuellsten Entwicklungsstand von Syncplay im ~/git/syncplay Ordner. Es ist sinnvoll diesen nicht direkt zu verwenden, da er Fehler oder unvollständige Funktionen enthalten kann. Stattdessen sollte auf den letzten Release gewechselt werden (Aktuell Version 1.3.1).

cd ~/git/syncplay
git checkout 1.3.1

Der Hinweis von git kann ignoriert werden, da keine Änderungen an den Server-Dateien vorgenommen werden müssen.
Bevor nun der Server testweise gestartet werden kann muss noch das Python-Framework Twisted installiert werden.

easy_install-2.7 -U twisted

Starten:

Jetzt kann der Server testweise gestartet werden, um zu überprüfen, ob alles richtig installiert wurde.

python2.7 syncplayServer.py

Folgende Meldung signalisiert einen erfolgreichen Start:

Welcome to Syncplay server, ver. 1.3.1

Ports:

Noch ist der Server von außen nicht erreichbar, weil bei Uberspace die Ports zu sind.
Um einen Port Freigeschaltet zu bekommen, bedarf es einer E-Mail an den Uberspace Support. Der Bereich für Ports ist zwischen 61000 und 65535.
Weitere Erläuterungen zu Ports gibt es im Uberspace Wiki.

Service:

Nachdem der Port freigeschaltet wurde, muss noch ein Service erstellt werden, damit der Syncplay-Server komfortabel im Hintergrund läuft.
Dafür wird daemontools verwendet, es ist sinnvoll sich vorher die Dokumentation zu daemontools im Wiki anzuschauen.
Falls das Service Verzeichnis noch nicht vorhanden ist, kann es mit folgendem Befehl aktiviert werden:

test -d ~/service || uberspace-setup-svscan

Anschließend kann der Service (syncplay) eingerichtet werden, für den Platzhalter <PORTNUMMER> muss die von Uberspace zugeteilte Portnummer eingesetzt werden.

uberspace-setup-service syncplay "python2.7 ~/git/syncplay/syncplayServer.py"

Das nun erstellte run Script muss anschließend unbedingt angepasst werden, hierfür muss die Datei mit einem Texteditor geöffnet werden.

nano ~/service/syncplay/run

Das erstellte run-Script (<USER> ist der verwendete Uberspace Benutzername) :

 
[...] 
# Now let's go! 
exec /usr/local/bin/python2.7 
/home/<USER>/git/syncplay/syncplayServer.py  2>&1 

Zeile 3 und 4 (Befinden sich im run-Script ganz am Ende) müssen zu einer Zeile zusammengefasst werden und um den Port Parameter erweitert werden:

[...]
# Now let's go!
exec /usr/local/bin/python2.7 /home/<USER>/git/syncplay/syncplayServer.py --port <PORTNUMMER> 2>&1

run-file

Anschließend kann der Service mit folgendem Befehl neu gestartet werden:

svc -du ~/service/syncplay

Nun sollte der Syncplay-Server unter dem konfigurierten Port erreichbar sein.

Syncplay-Konfiguration

Syncplay_v1.3.1

Update

Um den Syncplay Server zu Aktualisieren, muss zuerst in den Syncplay Ordner navigiert werden, anschließend auf den aktuellen Stand gewechselt werden.
Dann kann ein Update durchgeführt und danach wieder auf das letzte Release gewechselt werden (<RELEASE>).
Zum Abschluss den Service neu starten.

cd ~/git/syncplay
git checkout master
git pull
git checkout <RELEASE>
svc -du ~/service/syncplay

Viel Spaß beim gemeinsamen Videoabend.