Paso 1 de 5
Un podcast es un par de claves
Cada programa tiene su propia clave de Nostr. También puede publicar notas normales, y la clave se puede compartir o traspasar para cambiar de propietario.
NIP-F4
BorradorEventos
Podcasts como feeds de Nostr: cada programa tiene su propio par de claves, publica la información del programa en kind 10154 y un evento kind 54 por episodio, y los presentadores confirman su autoría con kind 10164.
Edita el formulario o el JSON: ambos se mantienen sincronizados, la insignia indica si el resultado es válido y, al tocar cualquier campo, se explica qué hace.
Cómo se conectan las partes: Presentadores verificados
Aún sin firmar · Solo claves de demo. Las claves secretas de estos personajes son públicas a propósito.
Selecciona cualquier campo del formulario o del JSON para ver qué hace.
Paso 1 de 5
Cada programa tiene su propia clave de Nostr. También puede publicar notas normales, y la clave se puede compartir o traspasar para cambiar de propietario.
Ningún capítulo del curso cubre este NIP todavía. El editor de arriba es la forma más rápida de empezar.
Los tres kinds son eventos NIP-01 normales.
El kind 10054 de NIP-51 lista los podcasts que recomiendas.
Los archivos de audio pueden alojarse en servidores Blossom.
Los oyentes reaccionan a los episodios como a cualquier otro evento.
El texto de las especificaciones se cita en inglés del repositorio nostr-protocol/nips. Nuestras explicaciones y la interfaz están traducidas. Código fuente en GitHub en el commit 0046368
This NIP defines how podcast episodes can be fetched from relays. It's intended to fit easily into existing podcast players.
RSS feeds are great, but they have some problems that are solved by moving feeds from RSS URLs to multiple Nostr events, one for each episode:
The idea is that each podcast is its own Nostr keypair. This is simple and allows podcasts to combine their podcasting presence with a normal kind:0/kind:1 microblogging presence.
It also allows podcasts to have shared ownership (via MuSig2 or just common agreements between friends) and to change that ownership over time (again, based on human trust over handling of key material).
Podcast metadata is stored in kind:10154 replaceable events. This event contains the show-level information that podcast clients need to display the podcast.
Similar information may exist in the kind:0 profile for the podcast, but podcast-specific clients should be able to read directly from kind:10154 and ignore kind:0 entirely.
{
"id": "...",
"pubkey": "<podcast-pubkey>",
"kind": 10154,
"created_at": 1700682555,
"tags": [
["title", "<podcast-title>"],
["image", "<podcast-cover-image-URL>"],
["description", "<podcast-description>"],
["website", "<podcast-website-URL>"], // optional, multiple
["p", "<podcast-author-pubkey>", "<role>"] // optional, multiple
],
"content": "",
"sig": "..."
}
<role> is optional, can be "host", "cohost" or "editor".
The p tag in kind:10154 shouldn't be blindly trusted as implying authorship, since any podcast can falsely claim anyone to be their author, so before it is displayed as information by clients it must be checked against an equivalent counter-claim by the podcast authors themselves.
This is the kind:10164 event. Here podcast authors can list the public keys of the podcasts they author.
{
"id": "...",
"pubkey": "<user-pubkey>",
"kind": 10064,
"created_at": 1700682555,
"tags": [
["p", "<podcast-pubkey-1>"],
["p", "<podcast-pubkey-2>"]
],
"content": "",
"sig": "..."
}
Clients can also use this to discover all podcasts authored by a given user.
Podcast episodes are kind:54 events authored by the podcast public key directly.
{
"id": "...",
"pubkey": "<podcast-pubkey>",
"kind": 54,
"created_at": 1700682555,
"tags": [
["title", "<episode title>"],
["image", "<optional episode image>"],
["description", "<a brief description>"],
["audio", "<audio-url>", "<optional_media_type>"], // can be specified multiple times
// ...other important fields to be specified here later after further discovery
],
"content": "<markdown content>",
"sig": "...",
}
See NIP-51 for the description of a kind:10054 event in which any user can list the podcasts they publicly advertise to listening to, as a soft recommendation.