Skip to Content
Nostr BasicsHow streaming to Nostr works

How streaming to Nostr works

Streaming on Nostr is just like streaming on other platforms, with one extra step – the live event.

When you go live, two things happen at once:

  1. Your video is sent to a streaming server. That server makes your video available at a web address — typically an HLS URL ending in .m3u8.
  2. A live event is published to Nostr. The event contains a link to that HLS URL, plus your profile, title, thumbnail, and current status (planned, live, or ended).

It is this live event that allows your viewers to find you and join your live.

Once the live event is on Nostr, every website and app that supports Nostr streaming — Shosho.live, Primal, Amethyst, Nostrudel, Zap Stream and more — can find your stream and let your followers join your live and chat with you.

Who publishes the live event?

It depends on which type of streaming server you use:

  • Nostr streaming servers (Shosho Server, Zap Stream Server) publish the live event to Nostr on your behalf.
  • Generic RTMP servers (self-hosted servers like SRS, Owncast, or OME, or hosted services like Cloudflare Stream, Livepeer, or API.video) don’t know anything about Nostr — Shosho app can publish the live event for you. Or, you can publish it manually using the Show Chat functionality on the Shosho.live website.

Either way, your stream ends up visible across the Nostr network.

What the live event looks like

In Nostr specification this live event is called a kind 30311 event. It is a small piece of structured data that says: “streamer X is live at URL Y, status is live, the stream is titled Z.”

Shosho and other Nostr clients subscribe to these events and render them in their UIs, so your live stream will appear everywhere that Nostr live streams are shown.

Last updated on