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>2025-01-30 23:21:37 -0300
committerGitHub <noreply@github.com>2025-01-30 23:21:37 -0300
commit6a4b125ad771ac9da4a1347a1ed41185e30ad0cf (patch)
treef0944fb005c9b700c0b199a0c02cf936d416c92d
parentf440eac3dccefa5c0ec9d3964e1d08357fd31e09 (diff)
nip71: make video events regular (#1704)
-rw-r--r--51.md2
-rw-r--r--68.md6
-rw-r--r--71.md32
-rw-r--r--README.md8
4 files changed, 24 insertions, 24 deletions
diff --git a/51.md b/51.md
index d1c6270..87744c7 100644
--- a/51.md
+++ b/51.md
@@ -50,7 +50,7 @@ Aside from their main identifier, the `"d"` tag, sets can optionally have a `"ti
50| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during various operations | `"relay"` (relay URLs) | 50| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during various operations | `"relay"` (relay URLs) |
51| Bookmark sets | 30003 | user-defined bookmarks categories , for when bookmarks must be in labeled separate groups | `"e"` (kind:1 notes), `"a"` (kind:30023 articles), `"t"` (hashtags), `"r"` (URLs) | 51| Bookmark sets | 30003 | user-defined bookmarks categories , for when bookmarks must be in labeled separate groups | `"e"` (kind:1 notes), `"a"` (kind:30023 articles), `"t"` (hashtags), `"r"` (URLs) |
52| Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) | 52| Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) |
53| Curation sets | 30005 | groups of videos picked by users as interesting and/or belonging to the same category | `"a"` (kind:34235 videos) | 53| Curation sets | 30005 | groups of videos picked by users as interesting and/or belonging to the same category | `"a"` (kind:21 videos) |
54| Kind mute sets | 30007 | mute pubkeys by kinds<br>`"d"` tag MUST be the kind string | `"p"` (pubkeys) | 54| Kind mute sets | 30007 | mute pubkeys by kinds<br>`"d"` tag MUST be the kind string | `"p"` (pubkeys) |
55| Interest sets | 30015 | interest topics represented by a bunch of "hashtags" | `"t"` (hashtags) | 55| Interest sets | 30015 | interest topics represented by a bunch of "hashtags" | `"t"` (hashtags) |
56| Emoji sets | 30030 | categorized emoji groups | `"emoji"` (see [NIP-30](30.md)) | 56| Emoji sets | 30030 | categorized emoji groups | `"emoji"` (see [NIP-30](30.md)) |
diff --git a/68.md b/68.md
index 6c1e7d2..918378a 100644
--- a/68.md
+++ b/68.md
@@ -12,7 +12,7 @@ The idea is for this type of event to cater to Nostr clients resembling platform
12 12
13## Picture Events 13## Picture Events
14 14
15Picture events contain a `title` tag and description in the `.content`. 15Picture events contain a `title` tag and description in the `.content`.
16 16
17They may contain multiple images to be displayed as a single post. 17They may contain multiple images to be displayed as a single post.
18 18
@@ -81,7 +81,7 @@ They may contain multiple images to be displayed as a single post.
81 81
82The `imeta` tag `annotate-user` places a user link in the specific position in the image. 82The `imeta` tag `annotate-user` places a user link in the specific position in the image.
83 83
84Only the following media types are accepted: 84Only the following media types are accepted:
85- `image/apng`: Animated Portable Network Graphics (APNG) 85- `image/apng`: Animated Portable Network Graphics (APNG)
86- `image/avif`: AV1 Image File Format (AVIF) 86- `image/avif`: AV1 Image File Format (AVIF)
87- `image/gif`: Graphics Interchange Format (GIF) 87- `image/gif`: Graphics Interchange Format (GIF)
@@ -89,4 +89,4 @@ Only the following media types are accepted:
89- `image/png`: Portable Network Graphics (PNG) 89- `image/png`: Portable Network Graphics (PNG)
90- `image/webp`: Web Picture format (WEBP) 90- `image/webp`: Web Picture format (WEBP)
91 91
92Picture events might be used with [NIP-71](71.md)'s kind `34236` to display short vertical videos in the same feed. 92Picture events might be used with [NIP-71](71.md)'s kind `22` to display short vertical videos in the same feed.
diff --git a/71.md b/71.md
index 5edd7c6..d3b0925 100644
--- a/71.md
+++ b/71.md
@@ -6,17 +6,19 @@ Video Events
6 6
7`draft` `optional` 7`draft` `optional`
8 8
9This specification defines video events representing a dedicated post of externally hosted content. These video events are _addressable_ and delete-requestable per [NIP-09](09.md). 9This specification defines _video_ events representing a dedicated post of externally hosted content.
10 10
11Unlike a `kind 1` event with a video attached, Video Events are meant to contain all additional metadata concerning the subject media and to be surfaced in video-specific clients rather than general micro-blogging clients. The thought is for events of this kind to be referenced in a Netflix, YouTube, or TikTok like nostr client where the video itself is at the center of the experience. 11Unlike a `kind:1` event with a video attached, video events are meant to contain all additional metadata concerning the subject media and to be surfaced in video-specific clients rather than general micro-blogging clients. The thought is for events of this kind to be referenced in a Netflix, YouTube, or TikTok like nostr client where the video itself is at the center of the experience.
12 12
13## Video Events 13## Video Events
14 14
15There are two types of video events represented by different kinds: horizontal and vertical video events. This is meant to allow clients to cater to each as the viewing experience for horizontal (landscape) videos is often different than that of vertical (portrait) videos (Stories, Reels, Shorts, etc). 15There are two types of video events represented by different kinds: _normal_ and _short_ video events. This is meant to allow clients to cater to each as the viewing experience for longer, mostly horizontal (landscape) videos is often different than that of short-form, mostly vertical (portrait), videos ("stories", "reels", "shorts" etc).
16
17Nothing except cavaliership and common sense prevents a _short_ video from being long, or a _normal_ video from being vertical, and that may or may not be justified, it's mostly a stylistic qualitative difference, not a question of actual raw size.
16 18
17#### Format 19#### Format
18 20
19The format uses an _addressable event_ kind `34235` for horizontal videos and `34236` for vertical videos. 21The format uses a _regular event_ kind `21` for _normal_ videos and `22` for _short_ videos.
20 22
21The `.content` of these events is a summary or description on the video content. 23The `.content` of these events is a summary or description on the video content.
22 24
@@ -27,7 +29,7 @@ Each `imeta` tag can be used to specify a variant of the video by the `dim` & `m
27Example: 29Example:
28```json 30```json
29[ 31[
30 ["imeta", 32 ["imeta",
31 "dim 1920x1080", 33 "dim 1920x1080",
32 "url https://myvideo.com/1080/12345.mp4", 34 "url https://myvideo.com/1080/12345.mp4",
33 "x 3093509d1e0bc604ff60cb9286f4cd7c781553bc8991937befaacfdc28ec5cdc", 35 "x 3093509d1e0bc604ff60cb9286f4cd7c781553bc8991937befaacfdc28ec5cdc",
@@ -38,7 +40,7 @@ Example:
38 "fallback https://andanotherserver.com/1080/12345.mp4", 40 "fallback https://andanotherserver.com/1080/12345.mp4",
39 "service nip96", 41 "service nip96",
40 ], 42 ],
41 ["imeta", 43 ["imeta",
42 "dim 1280x720", 44 "dim 1280x720",
43 "url https://myvideo.com/720/12345.mp4", 45 "url https://myvideo.com/720/12345.mp4",
44 "x e1d4f808dae475ed32fb23ce52ef8ac82e3cc760702fca10d62d382d2da3697d", 46 "x e1d4f808dae475ed32fb23ce52ef8ac82e3cc760702fca10d62d382d2da3697d",
@@ -49,7 +51,7 @@ Example:
49 "fallback https://andanotherserver.com/720/12345.mp4", 51 "fallback https://andanotherserver.com/720/12345.mp4",
50 "service nip96", 52 "service nip96",
51 ], 53 ],
52 ["imeta", 54 ["imeta",
53 "dim 1280x720", 55 "dim 1280x720",
54 "url https://myvideo.com/720/12345.m3u8", 56 "url https://myvideo.com/720/12345.m3u8",
55 "x 704e720af2697f5d6a198ad377789d462054b6e8d790f8a3903afbc1e044014f", 57 "x 704e720af2697f5d6a198ad377789d462054b6e8d790f8a3903afbc1e044014f",
@@ -86,17 +88,15 @@ Additionally `service nip96` may be included to allow clients to search the auth
86 "id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>, 88 "id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>,
87 "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, 89 "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>,
88 "created_at": <Unix timestamp in seconds>, 90 "created_at": <Unix timestamp in seconds>,
89 "kind": 34235 | 34236, 91 "kind": 21 | 22,
90 "content": "<summary / description of video>", 92 "content": "<summary / description of video>",
91 "tags": [ 93 "tags": [
92 ["d", "<UUID>"],
93
94 ["title", "<title of video>"], 94 ["title", "<title of video>"],
95 ["published_at", "<unix timestamp>"], 95 ["published_at", "<unix timestamp>"],
96 ["alt", <description>], 96 ["alt", <description>],
97 97
98 // Video Data 98 // video Data
99 ["imeta", 99 ["imeta",
100 "dim 1920x1080", 100 "dim 1920x1080",
101 "url https://myvideo.com/1080/12345.mp4", 101 "url https://myvideo.com/1080/12345.mp4",
102 "x 3093509d1e0bc604ff60cb9286f4cd7c781553bc8991937befaacfdc28ec5cdc", 102 "x 3093509d1e0bc604ff60cb9286f4cd7c781553bc8991937befaacfdc28ec5cdc",
@@ -113,17 +113,17 @@ Additionally `service nip96` may be included to allow clients to search the auth
113 ["content-warning", "<reason>"], 113 ["content-warning", "<reason>"],
114 ["segment", <start>, <end>, "<title>", "<thumbnail URL>"], 114 ["segment", <start>, <end>, "<title>", "<thumbnail URL>"],
115 115
116 // Participants 116 // participants
117 ["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"], 117 ["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"],
118 ["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"], 118 ["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"],
119 119
120 // Hashtags 120 // hashtags
121 ["t", "<tag>"], 121 ["t", "<tag>"],
122 ["t", "<tag>"], 122 ["t", "<tag>"],
123 123
124 // Reference links 124 // reference links
125 ["r", "<url>"], 125 ["r", "<url>"],
126 ["r", "<url>"] 126 ["r", "<url>"]
127 ] 127 ]
128} 128}
129``` \ No newline at end of file 129```
diff --git a/README.md b/README.md
index 3f416a2..5c1d4ec 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,8 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
122| `16` | Generic Repost | [18](18.md) | 122| `16` | Generic Repost | [18](18.md) |
123| `17` | Reaction to a website | [25](25.md) | 123| `17` | Reaction to a website | [25](25.md) |
124| `20` | Picture | [68](68.md) | 124| `20` | Picture | [68](68.md) |
125| `21` | Video Event | [71](71.md) |
126| `22` | Short-form Portrait Video Event | [71](71.md) |
125| `40` | Channel Creation | [28](28.md) | 127| `40` | Channel Creation | [28](28.md) |
126| `41` | Channel Metadata | [28](28.md) | 128| `41` | Channel Metadata | [28](28.md) |
127| `42` | Channel Message | [28](28.md) | 129| `42` | Channel Message | [28](28.md) |
@@ -227,10 +229,8 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
227| `31924` | Calendar | [52](52.md) | 229| `31924` | Calendar | [52](52.md) |
228| `31925` | Calendar Event RSVP | [52](52.md) | 230| `31925` | Calendar Event RSVP | [52](52.md) |
229| `31989` | Handler recommendation | [89](89.md) | 231| `31989` | Handler recommendation | [89](89.md) |
230| `31990` | Handler information | [89](89.md) | 232| `31990` | Handler information | [89](89.md) | |
231| `32267` | Software Application | | 233| `32267` | Software Application | | |
232| `34235` | Video Event | [71](71.md) |
233| `34236` | Short-form Portrait Video Event | [71](71.md) |
234| `34550` | Community Definition | [72](72.md) | 234| `34550` | Community Definition | [72](72.md) |
235| `37375` | Cashu Wallet Event | [60](60.md) | 235| `37375` | Cashu Wallet Event | [60](60.md) |
236| `38383` | Peer-to-peer Order events | [69](69.md) | 236| `38383` | Peer-to-peer Order events | [69](69.md) |