diff options
| author | Vitor Pamplona <vitor@vitorpamplona.com> | 2024-10-27 19:43:43 -0400 |
|---|---|---|
| committer | Vitor Pamplona <vitor@vitorpamplona.com> | 2024-10-27 19:43:43 -0400 |
| commit | 66c5cc637f118add2d2cade2210d21da7e25917b (patch) | |
| tree | 98e62abcd92aeb69cebdf6ab9a0eb6c21cc4202b | |
| parent | dde8c81a87f01131ed2eec0dd653cd5b79900b82 (diff) | |
Instagram feeds
| -rw-r--r-- | 68.md | 70 |
1 files changed, 70 insertions, 0 deletions
| @@ -0,0 +1,70 @@ | |||
| 1 | NIP-68 | ||
| 2 | ====== | ||
| 3 | |||
| 4 | Picture-first feeds | ||
| 5 | ------------------- | ||
| 6 | |||
| 7 | `draft` `optional` | ||
| 8 | |||
| 9 | This NIP defines event kind `20` for picture-first clients. Images must be self-contained. They are hosted externally and referenced using `imeta` tags | ||
| 10 | |||
| 11 | 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. | ||
| 12 | |||
| 13 | ## Picture Events | ||
| 14 | |||
| 15 | Picture events contain a `title` tag and description in the `.content`. | ||
| 16 | |||
| 17 | They may contain multiple images to be displayed as a single post. | ||
| 18 | |||
| 19 | ```jsonc | ||
| 20 | { | ||
| 21 | "id": <32-bytes lowercase hex-encoded SHA-256 of the the serialized event data>, | ||
| 22 | "pubkey": <32-bytes lowercase hex-encoded public key of the event creator>, | ||
| 23 | "created_at": <Unix timestamp in seconds>, | ||
| 24 | "kind": 20, | ||
| 25 | "content": "<description of post>", | ||
| 26 | "tags": [ | ||
| 27 | ["title", "<short title of post>"], | ||
| 28 | |||
| 29 | // Picture Data | ||
| 30 | [ | ||
| 31 | "imeta", | ||
| 32 | "url https://nostr.build/i/my-image.jpg", | ||
| 33 | "m image/jpeg", | ||
| 34 | "blurhash eVF$^OI:${M{o#*0-nNFxakD-?xVM}WEWB%iNKxvR-oetmo#R-aen$", | ||
| 35 | "dim 3024x4032", | ||
| 36 | "alt A scenic photo overlooking the coast of Costa Rica", | ||
| 37 | "x <sha256 hash as specified in NIP 94>", | ||
| 38 | "fallback https://nostrcheck.me/alt1.jpg", | ||
| 39 | "fallback https://void.cat/alt1.jpg" | ||
| 40 | ], | ||
| 41 | [ | ||
| 42 | "imeta", | ||
| 43 | "url https://nostr.build/i/my-image2.jpg", | ||
| 44 | "m image/jpeg", | ||
| 45 | "blurhash eVF$^OI:${M{o#*0-nNFxakD-?xVM}WEWB%iNKxvR-oetmo#R-aen$", | ||
| 46 | "dim 3024x4032", | ||
| 47 | "alt Another scenic photo overlooking the coast of Costa Rica", | ||
| 48 | "x <sha256 hash as specified in NIP 94>", | ||
| 49 | "fallback https://nostrcheck.me/alt2.jpg", | ||
| 50 | "fallback https://void.cat/alt2.jpg", | ||
| 51 | |||
| 52 | "annotate-user <32-bytes hex of a pubkey>:<posX>:<posY>" // Tag users in specific locations in the picture | ||
| 53 | ], | ||
| 54 | |||
| 55 | ["content-warning", "<reason>"], // if NSFW | ||
| 56 | |||
| 57 | // Tagged users | ||
| 58 | ["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"], | ||
| 59 | ["p", "<32-bytes hex of a pubkey>", "<optional recommended relay URL>"], | ||
| 60 | |||
| 61 | // Hashtags | ||
| 62 | ["t", "<tag>"], | ||
| 63 | ["t", "<tag>"], | ||
| 64 | ] | ||
| 65 | } | ||
| 66 | ``` | ||
| 67 | |||
| 68 | The `imeta` tag `annotate-user` places a user link in the specific position in the image. | ||
| 69 | |||
| 70 | Picture events might be used with [NIP-71](71.md)'s kind `34236` to display short vertical videos in the same feed. \ No newline at end of file | ||