Guide · 06

Téléphone et télécommande

Pilotez amp depuis un shell, les touches multimédias ou un téléphone — comme télécommande, ou comme lecteur à part entière.

Depuis le shell

Ces commandes parlent au démon en cours d’exécution et rendent la main aussitôt. Elles n’en lancent jamais un.

amp --toggle                        # aussi --play, --pause, --stop, --next, --previous, --mute
amp --volume +5                     # relatif ; --volume 60 est absolu (jusqu'à 150)
amp --seek -10                      # secondes ; --seek 1:30 saute dans le morceau
amp --speed 1.25                    # 0.5 à 2.0, hauteur conservée
amp --shuffle on                    # on, off, ou bascule sans valeur
amp --repeat one                    # off, all, one
amp --open ~/playlists/mix.m3u8     # met une playlist en file, ou joue l'URL d'un flux
amp --status                        # une ligne : ce qui joue
amp --status --json                 # tout, pour les scripts

Elles se combinent : amp --volume +5 --next --status. Une ligne d’état tmux, un raccourci de gestionnaire de fenêtres :

set -g status-right '#(amp --status 2>/dev/null)'
bindsym XF86AudioPlay exec amp --toggle

Touches multimédias

amp répond aux touches multimédias du clavier et apparaît dans le Now Playing du système — via MPRIS sous Linux, nativement sous macOS et Windows. Rien à configurer.

Un téléphone ou un navigateur

Celle-ci est désactivée tant que vous ne l’activez pas. Dans config.toml :

[remote_http]
enabled = true
host = "0.0.0.0"      # toutes les interfaces ; "127.0.0.1" la garde sur cette machine
port = 8420

Demandez ensuite à amp l’adresse et la clé d’appairage :

amp --http-remote-info

Ouvrez l’adresse sur le téléphone, tapez la clé une fois, et choisissez en haut de la page :

  • Speakers — une télécommande pour les enceintes de cet ordinateur : transport, volume, file d’attente, bibliothèque.
  • This device — la propre file d’attente du téléphone, sur les mêmes bibliothèques, jouée par le téléphone lui-même. L’ordinateur reste silencieux. Sous Quality, choisissez les fichiers d’origine ou un flux plus léger (Opus ou MP3, qui demandent ffmpeg sur l’ordinateur).

Chaque téléphone reste appairé jusqu’à ce qu’il se déconnecte. Depuis l’ordinateur :

amp daemon devices                  # les téléphones et navigateurs appairés, numérotés
amp daemon forget 3                 # déconnecter celui-ci

Sur le réseau local, le trafic est en HTTP simple. Ne l’activez que sur un réseau de confiance — ou atteignez amp via un VPN ou un proxy, ci-dessous.

Depuis l’extérieur de la maison

amp ne fait pas de TLS lui-même. Placez-le derrière quelque chose qui en fait.

Tailscale (ou WireGuard) chiffre déjà : gardez host = "0.0.0.0" et définissez public_url = "http://mybox.tailnet-name.ts.net:8420".

Caddy sur la même machine obtient le certificat lui-même :

amp.example.org {
    reverse_proxy 127.0.0.1:8420
}
[remote_http]
enabled = true
host = "127.0.0.1"                       # seul le proxy atteint amp
public_url = "https://amp.example.org"
trusted_proxies = ["127.0.0.1"]

Avec nginx, transmettez les en-têtes Upgrade et Connection du WebSocket pour /ws.