Client and Server

This project is divided into 2 parts.
The client and the server.

Client and Server image

The Server

This is the place clients connect to and watch media from.

The server does many things:

  • Scans available media files
  • Stores media metadata in the database.
  • Manages users
  • Manages the media library
  • Manages permissions and controls access

Everything outside of actually playing media is done through a server.

Administrators can control the server configuration and set who has access to what.

The server runs on the .NET runtime, and it runs on most platforms.
But currently it is recommended to run it using docker compose.

If you need to run it on a Windows machine to host a server for your friend group, that is also possible but will require some manual setup.
Hop on the Discord to talk things through.
(If it becomes a common use case, there will probably be a dedicated instruction for it)

The Client

This is the player, the application you download on your desktop.

The client on its own can play back any media that VLC can play (Thanks once again to the team over at VLC).
You can use the "Open with" option on a media file or drag it over the player executable if you for some reason don't have VLC installed, and it will open it as well.
VLC has many more features and options focused on regular media playback, this project focuses on the synchronization part and watching media together.

The main use is when connected to a server and inside a watch group.
Then the client together with the server ensures that everyone in the group is playing the same media, at the same time.
(At least that is what I'm trying to achieve here)

If you try to break things, you probably will this early on.

The goal is to have a client application available for as many platforms as possible.
Going with Avalonia UI has greatly helped with the desktop side of things.
Windows and Linux are supported and working.
MacOS should also work, but I don't have any machine to test it on so currently no build exists for it.
That will be a thing to work on.

For mobile, there will most likely be a MAUI application in the future.
(Currently not quite production ready but slowly getting there)
I managed to make a proof of concept on my Android phone a long time ago and it did manage to play some media from the server, although not without a fight.

No idea about TVs just yet.