upleb.uk

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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzmeyer44 <54515037+zmeyer44@users.noreply.github.com>2023-12-12 13:56:28 -0500
committerGitHub <noreply@github.com>2023-12-12 13:56:28 -0500
commitd53f6fba1510db7ad7440ca0c93429a88f1c6fa9 (patch)
tree0ae647b6148a09dbfea7780c159309c55fabfbc9
parentc84d40f4a6dc39b1d420cdbaf75882ec0b78d478 (diff)
Update 71.md
After discussing with Pablo, we decided to move away from relying on kind 1063 events and instead use the majority of the same tags for video events. The main motivations behind this are to allow for parameterized replaceable events for video events, prevent excessive `REQ` requests, not stringify event JSON in the `.content` section, ease of filtering by kind number, as well as some others. Happy to discuss this further.
-rw-r--r--71.md37
1 files changed, 28 insertions, 9 deletions
diff --git a/71.md b/71.md
index a18f277..6d6775a 100644
--- a/71.md
+++ b/71.md
@@ -6,7 +6,7 @@ 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 _parameterized replaceable_ and deletable per [NIP-09](09.md). The content of a video event is the stringified JSON of a `kind 1063` File metadata event as described in [NIP-94](94.md). 9This specification defines video events representing a dedicated post of externally hosted content. These video events are _parameterized replaceable_ and deletable per [NIP-09](09.md).
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
@@ -18,17 +18,27 @@ There are two types of video events represented by different kinds: horizontal a
18 18
19The format uses a parameterized replaceable event kind `34235` for horizontal videos and `34236` for vertical videos. 19The format uses a parameterized replaceable event kind `34235` for horizontal videos and `34236` for vertical videos.
20 20
21The `.content` of these events is the stringified JSON of a `kind 1063` file metadata event. 21The `.content` of these events is a summary or description on the video content.
22 22
23The list of tags are as follows: 23The list of tags are as follows:
24* `d` (required) universally unique identifier (UUID). Generated by the client creating the video event. 24* `d` (required) universally unique identifier (UUID). Generated by the client creating the video event.
25* `e` (required, repeated) reference tag to kind 1063 file metadata event being posted, optional relay information for the file metadata event, optional quality value (low|medium|high) 25* `url` (required) the url to the video file
26* `m` a string indicating the data type of the file. The [MIME types](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) format must be used, and they should be lowercase.
26* `title` (required) title of the video 27* `title` (required) title of the video
27* `summary` (optional) summary/description of the video 28* `"published_at"`, for the timestamp in unix seconds (stringified) of the first time the video was published
28* `url` (optional) a default link to the video data 29* `summary` (optional) summary/description of the video (same as `.content`)
30* `"aes-256-gcm"` (optional) key and nonce for AES-GCM encryption with tagSize always 128bits
31* `x` containing the SHA-256 hexencoded string of the file.
32* `size` (optional) size of file in bytes
33* `dim` (optional) size of file in pixels in the form `<width>x<height>`
34* `duration` (optional) video duration in seconds
35* `magnet` (optional) URI to magnet file
36* `i` (optional) torrent infohash
29* `text-track` (optional, repeated) link to WebVTT file for video, type of supplementary information (captions/subtitles/chapters/metadata), optional language code 37* `text-track` (optional, repeated) link to WebVTT file for video, type of supplementary information (captions/subtitles/chapters/metadata), optional language code
30* `thumb` (optional) url of thumbnail with same aspect ratio 38* `thumb` (optional) url of thumbnail with same aspect ratio
39* `image` (optional) url of preview image with same dimensions
31* `content-warning` (optional) warning about content of NSFW video 40* `content-warning` (optional) warning about content of NSFW video
41* `alt` (optional) description for accessibility
32* `t` (optional, repeated) hashtag to categorize video 42* `t` (optional, repeated) hashtag to categorize video
33* `p` (optional, repeated) 32-bytes hex pubkey of a participant in the video, optional recommended relay URL 43* `p` (optional, repeated) 32-bytes hex pubkey of a participant in the video, optional recommended relay URL
34* `r` (optional, repeated) references / links to web pages 44* `r` (optional, repeated) references / links to web pages
@@ -39,18 +49,27 @@ The list of tags are as follows:
39 "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, 49 "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>,
40 "created_at": <Unix timestamp in seconds>, 50 "created_at": <Unix timestamp in seconds>,
41 "kind": 34235 | 34236, 51 "kind": 34235 | 34236,
42 "content": "<stringified JSON of kind 1063 event>", 52 "content": "<summary / description of video>",
43 "tags": [ 53 "tags": [
44 ["d", "<UUID>"], 54 ["d", "<UUID>"],
45 ["e", "<hex-id>", "<relay-url>", "<optional quality value>"],
46 55
47 ["title", "<title of video>"], 56 ["title", "<title of video>"],
48 ["summary", "<summary of video>"], 57 ["summary", "<summary of video>"],
49 ["thumb", "<thumbnail image for video>"], 58 ["thumb", "<thumbnail image for video>"],
59 ["published_at", "<unix timestamp>"],
60 ["alt", <description>],
50 61
51 // Video Data 62 // Video Data
52 ["url", "<optional recommended url>"] 63 ["url",<string with URI of file>],
53 ["text-track", "<url>", "<text track type>", "<optional language>"], 64 ["m", <MIME type>],
65 ["x",<Hash SHA-256>],
66 ["aes-256-gcm",<key>, <iv>],
67 ["size", <size of file in bytes>],
68 ["duration", <duration of video in seconds>],
69 ["dim", <size of file in pixels>],
70 ["magnet",<magnet URI> ],
71 ["i",<torrent infohash>],
72 ["text-track", "<encoded `kind 6000` event>", "<recommended relay urls>"],
54 ["content-warning", "<reason>"], 73 ["content-warning", "<reason>"],
55 74
56 // Participants 75 // Participants