upleb.uk

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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhodlbod <jstaab@protonmail.com>2024-08-06 09:34:24 -0700
committerGitHub <noreply@github.com>2024-08-06 09:34:24 -0700
commit738c4809a146187b9a2f494f180ce6d770307830 (patch)
treef33f8107cbf39409e1a2084ef503b62616950607
parent5f651db43f96f065ea6952cf35126ff00f85ef95 (diff)
parent4d9eb32dc9062868d0d61c15456935dad39364de (diff)
Merge pull request #1185 from MerryOscar/external-content-ids
NIP-73 - External Content IDs
-rw-r--r--24.md1
-rw-r--r--73.md48
-rw-r--r--README.md3
3 files changed, 51 insertions, 1 deletions
diff --git a/24.md b/24.md
index 3adec24..ef4196b 100644
--- a/24.md
+++ b/24.md
@@ -40,4 +40,5 @@ tags
40These tags may be present in multiple event kinds. Whenever a different meaning is not specified by some more specific NIP, they have the following meanings: 40These tags may be present in multiple event kinds. Whenever a different meaning is not specified by some more specific NIP, they have the following meanings:
41 41
42 - `r`: a web URL the event is referring to in some way 42 - `r`: a web URL the event is referring to in some way
43 - `i`: an external id the event is referring to in some way - see [NIP-73](73.md)
43 - `title`: name of [NIP-51](51.md) sets, [NIP-52](52.md) calendar event, [NIP-53](53.md) live event or [NIP-99](99.md) listing 44 - `title`: name of [NIP-51](51.md) sets, [NIP-52](52.md) calendar event, [NIP-53](53.md) live event or [NIP-99](99.md) listing
diff --git a/73.md b/73.md
new file mode 100644
index 0000000..12228d3
--- /dev/null
+++ b/73.md
@@ -0,0 +1,48 @@
1NIP-73
2======
3
4External Content IDs
5-------------------------
6
7`draft` `optional`
8
9There are certain established global content identifiers that would be useful to reference in nostr events so that clients can query all events assosiated with these ids.
10
11- Book [ISBNs](https://en.wikipedia.org/wiki/ISBN)
12- Podcast [GUIDs](https://podcastnamespace.org/tag/guid)
13- Movie [ISANs](https://en.wikipedia.org/wiki/International_Standard_Audiovisual_Number)
14
15Since the `i` tag is already used for similar references in kind-0 metadata events it makes sense to use it for these content ids as well.
16
17
18## Supported IDs
19
20### Books:
21
22- Book ISBN: `["i", "isbn:9780765382030"]` - https://isbnsearch.org/isbn/9780765382030
23
24Book ISBNs MUST be referenced _**without hyphens**_ as many book search APIs return the ISBNs without hyphens. Removing hypens from ISBNs is trivial, whereas adding the hyphens back in is non-trivial requiring a library.
25
26### Podcasts:
27
28- Podcast RSS Feed GUID: `["i", "podcast:guid:c90e609a-df1e-596a-bd5e-57bcc8aad6cc"]` - https://podcastindex.org/podcast/c90e609a-df1e-596a-bd5e-57bcc8aad6cc
29- Podcast RSS Item GUID: `["i", "podcast:item:guid:d98d189b-dc7b-45b1-8720-d4b98690f31f"]`
30- Podcast RSS Publisher GUID: `["i", "podcast:publisher:guid:18bcbf10-6701-4ffb-b255-bc057390d738"]`
31
32### Movies:
33
34- Movie ISAN: `["i", "isan:0000-0000-401A-0000-7"]` - https://web.isan.org/public/en/isan/0000-0000-401A-0000-7
35
36Movie ISANs SHOULD be referenced _**without the version part**_ as the versions / edits of movies are not relevant. More info on ISAN parts here - https://support.isan.org/hc/en-us/articles/360002783131-Records-relations-and-hierarchies-in-the-ISAN-Registry
37
38---
39
40### Optional URL Hints
41
42Each `i` tag MAY have a url hint as the second argument to redirect people to a website if the client isn't opinionated about how to interpret the id:
43
44`["i", "podcast:item:guid:d98d189b-dc7b-45b1-8720-d4b98690f31f", https://fountain.fm/episode/z1y9TMQRuqXl2awyrQxg]`
45
46`["i", "isan:0000-0000-401A-0000-7", https://www.imdb.com/title/tt0120737]`
47
48
diff --git a/README.md b/README.md
index 550888a..6c83ba8 100644
--- a/README.md
+++ b/README.md
@@ -77,6 +77,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
77- [NIP-70: Protected Events](70.md) 77- [NIP-70: Protected Events](70.md)
78- [NIP-71: Video Events](71.md) 78- [NIP-71: Video Events](71.md)
79- [NIP-72: Moderated Communities](72.md) 79- [NIP-72: Moderated Communities](72.md)
80- [NIP-73: External Content IDs](73.md)
80- [NIP-75: Zap Goals](75.md) 81- [NIP-75: Zap Goals](75.md)
81- [NIP-78: Application-specific data](78.md) 82- [NIP-78: Application-specific data](78.md)
82- [NIP-84: Highlights](84.md) 83- [NIP-84: Highlights](84.md)
@@ -238,7 +239,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
238| `-` | -- | -- | [70](70.md) | 239| `-` | -- | -- | [70](70.md) |
239| `g` | geohash | -- | [52](52.md) | 240| `g` | geohash | -- | [52](52.md) |
240| `h` | group id | -- | [29](29.md) | 241| `h` | group id | -- | [29](29.md) |
241| `i` | identity | proof | [39](39.md) | 242| `i` | external identity | proof, url hint | [39](39.md), [73](73.md) |
242| `k` | kind number (string) | -- | [18](18.md), [25](25.md), [72](72.md) | 243| `k` | kind number (string) | -- | [18](18.md), [25](25.md), [72](72.md) |
243| `l` | label, label namespace | -- | [32](32.md) | 244| `l` | label, label namespace | -- | [32](32.md) |
244| `L` | label namespace | -- | [32](32.md) | 245| `L` | label namespace | -- | [32](32.md) |