Merge pull request #1508 from MerryOscar/expand-external-content-ids

NIP-73 - Expand External Content IDs
This commit is contained in:
hodlbod 2024-09-25 15:15:46 -07:00 committed by GitHub
commit 4438b892d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

24
73.md
View File

@ -6,17 +6,29 @@ External Content IDs
`draft` `optional` `draft` `optional`
There 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. There are certain established global content identifiers such as [Book ISBNs](https://en.wikipedia.org/wiki/ISBN), [Podcast GUIDs](https://podcastnamespace.org/tag/guid), and [Movie ISANs](https://en.wikipedia.org/wiki/International_Standard_Audiovisual_Number) that are useful to reference in nostr events so that clients can query all the events assosiated with these ids.
- Book [ISBNs](https://en.wikipedia.org/wiki/ISBN)
- Podcast [GUIDs](https://podcastnamespace.org/tag/guid)
- Movie [ISANs](https://en.wikipedia.org/wiki/International_Standard_Audiovisual_Number)
Since 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.
`i` tags are used for referencing these external content ids, with `k` tags representing the external content id kind so that clients can query all the events for a specific kind.
## Supported IDs ## Supported IDs
| Type | `i` tag | `k` tag |
|- | - | - |
| URLs | "`<URL, normalized, no fragment>`" | "`<scheme-host, normalized>`" |
| Hashtags | "#`<topic, lowercase>`" | "#" |
| Geohashes| "geo:`<geohash, lowercase>`" | "geo" |
| Books | "isbn:`<id, without hyphens>`" | "isbn" |
| Podcast Feeds | "podcast:guid:`<guid>`" | "podcast:guid" |
| Podcast Episodes | "podcast:item:guid:`<guid>`" | "podcast:item:guid" |
| Podcast Publishers | "podcast:publisher:guid:`<guid>`" | "podcast:publisher:guid" |
| Movies | "isan:`<id, without version part>`" | "isan" |
| Papers | "doi:`<id, lowercase>`" | "doi" |
---
## Examples
### Books: ### Books:
- Book ISBN: `["i", "isbn:9780765382030"]` - https://isbnsearch.org/isbn/9780765382030 - Book ISBN: `["i", "isbn:9780765382030"]` - https://isbnsearch.org/isbn/9780765382030