nips/68.md

70 lines
2.5 KiB
Markdown
Raw Normal View History

2024-10-27 19:43:43 -04:00
NIP-68
======
Picture-first feeds
-------------------
`draft` `optional`
This NIP defines event kind `20` for picture-first clients. Images must be self-contained. They are hosted externally and referenced using `imeta` tags
Unlike a `kind 1` event with a pircture attached, Picture events are meant to contain all additional metadata concerning the subject media and to be surfaced in picture-specific clients rather than general micro-blogging clients. The thought is for events of this kind to be referenced in a Instagram/Flickr/Snapshat/9gag like nostr client where the picture itself is at the center of the experience.
## Picture Events
Picture events contain a `title` tag and description in the `.content`.
They may contain multiple images to be displayed as a single post.
```jsonc
{
"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": 20,
"content": "<description of post>",
"tags": [
["title", "<short title of post>"],
// Picture Data
[
"imeta",
"url https://nostr.build/i/my-image.jpg",
"m image/jpeg",
"blurhash eVF$^OI:${M{o#*0-nNFxakD-?xVM}WEWB%iNKxvR-oetmo#R-aen$",
"dim 3024x4032",
"alt A scenic photo overlooking the coast of Costa Rica",
"x <sha256 hash as specified in NIP 94>",
"fallback https://nostrcheck.me/alt1.jpg",
"fallback https://void.cat/alt1.jpg"
],
[
"imeta",
"url https://nostr.build/i/my-image2.jpg",
"m image/jpeg",
"blurhash eVF$^OI:${M{o#*0-nNFxakD-?xVM}WEWB%iNKxvR-oetmo#R-aen$",
"dim 3024x4032",
"alt Another scenic photo overlooking the coast of Costa Rica",
"x <sha256 hash as specified in NIP 94>",
"fallback https://nostrcheck.me/alt2.jpg",
"fallback https://void.cat/alt2.jpg",
"annotate-user <32-bytes hex of a pubkey>:<posX>:<posY>" // Tag users in specific locations in the picture
],
["content-warning", "<reason>"], // if NSFW
// Tagged users
["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>"],
]
}
```
The `imeta` tag `annotate-user` places a user link in the specific position in the image.
Picture events might be used with [NIP-71](71.md)'s kind `34236` to display short vertical videos in the same feed.