nostrability icon indicating copy to clipboard operation
nostrability copied to clipboard

Live event NIP-53 +other stream formats positive interoperability

Open alltheseas opened this issue 1 year ago • 25 comments

NIP-53 https://github.com/nostr-protocol/nips/blob/master/53.md

app view NIP-53 (zapstream) support create nip-53 livestream view .webm view HLS comment
zap.stream
damus
primal
amethyst ?
nostrudel ?
nostur
coracle ❌ (audio only)
Iris
Phoenix(snort)
applesauce ** **Applesauce v3 will have some helpers for reading NIP-53 events and creating / modifying them
shosho mobile streaming
applesauce

https://njump.me/nevent1qqsp5rfq2mdfq7dpa5zu3fn9znqmgzqzfq46nr9snqwehgra4y9arngpzpmhxue69uhkummnw3ezuamfdejszrthwden5te0dehhxtnvdakqzxrhwvaz7te3xqczude39ceryd3wxycnqw358q6rsqg5waehxw309aex2mrp0yhxgctdw4eju6t02pzc5a

alltheseas avatar Sep 05 '24 17:09 alltheseas

@v0l what standard does zapstream use for streaming?

alltheseas avatar Sep 05 '24 19:09 alltheseas

NIP-53

Amethyst / Nostrudel / nostur support it

v0l avatar Sep 05 '24 19:09 v0l

@v0l do the apps you listed support viewing zapstream/nip-53 feeds only, or streaming + viewing?

alltheseas avatar Sep 05 '24 20:09 alltheseas

Viewing / Zapping / Commenting only afaik

v0l avatar Sep 05 '24 20:09 v0l

Are there any other apps beyond zapstream that can stream NIP-53?

alltheseas avatar Sep 05 '24 20:09 alltheseas

next version of noStrudel will support embedded HLS videos in kind 1 notes

Tracking PR: https://github.com/hzrd149/nostrudel/pull/214 Example: https://next.nostrudel.ninja/#/n/nevent1qvzqqqqqqypzqvhpsfmr23gwhv795lgjc8uw0v44z3pe4sg2vlh08k0an3wx3cj9qy88wumn8ghj7mn0wvhxcmmv9uq3kamnwvaz7tm5dpjkvmmjv4ehgtnwdaehgu339e3k7mf0qqsrwv3a0ftfsy55jqaec8wzw27j8dn4k6r46834d65ftjcxgfp6c9cmmgfrm

hzrd149 avatar Sep 05 '24 22:09 hzrd149

I don't know if it makes sense to have this giant table of unrelated clients.

fiatjaf avatar Sep 06 '24 15:09 fiatjaf

I don't know if it makes sense to have this giant table of unrelated clients.

what do you suggest?

alltheseas avatar Sep 06 '24 15:09 alltheseas

what do you suggest?

having only clients that matter.

fiatjaf avatar Sep 06 '24 15:09 fiatjaf

updated to a table with respondees only. is this good for now?

alltheseas avatar Sep 06 '24 16:09 alltheseas

Zap.Stream

  • HLS - No (https://zap.stream/nevent1qqsrwv3a0ftfsy55jqaec8wzw27j8dn4k6r46834d65ftjcxgfp6c9cg8sn26)
  • .webm - No (https://zap.stream/nevent1qqsfmxjnuh9awg9kjw7v6g64v3lpk6aaesfsg4ywery3auu8egyvghc8wmswu)

Primal

  • View NIP-53 stream: No (on iOS and web)
  • .webm Support: Yes (https://primal.net/e/note1nkd98ewt6ustdyaue5342er7rd4mmnqnq32gajxfrmec0jsgc30s95yuvh)
  • Create NIP-53 stream: No (on iOS and web)

Nostrudel

  • .webm - Yes
  • Create NIP-53 stream: No

Nostur

  • .webm - No
  • Create NIP-53 stream: No

Coracle

  • HLS - No (streams audio only - https://coracle.social/notes/nevent1qyd8wumn8ghj7un9d3shjtn8v46xzmrz0yhxxmmd9amrzqgwwaehxw309ahx7uewd3hkctcpz9mhxue69uhkummnw3ezuamfdejj7qgkwaehxw309aex2mrp0yhx6mmnw3ezuur4vghsz9nhwden5te0v4jx2m3wdehhxarj9ekxzmny9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcprdmhxue69uhhg6r9vehhyetnwshxummnw3erztnrdakj7qgkwaehxw309a482mncd9hxwampdenjummjvuhsqgphxg7h545cz22fqwuurhp890frke6mdp6arc6ka2y4evryysavzum5c4ax)
  • View NIP-53 stream - No
  • .webm - Yes (https://coracle.social/notes/nevent1qqsfmxjnuh9awg9kjw7v6g64v3lpk6aaesfsg4ywery3auu8egyvghc8wmswu)
  • Create NIP-53 stream - No

Snort:

  • HLS - No
  • View NIP-53 steam - No
  • .webm - No
  • Create NIP-53 stream - No

Maybe I've misunderstood the . symbols you've used above (might be browser/system dependant, but I filled in what worked for me. :)

YawningGoat avatar Sep 06 '24 17:09 YawningGoat

thank you @YawningGoat :pray: updated accordingly

@v0l wen streaming support in snort?? :smiley:

alltheseas avatar Sep 06 '24 18:09 alltheseas

This issue is tracking two completely independent things. NIP-53 livestream support is very different than just displaying HLS from a URL in a note. webm is yet another entirely different thing.

fiatjaf avatar Sep 06 '24 19:09 fiatjaf

What do you think is a better approach?

alltheseas avatar Sep 06 '24 19:09 alltheseas

One issue for NIP-53 live video events, another for displaying webm, another for displaying HLS in notes.

But I would not try to track webm and HLS support in notes, these are not compatibility-critical issues, they are more like nice-to-have features of clients. Pushing all clients to add support for these things is an anti-pattern.

In fact the fact that Damus is uploading video as HLS is kinda breaking everything, I think it's better if a simpler video URL that everybody understands as the main URL in the note content, then use that imeta tag to have an optional HLS link -- so yes, I think we need a different issue to address that.

fiatjaf avatar Sep 06 '24 22:09 fiatjaf

Specific to NIP-53, @tyiu is considering adding support to display nip-53 scheduled events on comingle, and potentially add a virtual event filter/toggle/ui element.

alltheseas avatar Sep 07 '24 02:09 alltheseas

In fact the fact that Damus is uploading video as HLS is kinda breaking everything

@fiatjaf upload damus default is .mp4. Damus renders HLS posted by any nostr app. For reference, here is the add support for streaming HLS issue from last year: https://github.com/damus-io/damus/issues/798

alltheseas avatar Sep 08 '24 16:09 alltheseas

One issue for NIP-53 live video events, another for displaying webm, another for displaying HLS in notes.

@fiatjaf what do you think about calling a new category of non-NIP feature tracker where HLS, webm could fit in: "not mandatory", "fyi", or "bonus points"

alltheseas avatar Sep 08 '24 17:09 alltheseas

From the end user and streamer perspective the concept of "streaming" is involves more than NIP-53.

See https://njump.me/note1vkulcuqym2whk2jkltcumevkw9eypmv459vkpyvq9ctzw97unx6sgrgzcu

I think its useful context to have for the streamer persona. Maybe nostrability repo is not the best place for it.

Do yall know of a nostr for streamers resource?

cc @fiatjaf

alltheseas avatar Sep 09 '24 00:09 alltheseas

In fact the fact that Damus is uploading video as HLS is kinda breaking everything, I think it's better if a simpler video URL that everybody understands as the main URL in the note content, then use that imeta tag to have an optional HLS link -- so yes, I think we need a different issue to address that.

this is not true, damus does no such thing.

I want to though. Video doesn't really load on low bandwidth connections without adaptive bitrate streaming, which every video and social media platform uses, especially for longer videos.

jb55 avatar Sep 09 '24 04:09 jb55

Primal and iOS Damus are investigating adding NIP-53 streaming

alltheseas avatar Aug 08 '25 16:08 alltheseas

@hzrd149 does Applesauce support NIP-53 streaming?

alltheseas avatar Aug 08 '25 17:08 alltheseas

@hzrd149 does Applesauce support NIP-53 streaming?

Applesauce v3 will have some helpers for reading NIP-53 events and creating / modifying them

Helper methods: https://github.com/hzrd149/applesauce/blob/861ccc74478c3f9bbe3b13a0e3e438db3ab48a40/packages/core/src/helpers/stream.ts

Event operations (create / modify) https://github.com/hzrd149/applesauce/blob/861ccc74478c3f9bbe3b13a0e3e438db3ab48a40/packages/factory/src/operations/stream.ts

sorry for the lack of docs

hzrd149 avatar Aug 08 '25 17:08 hzrd149

https://github.com/r0d8lsh0p/shosho-releases

fiatjaf avatar Aug 08 '25 20:08 fiatjaf

Nostrability/schemata now contains a NIP-53 live scheme https://github.com/nostrability/schemata.

Devs and others can use to verify if JSON/events/kind implementations conform, or conflict with the spec.

alltheseas avatar Sep 12 '25 13:09 alltheseas

nostria

https://nostr.eu/nevent1qqsqqqq2sarpqsumdfc4y22hfakfqw9hkehamgnhlwsr9lqztd9z09g4z6t7q

Image

alltheseas avatar Dec 10 '25 16:12 alltheseas