Salons audio & vidéo LiveKit

Salons audio et vidéo pour les groupes NIP-29 via un serveur LiveKit : points de terminaison de jetons, signature JWT et métadonnées de groupe qui annoncent les salons.

Configuration

  1. Définissez relay.livekit_url, relay.livekit_api_key et relay.livekit_api_secret dans le fichier de configuration.
  2. Ajoutez le tag livekit aux métadonnées d’un groupe via une modification kind:9002 effectuée par un administrateur.
  3. Les clients récupèrent un JWT depuis /.well-known/nip29/livekit/<group-id> avec l’authentification NIP-98 (une clé publique bannie via banpubkey NIP-86 est refusée).
  4. Le relais publie une liste de participants kind:39004 par groupe livekit, rafraîchie toutes les relay.livekit_participants_interval_secs (15 par défaut) et immédiatement lorsque LiveKit envoie des webhooks à /.well-known/nip29/livekit/webhook — pointez webhook.urls du serveur LiveKit dessus et faites correspondre webhook.api_key à relay.livekit_api_key (le relais vérifie la charge signée ; les événements manqués sont réconciliés par le sondage). Désactiver le mode LiveKit d’un groupe efface la liste.

Vérification de la prise en charge

sh
curl -i http://127.0.0.1:8080/.well-known/nip29/livekit

204 signifie que le serveur de salles est activé.

Configuration

toml
[relay]
livekit_url = "wss://livekit.example.com"
livekit_api_key = "..."
livekit_api_secret = "..."
livekit_participants_interval_secs = 15
Tip
Les paramètres LiveKit sont fixés au démarrage — toute modification nécessite un redémarrage.