2024-02-12 17:53:07 -05:00
NIP-0a
======
Audio Events
---------------
`draft` `optional`
This NIP defines several new event kinds representing different types of audio track. These events
are _parameterized replaceable_ as defined in [NIP-01 ](./01.md ) and deletable per [NIP-09 ](09.md ).
Unlike a `kind 1` event with audio attached, audio events are intended to be surfaced in an audio-specific context
rather than in a general micro-blogging context.
The following kinds are defined by this NIP:
- `31337` represents a music track
- `31338` represents a podcast episode
The following tags are required:
- `d` is a unique identifier randomly generated by the client.
- `media` is the url of the media. This SHOULD NOT be read, but is required for backwards compatibility reasons.
- `imeta` is as described in [NIP 92 ](./92.md ). Multiple `imeta` tags MAY be included to provide for different
use cases (e.g. streaming vs download).
- `title` is the title of the audio track
- `subject` is the title of the audio track (deprecated, but required for compatibility)
The following tags are optional:
- `i` is an external GUID in the format defined [here ](https://github.com/MerryOscar/nips/commit/280eb498e0ac56b8f9356c1b7a88cc8b31579801 ).
- `c` is the track's value as defined by a given category.
- `website` is an external url to a website related to the track.
- `duration` is the duration of the audio track, in seconds.
- `published_at` is a timestamp representing the track's original publish date.
2024-10-07 12:33:19 -04:00
Expected categories may include (but are not limited to):
- `genre`
- `subgenre`
- `artist`
- `record_label`
- `producer`
- `composer`
- `album`
- `track_number`
- `tracks`
- `bpm`
- `year`
2024-02-12 17:53:07 -05:00
Note that artists, producers, SHOULD be referred to using both a plaintext `c` tag AND a conventional `p` tag when pubkey is available. When doing so, the `p` tag's petname MUST be the same as the `c` tag's value. In this way `c` tags can be used to indicate genre, as well as artist, producer, etc.
If included, `genre` and `subgenre` SHOULD be based on [this list ](https://github.com/wavlake/genre-list ).
`content` SHOULD be summary or description of the audio content.
Example:
```json
{
"id": < event_id > ,
"pubkey": < author_pubkey > ,
"created_at": < created_at > ,
"kind": 31337,
"content": "Chill beats",
"tags": [
["d", "< id > "],
["c", "Pop", "genre"],
["c", "EDM", "subgenre"],
["c", "Columbia Records", "record_label"],
["c", "AC/DC", "artist"],
["i", "podcast:item:guid:123", "https://fountain.fm/episode/30uEXC25615Ze2ELjY2p"],
["p", "2a07724d42fd8004b5c97b62ba03b6baf3919f9e8211667039987866997e97ad", "wss://my-relay.com", "AC/DC"],
["title", "Platinum Robots on the Moon"],
["subject", "Platinum Robots on the Moon"],
["published_at", "< published_at > "],
["imeta", "url https://example.com/my-track.m3u8", "x < hash > ", ...]
]
}
```