mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-23 00:45:53 -05:00
61 lines
2.7 KiB
Markdown
61 lines
2.7 KiB
Markdown
NIP-73
|
|
======
|
|
|
|
External Content IDs
|
|
--------------------
|
|
|
|
`draft` `optional`
|
|
|
|
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.
|
|
|
|
|
|
`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
|
|
|
|
| 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:
|
|
|
|
- Book ISBN: `["i", "isbn:9780765382030"]` - https://isbnsearch.org/isbn/9780765382030
|
|
|
|
Book 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.
|
|
|
|
### Podcasts:
|
|
|
|
- Podcast RSS Feed GUID: `["i", "podcast:guid:c90e609a-df1e-596a-bd5e-57bcc8aad6cc"]` - https://podcastindex.org/podcast/c90e609a-df1e-596a-bd5e-57bcc8aad6cc
|
|
- Podcast RSS Item GUID: `["i", "podcast:item:guid:d98d189b-dc7b-45b1-8720-d4b98690f31f"]`
|
|
- Podcast RSS Publisher GUID: `["i", "podcast:publisher:guid:18bcbf10-6701-4ffb-b255-bc057390d738"]`
|
|
|
|
### Movies:
|
|
|
|
- Movie ISAN: `["i", "isan:0000-0000-401A-0000-7"]` - https://web.isan.org/public/en/isan/0000-0000-401A-0000-7
|
|
|
|
Movie 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
|
|
|
|
---
|
|
|
|
### Optional URL Hints
|
|
|
|
Each `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:
|
|
|
|
`["i", "podcast:item:guid:d98d189b-dc7b-45b1-8720-d4b98690f31f", https://fountain.fm/episode/z1y9TMQRuqXl2awyrQxg]`
|
|
|
|
`["i", "isan:0000-0000-401A-0000-7", https://www.imdb.com/title/tt0120737]`
|
|
|
|
|