diff options
| -rw-r--r-- | 71.md | 37 |
1 files changed, 28 insertions, 9 deletions
| @@ -6,7 +6,7 @@ Video Events | |||
| 6 | 6 | ||
| 7 | `draft` `optional` | 7 | `draft` `optional` |
| 8 | 8 | ||
| 9 | This 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). | 9 | This 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 | ||
| 11 | Unlike 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. | 11 | Unlike 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 | ||
| 19 | The format uses a parameterized replaceable event kind `34235` for horizontal videos and `34236` for vertical videos. | 19 | The format uses a parameterized replaceable event kind `34235` for horizontal videos and `34236` for vertical videos. |
| 20 | 20 | ||
| 21 | The `.content` of these events is the stringified JSON of a `kind 1063` file metadata event. | 21 | The `.content` of these events is a summary or description on the video content. |
| 22 | 22 | ||
| 23 | The list of tags are as follows: | 23 | The 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 |