-
Notifications
You must be signed in to change notification settings - Fork 706
NIP-PO: podcast episodes #2061
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
dhalsim
wants to merge
4
commits into
nostr-protocol:master
Choose a base branch
from
dhalsim:podcast-episode
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
NIP-PO: podcast episodes #2061
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
NIP-XX | ||
====== | ||
|
||
Podcasts | ||
-------------- | ||
|
||
`draft` `optional` | ||
|
||
This NIP defines `kind:30025` for podcast episodes and content. Podcast events represent audio content with associated metadata, transcripts, chapters, and show notes. | ||
|
||
## Event Kind | ||
|
||
This NIP defines `kind:30025` as a podcast event. | ||
|
||
The `.content` field may contain markdown-formatted show notes, or episode description. | ||
|
||
## Required Tags | ||
|
||
- `d` - Episode identifier (slug or unique identifier for this episode) | ||
- `title` - Episode title | ||
- `audio` - URL to the audio file | ||
- `duration` - Episode duration in seconds | ||
|
||
## Optional Tags | ||
|
||
- `summary` - Episode summary or description | ||
- `image` - URL to episode artwork/image | ||
- `episode` - Episode number | ||
- `transcript` - URL to transcript file (VTT, or SRT) | ||
- `chapters` - URL to chapters file (JSON format following [Podcast Namespace specification](https://github.com/Podcastindex-org/podcast-namespace/blob/main/docs/examples/chapters/example.json)) | ||
- `rss` - URL to the podcast RSS feed | ||
- `ai_generated` - Boolean indicator if content is AI-generated ("true" or "false") | ||
- `published_at` - Unix timestamp of when episode was first published | ||
- `i` - External content identifier following [NIP-73](73.md) format for podcast episodes | ||
- `t` - Topic tags | ||
|
||
## Example Event | ||
|
||
```json | ||
{ | ||
"kind": 30025, | ||
"created_at": 1757442746, | ||
"content": "Sleep is essential for our physical and mental health. In this episode, we explore the latest research on how sleep affects memory, mood, and overall well-being.\n\nExperts share tips on improving sleep quality and discuss common myths about rest...", | ||
"tags": [ | ||
["d", "the-science-of-sleep"], | ||
["title", "The Science of Sleep: Why We Need Rest"], | ||
["audio", "https://my-podcast.com/the-science-of-sleep/audio.mp3"], | ||
["duration", "635"], // duration in seconds (tags have to be string) | ||
["summary", "Discover the science behind why sleep is essential for our health. This episode explores how sleep impacts memory, mood, and well-being, and shares expert tips for improving sleep quality."], | ||
["image", "https://my-podcast.com/the-science-of-sleep/image.png"], | ||
["episode", "1"], // episode number (tags have to be string) | ||
["transcript", "https://my-podcast.com/the-science-of-sleep/transcript.vtt"], | ||
["chapters", "https://my-podcast.com/the-science-of-sleep/chapters.json"], | ||
["rss", "https://my-podcast.com/podcast.rss"], | ||
["ai_generated", "false"], | ||
["published_at", "1757442746"], | ||
["i", "podcast:item:guid:https://my-podcast.com/the-science-of-sleep"], | ||
["t", "podcast"], | ||
["t", "sleep"], | ||
["t", "health"] | ||
], | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. May need to add the waveform, like on NIP-A0 |
||
"pubkey": ".....", | ||
"id": "....", | ||
"sig": "...." | ||
} | ||
``` |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it need to be replaceable? Why not just a regular event, like shorts, pictures and posts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think especially show notes (content) needs to be edited once first published. One scenario could be I got a new sponsor for the show and I need to add links to the show notes. Or simply I made a mistake and need to fix it, since it can be a long note.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think most things like this that are normally editable should be replaceable. Podcasts often even replace the MP3 for the episode as things change and they update it. So they'll definitely want to be able to update the episode metadata.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes it does. originally i had my kind:30054 as not replaceable kind:54, following the original unmerged NIP, and talked to @fiatjaf about it, but i came to the realization that it has to be replaceable just like blog posts, because people edit episodes. i realized this after i published two episodes and needed to go back and edit something with them. it just makes sense to be replaceable.