Skip to content

jakub-w/Larmo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

214 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Larmo

Larmo is a command line music player that streams audio files to the server to play them remotely.

How it works

Server

The server needs to start remote-player executable. It will wait for connections from clients to do their bidding.

There is an authentication system in place based on SSL/TLS so all communication is encrypted.

Client

First command on the client’s system should be:

remote-control daemon

It will create a daemon that will work as a proxy between the server and the command line utility. It works in the background. For the foreground mode use:

remote-control daemon --foreground

When the daemon is running you can, for example, use:

remote-control play /path/to/file.mp3

You can check the available commands with:

remote-control --help

Configuration

Both the server and the client can read all necessary settings from the configuration file. For example:

passphrase = my_pass
grpc_port = 5345
grpc_host = my_hostname
cert_file = /path/to/server.crt

For now, by default it searches the working directory for the configuration file: lrm.conf, although it can be manually selected by:

remote-player --config=/path/to/my_lrm_config.conf

Certificate and private key

The certificate needs to be generated in place with the CN being the hostname that the client will use to connect to the server.

The server needs to have access to the private key that signed the certificate. It will expect to find it in the working dir, named server.key. For now there is no option to configure its path.

Dependencies

  • mpv
  • grpc (>= 1.3.2)
  • asio (>= 1.12.1)

For building

  • gcc or clang (must support c++17)
  • meson

Building

On Debian 10:

apt update && \
apt install -y git g++ pkg-config meson libprotobuf-dev \
    protobuf-compiler libgrpc++-dev protobuf-compiler-grpc libasio-dev \
    libmpv-dev
git clone --recurse-submodules \
    https://github.com/jakub-w/Larmo.git && \
cd Larmo
meson --buildtype=release builddir && cd builddir && ninja

On Ubuntu 20.04

apt update && \
apt install -y git clang pkg-config meson libasio-dev libmpv-dev \
    libprotobuf-dev protobuf-compiler libgrpc++-dev \
    protobuf-compiler-grpc
git clone --recurse-submodules https://github.com/jakub-w/Larmo && \
cd Larmo
meson --buildtype=release builddir && cd builddir && ninja

About

Command line music player that streams audio files to the server to play them remotely

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors