mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-13 19:06:24 +00:00
Create NIP 44 for Video Events
Nip for video events to enable dedicated video clients (e.g. Netflix, YouTube) to be built on nostr.
This commit is contained in:
parent
ef106eccca
commit
7646386956
98
44.md
Normal file
98
44.md
Normal file
@ -0,0 +1,98 @@
|
||||
NIP-44
|
||||
======
|
||||
|
||||
Video Events
|
||||
---------------
|
||||
|
||||
`draft` `optional`
|
||||
|
||||
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).
|
||||
|
||||
Unlike a `kind 1` event with a video attached, Video Events are meant to contain all necessary metadata concerning the media and to be surfaced in media specific clients rather than general micro-blogging clients. The thought is for events of this kind to be referenced in a YouTube like nostr client where the video itself is at the center of the experience.
|
||||
|
||||
## Video Events
|
||||
|
||||
#### Format
|
||||
|
||||
The format uses a parameterized replaceable event kind `34235`.
|
||||
|
||||
The `.content` of these events is optional and should be a summary of the video's contents.
|
||||
|
||||
The list of tags are as follows:
|
||||
* `d` (required) universally unique identifier (UUID). Generated by the client creating the video event.
|
||||
* `title` (required) title of the video
|
||||
* `src` (required) a link to the video data
|
||||
* `m` (optional) the MIME type of the video data in the `src` tag
|
||||
* `summary` (optional) summary/description of the video (same as content)
|
||||
* `image` (optional) thumbnail or preview image for the video
|
||||
* `text-track` (optional, repeated) link to WebVTT file for video, type of supplementary information (captions/subtitles/chapters/metadata), optional language code
|
||||
* `content-warning` (optional) warning about content of NSFW video
|
||||
* `t` (optional, repeated) hashtag to categorize video
|
||||
* `p` (optional, repeated) 32-bytes hex pubkey of a participant in the video, optional recommended relay URL
|
||||
* `r` (optional, repeated) references / links to web pages.
|
||||
|
||||
```json
|
||||
{
|
||||
"id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>,
|
||||
"pubkey": <32-bytes lowercase hex-encoded public key of the event creator>,
|
||||
"created_at": <Unix timestamp in seconds>,
|
||||
"kind": 34235,
|
||||
"content": "<summary of video>",
|
||||
"tags": [
|
||||
["d", "<UUID>"],
|
||||
|
||||
["title", "<title of video>"],
|
||||
["summary", "<summary of video>"],
|
||||
["image", "<thumbnail image for video>"],
|
||||
|
||||
// Video Data
|
||||
["src", "<url>"],
|
||||
["m", "<MIME type>"],
|
||||
["text-track", "<url>", "<text track type>", "<optional language>"],
|
||||
["content-warning", "<reason>"],
|
||||
|
||||
// Participants
|
||||
["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"],
|
||||
["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"],
|
||||
|
||||
// Hashtags
|
||||
["t", "<tag>"],
|
||||
["t", "<tag>"],
|
||||
|
||||
// Reference links
|
||||
["r", "<url>"],
|
||||
["r", "<url>"]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Video View
|
||||
|
||||
A video event view is a response to a video event to track a user's view or progress viewing the video.
|
||||
|
||||
### Format
|
||||
|
||||
The format uses a parameterized replaceable event kind `34236`.
|
||||
|
||||
The `.content` of these events is optional and could be a free-form note that acts like a bookmark for the user.
|
||||
|
||||
The list of tags are as follows:
|
||||
* `a` (required) reference tag to kind `34235` video event being viewed
|
||||
* `d` (required) universally unique identifier. Generated by the client creating the video event view
|
||||
* `progress` (optional) timestamp of the user's progress in format `HH:MM:SS.sss`
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>,
|
||||
"pubkey": <32-bytes lowercase hex-encoded public key of the event creator>,
|
||||
"created_at": <Unix timestamp in seconds>,
|
||||
"kind": 34236,
|
||||
"content": "<note>",
|
||||
"tags": [
|
||||
["a", "<34235>:<calendar event author pubkey>:<d-identifier of video event>", "<optional relay url>"],
|
||||
["d", "<UUID>"],
|
||||
["progress", "00:08:31.520"],
|
||||
]
|
||||
}
|
||||
```
|
Loading…
Reference in New Issue
Block a user