upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfiatjaf <fiatjaf@gmail.com>2026-02-25 11:47:06 -0300
committerfiatjaf <fiatjaf@gmail.com>2026-02-25 11:47:06 -0300
commit533b7f8ffeae76ba04ab7da78296ff8902b2ec47 (patch)
tree00c0723280e37231f55572884e0d6ba4b38a9730
parentd3cbc8cb5d3626683eefdf3d740410406c02a294 (diff)
nip29: audio/video live spaces.
-rw-r--r--29.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/29.md b/29.md
index f39d4d8..f041885 100644
--- a/29.md
+++ b/29.md
@@ -48,6 +48,16 @@ The roles supported by the group as to having some special privilege assigned to
48 48
49Users with any roles that have any privilege can be considered _admins_ in a broad sense and be returned in the `kind:39001` event for a group. 49Users with any roles that have any privilege can be considered _admins_ in a broad sense and be returned in the `kind:39001` event for a group.
50 50
51## Live audio/video (AV) spaces
52
53Groups may indicate they support live audio and/or video chat by means of a [LiveKit](https://docs.livekit.io/transport/) server by having the tag `livekit` in the group announcement event. The tag `no-text` should be used if the group doesn't support text, only live AV chat (this is just for informative purposes to the client, the relay should still block events). This setup allows for both Discord-style independent AV rooms and text rooms and Telegram-style single-roomgroup with support for both text and AV.
54
55Upon seeing a `livekit` tag in a group, clients that want to take part in the AV space should call the [token endpoint](https://docs.livekit.io/frontends/build/authentication/endpoint/) at the relay path `/.well-known/nip29/livekit/<group-id>` with a [NIP-98](98.md)-style `Authorization` header to get back the LiveKit JWT and the URL of the LiveKit server and proceed with the stardard LiveKit flow there.
56
57The `Authorization` event should be of kind `27235` and contain a tag `["u", "https://relay.tld/.well-known/nip29/livekit/<group-id>"]`.
58
59Relays should enforce access control at the LiveKit JWT creation time according to the group settings.
60
51## Event definitions 61## Event definitions
52 62
53These are the events expected to be found in NIP-29 groups. 63These are the events expected to be found in NIP-29 groups.
@@ -155,6 +165,8 @@ If the group is forked and hosted in multiple relays, there will be multiple ver
155- `restricted` indicates that only members can _write_ messages to the group. Omitting this tag indicates that anyone can send messages to the group. 165- `restricted` indicates that only members can _write_ messages to the group. Omitting this tag indicates that anyone can send messages to the group.
156- `hidden` indicates that relays should hide group metadata from non-members. Omitting this tag indicates that anyone can request group metadata events. 166- `hidden` indicates that relays should hide group metadata from non-members. Omitting this tag indicates that anyone can request group metadata events.
157- `closed` indicates that join requests are ignored. Omitting this tag indicates that users can expect join requests to be honored. 167- `closed` indicates that join requests are ignored. Omitting this tag indicates that users can expect join requests to be honored.
168- `livekit` indicates that a group supports LiveKit-powered media rooms (live audio/video).
169- `no-text` indicates that a group doesn't support text messages (can be used to indicate that a group is only usable for live audio/video).
158 170
159- *group admins* (`kind:39001`) (optional) 171- *group admins* (`kind:39001`) (optional)
160 172