All Episodes

July 26, 2025 • 88 mins

In this episode QW and Avi welcome Kieran, the creator of Zap.Stream, Snort Social, Nostr Nest and FreeFlow. They discuss with Kieran the rolllout of Zap Stream Core, Decentralized Streaming, Blossom, DDOS Attack, Snort, Nostr Nests, Free Flow and more.

Zap Stream Core : https://github.com/v0l/zap-stream-core

Zap Stream N94 : https://github.com/v0l/zap-stream-core/tree/main/crates/n94

Free Flow : https://github.com/nostrlabs-io/freeflow

Route 96 / Blossom Server : https://github.com/v0l/route96

Support Finding Home Episode 3: Angor Fundraiser

Avi Burra's Book 24 : https://www.amazon.com/24-Avi-Burra/dp/B0CN9NRNNB/ref=sr11?crid=27RW9P8JQ4YMV&keywords=avi+burra+24&qid=1700327391&sprefix=avi+burra+24%2Caps%2C122&sr=8-1

Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:00):
Welcome to Pleb Chain Radio, a live show brought to you by Plebs for Plebs, which focuses

(00:08):
on the intersection of NOSTER and Bitcoin protocols.
Join QW and Avi as they run down the weekly news and developments, breaking down the current
thing and the future frontier with the foundation of decentralization, the builders, thinkers,
doers, and plebs.
All right, we are live.
Welcome gentle plebs to the lightning-laced airwaves. Today is Friday the 25th of July and it is episode 122 of Pleb Chain Radio.

(00:43):
It is 2.06pm on the east coast of the United States at the time of recording. We have a fun show ahead of you.
Kieran, the creator of Zap.Stream and Snot Social, a man who has been physically, not physically, but digitally under attack for the last couple of weeks.

(01:08):
He will talk about that and much, much more.
and a reminder folks if you are listening to this show on apple or spotify first of all thank you for
listening but i would urge you to hit pause and switch over to the fountain podcasting app where
you can earn some sats and support the value for value revolution as you listen and while you're

(01:32):
there if you can hit that subscribe button we would genuinely appreciate it that would unlock
exclusive bonus content for you.
This show is streamed live on zap.stream
and any other Nostra client that supports streaming
such as Amethyst and Nostur.

(01:54):
And QW, you've been paying attention
to Bitcoin and Nostra culture in the last week.
What have you witnessed?
Yeah, Avi, I, what?
Something interesting happened yesterday
and I didn't think it was really possible.
And I'm curious about your thoughts on it.
Did Starlink go down across the globe?

(02:17):
I thought it was like kind of a decentralized satellite system.
Did you see that?
I did see that.
I didn't dig into it.
I didn't either.
I mean, I guess my assumption would be just kind of like it's a fallback, you know.
Like if you're a Bitcoin miner, you have, oh, I'm on Starlink.
you know and I checked out their Twitter page their X page and most of what they're every

(02:42):
almost every post they say the you know you're reliable internet I just I wonder I mean I didn't
think you know it's one thing if it was a nation that went down like oh it's just down in the
states or the western hemisphere but it was like the whole globe that sounds decentralized Avi
decentralized?

(03:07):
I mean, even when you have that many satellites, it appears you can still go down.
And it really makes me think about anything, because essentially Nostra is a bunch of
satellites, right? A bunch of relays. I don't know if we can ever go down because we truly

(03:27):
are decentralized. But it's interesting in that standpoint. Assumptions are made, but then all of
a sudden the servers go offline and the globe does not have Starlink. So I thought that was an
interesting thing that happened. Another thing is you're at 80% of your funding, Avi, for episode
three of Finding Home. Do you want to talk about that? Yeah. So as I mentioned last week, I launched

(03:55):
a fundraiser on Angor,
which is a new protocol, really.
It's not a platform.
It's a protocol for fundraising,
self-custodial fundraising,
that uses Bitcoin Script and Noster.
It's still new and experimental.
And I had a chat with that team there.

(04:16):
They were super supportive
and want to support their mission.
In fact, we're going to have their CEO,
Dan Gershoni on the show in a month or so to talk about that.
But I did try them out.
And it's a six million sat raise that I'm trying to do for episode three.

(04:41):
And there have been some really generous donors who've come in.
They will, of course, get, as appropriate, the executive producer credit
or the associate producer credit based on what they've donated.
But yes, I am 80% there.
So for those listening, if you want me to get over the line

(05:01):
and film an amazing episode about food, travel, and finding home
in Asuncion, Paraguay this September, I would appreciate your support.
And have you dedicated any of these episodes to me, Avi?
Yet.
Not yet. Not yet.

(05:23):
Okay, soon, soon. The hopium is filling my heart.
Next up, let's see here. It is the 25th of July.
So that would mean in about six days, August 1st.
Well, maybe seven days. I don't know how many days.
But August 1st through 3rd, Lake Satoshi.
It's in Michigan. Get your camping gear.

(05:46):
You know what? This is a big circular economy event.
I've seen pictures, I've been in some of the chats that people are bringing meat from all over the region, vegetables, lots of trading.
This is my kind of event, Avi.
Lots of homesteaders, permacultures bringing all their creativity to camp out on the lake.

(06:08):
I'm curious if Rev Hoddle will have his generator maybe cooling his tent with his new invention, his ASIC cooler.
Curious about that.
But yeah, if I was in the area 100%, I would be going to Lake Satoshi, and it might be even an annual thing.

(06:29):
I'm actually going camping tomorrow, Avi.
I camp in the woods.
You camp under the bridges.
It's a little different, but you know what?
But home is where the heart is.
Sometimes you've got to find it.
That's right.
And oftentimes the heart is under a bridge.
So the sermon today, I've been thinking about this because this week has been a little funny.

(06:52):
I mean, it kind of channels, it's kind of chapter two of Noster is dead.
And I've seen some people that really just focus on stats so much.
They care about how many reactions they got, how many reactions they got this week versus,
you know, last month, you know, maybe they're not being heard. Maybe people are just scrolling
and they're just kind of busy right now. Maybe it's hot summer and they're vacationing or

(07:16):
maybe they're just really tired from a hot day. But the sermon is Nostra's truth beyond need.
And the question is, does Nostra need? No, Nostra doesn't need. Like Bitcoin, it's kin and spirit.
Noster is a tool, forged in freedom, tempered by resilience. It has already succeeded not by

(07:37):
chasing applause, but by existing as a beacon of what's possible. What remains is the froth of
human desires, bubbling up from our restless hearts. Some internally cry out, I want to profit
from Noster. Others lament openly, we need more people, or my voice isn't heard like it used to be.
The chorus repeats, more people, more marketing, more.

(07:59):
But let's be clear, NOSTER, this open, borderless, censorship-resistant, permissionless protocol, cares nothing for growth.
It stands indifferent in our cravings if it's we, the people of this network, who yearn, hunger, who demand for more.
But are we ready for more, Avi?
If a stampede of users flooded NOSTER tomorrow, would its foundation hold strong?

(08:21):
Is it truly built to last?
I don't have that answer.
My gut whispers, not yet. My heart asks, what's the rush?
Why this relentless push for a flood when the ground beneath us is still settling?
What I can say is this.
In the dawn of AI, in the shadow of the EU crackdowns on so-called hate speech,
in the rising tide of authoritarian Orwellian digital control,

(08:44):
we hold something extraordinary.
We have the decentralized tools, tools like Nostra that empower humanity,
that shield the basic rights of individuals to speak,
to think, to be.
For me, that's enough.
It's more than enough.
So let's pause.
Let us build, not chase.
Let us value what Noster already is,

(09:04):
a bastion of liberty,
not a vessel of our greed.
In the moment, in these moments,
in this moment,
these tools in our hands,
we have the power to protect what matters most,
and that is the truth worth standing for.
Thank you, Avi.
Well said, Kidabir.
I think there is this, yeah, there is a fatalism that seems to have set in, not amongst everyone, but I am hearing a somewhat rising chorus of that, which is like, as you said, oh, my posts aren't getting as many likes as they did last month or whatever it is.

(09:43):
and it is interesting to watch.
It does feel a bit like an Oster Bear Market, I will say,
but things are still being built, right?
People are experimenting with Vibe-coded apps,
most of which will end up in graveyards.
But let's just set that aside.
Maybe that's it.
People are tired of clicking Vibe-coded apps to try out.

(10:08):
I'm going to go play with an app that actually works for a little while
and I'll be back.
Oh, man. Now it's ebbs and flows. It's just like, you know, me and you, we've had some highs and lows. You know, it just, and sometimes life is really busy. So you're looking at, you're looking at Noster in a different perspective than you would if you were just a Saturday morning, coffee and chill, you know, so it's, emotions can always show when, you know, it seems dramatic at times. So I'm just a chill person. So I don't know.

(10:42):
Now, I have noticed our show numbers in the last month or so have gone down by about 10 or 20%.
Now, having said that, we're churning out two episodes a week.
That's what we've been doing with the bonus episodes that we're doing.
So on an episode-by-episode basis, our numbers are down by 10 or 20%.

(11:06):
But aggregate, they're actually up if you add up our monthly numbers.
But yeah, but that said, we'll see how it plays out.
I think patience is key here.
Paper Bitcoin summer can be distracting, Javi, you know,
and we haven't been talking about it enough, I suppose.

(11:26):
Well, but QW, speaking of something that is here to stay,
we have the creator of Zap.Stream, Kieran.
Welcome back to the show.
thank you glad to be back again after a long hiatus Yeah we were your first podcast appearance weren we

(11:49):
I think so, maybe.
Yeah, I remember you mentioned it during Odell asked you that.
Then Odell came back with, we're not a real podcast.
And I think that was probably one of the highest acclimates.
As a pleb, I felt like I could never get.
you know Avi we're just not it's not real you know we're not real so it's all good

(12:11):
so we have a burning question as we always do Kieran is Noster dead and if so what does it need
to be alive ah that's a good question I don't think it's dead but um but maybe I'm the wrong

(12:34):
person to ask because my head's always down you know I'm always just working on something
so I'm not I don't really have my you know finger on the pulse on how active Nostra users are I kind
of just like I see Nostra as something that's it's kind of like Bitcoin that it's like inevitable
in that is as long as we keep building I mean that's the most important thing because the idea

(12:59):
is still the same. So as long as we, you know, keep our heads down and keep working, then
eventually the people will come. Do you feel like the trend of the society or the globe,
I mean, all these different jurisdictions, you think the trend is we're going to need
more and more Nostra as the years go on? I think so. Maybe what people are feeling

(13:23):
is kind of this pullback from censorship on other platforms,
like, oh, the censorship stories are dying out,
so let's just go back to X or whatever.
And that's maybe what we're seeing is kind of a change in the news cycle, I guess.
So it's only a matter of time before more and more censorship stories come out

(13:47):
and people go to Noster and some will stick around,
some will stay around for a while and others will leave.
so we just have to wait and see i guess yeah what are your thoughts abhi you you feeling uh
you feeling bullish on free speech and on other platforms
well certainly not um i i also think position if you're talking about growing nosto

(14:15):
and this is the nice thing right everyone has a every nosto nosto enthusiast who wants to
spread the word has their own way of doing it i i just happen to think that the censorship resistant
pitch or the uh you own your own identity all of that's that's sort of stuff that that pitch

(14:38):
has a niche audience and maybe it will get a few people in who are interested in that sort of thing
But I think if you're looking at mass appeal, that line of thinking probably will fall flat.
But rather, it needs to shift to something like Nostra is the most fun place on the Internet.

(14:58):
Look at all of these really cool things you can do, such as live stream and earn money as you're doing it.
So that would be my way of growing Nostra.
Maybe we are going through a bit of a bear market right now.
in terms of user adoption.
But the people who are still here are having fun.

(15:20):
I'm still having fun.
So it's not too concerning to me.
But speaking of a lot of people using Zap.stream, Kieran,
a lot of people have been using Zap.stream
in the last two weeks.
Do you want to talk about that?
Yes, there's a...

(15:41):
Yeah, people are coming to Zap.stream.
They're trying it out.
It's definitely been growing, surprisingly, honestly, with all the issues we've been having, because a lot of people have been asking me, you know, when is it going to be back up so we can start streaming?
But yeah, it's kind of steadily growing.
I wouldn't say that there was like a massive explosion of people.

(16:02):
Again, I try to, you know, just keep working on things.
So I'm not I'm not too focused on numbers, to be honest.
I just like to build out this new platform that I'm trying to roll out.
And we'll talk about that a bit more in a bit.
But in terms of, you know, the current setup, yeah, it's slowly growing.

(16:23):
I guess I'm in the wrong time zone as well for a lot of people.
A lot of the streamers are US-based.
So sometimes I'll come back and I'll check, you know, when I wake up the next day.
And there's been like five or six different people streaming that I've never seen stream
because they're just in a different time zone.
Right. But you did have...
How does that feel?

(16:45):
Yeah, it's, I guess, I don't know. I don't really feel anything about it.
Some person just started streaming from Thailand or some person just started streaming from Zambodia.
I mean, you build something that's just used worldwide.
obviously we're always weighted to the states because it seems like that's just

(17:08):
maybe where all the the best internet uh and access is i don't know but uh yeah you you just
don't feel you don't feel anything huh i guess i definitely do feel something when someone new
starts streaming like if i'm if i'm online or i'm working on something i'll usually check out
their stream and say hi or whatever and ask them what they think about it that's always exciting

(17:31):
you know when you see someone new it's like oh where did they come from or like how do they find
the how do they find zappstream because we don't really we don't advertise really at all so it's
all kind of word of mouth or or something like that or people post from nostr but there's there's
sometimes people who like they're just new to nostr in general and they just start streaming
and it's like it's pretty cool what i mean is like after the fact when people have streamed i'm like

(17:54):
oh that's cool you know like i didn't get to see it myself so i don't get to experience it
Sometimes it makes you look in the mirror of what you built, you know, where you're kind of like, and I built this and people, you build it and they will come type of mentality and they actually start coming and people are actually building a monetization or maybe even a job on your permissionless marketplace there where your consumer and creator meet.

(18:25):
yeah definitely it's also it's also pretty cool to see you know other other people building
interoperable apps like that's that's always really exciting because
it kind of kind of gives more value to to what you've built i guess because
more people are excited about streaming and and those developers are exciting about excited about

(18:46):
adding it to their apps or even new brand new apps with different ideas you know that have
different ideas to Zapstream, but they're
kind of building on top of Zapstream
the streaming
backend that I've built.
Sorry, what were you talking
about before?
No, I was curious.

(19:08):
Yeah, before you cut me off and
talked about Zambodia, which is not a real
country.
Or was it Zanzibar?
There's Zambia
and there's Cambodia.
uh karen you recently had a denial of service attack a long-running one
on zap.stream what do you do you know why that happened what the motivation might have been

(19:33):
you say recently but it's actually still ongoing like even right now it's just been kind of mostly
mitigated for the time being um it's still right now i'm looking at the graphs and i have it open
and it's like 500 megabits per second still, like right now.

(19:54):
But yeah, it's been going on for almost two weeks now actually.
It's actually Friday.
Yeah, Friday, two weeks ago it started.
I don't think it's necessarily zap.stream.
A lot of people seem to think that it is related to zap.stream
but I don't think it is.
It seems to be more related to other projects that I'm working on
namely this VPS provider that I built.

(20:17):
they seem to be targeting that more specifically.
But obviously everything that I host
and everything that I run is on the same server
and the same network.
So they're all kind of susceptible to this attack.
But I don't really know who it is.
I can't really, I can't even make a guess
on who it might be.

(20:38):
And they're very, it's kind of a very long time
to attack one network.
Like two weeks is a very long time.
Normally, you know, you think about a week maximum.
and this has been two weeks now.
So they're very persistent and dedicated in this attack.
So there's nothing really I can do, of course,
because they're sending traffic to me

(20:59):
and I can't stop them.
And I guess the solution to that really
is to decentralize the backend, right?
And we'll get there,
and I think you're doing some work with NIP94 on that.
But maybe before we dive into that,

(21:21):
because that can get a little technical,
do you want to break down in simple terms
how zap.stream works today?
It's servers that you currently host, correct?
Yeah, so in the very beginning of zap.stream,
it was kind of like, you know,

(21:42):
just a perfect concept, really.
to see what kind of stream interactions would be like on Noster
because that's really what Zap.stream is.
It's just a link to a stream posted somewhere on a central server.
So in the beginning, there was no central server.
I just kind of built something.
And then you could basically post a link to your stream

(22:05):
on wherever you host it.
And then thinking more about it,
it's kind of a very technical thing to do
is to host your own stream.
So I decided to build this backend,
this centralized backend,
just to make it easier for people to stream on Zapstream.
So it's, you know, the same as any other streaming backend.

(22:28):
It just manages all of the Nostra side of things
and it hosts a stream for you.
So it just simplifies the flow,
kind of the same as you would expect
from a Twitch or from a YouTube.
So you just put in the stream key.
Whenever you start streaming,
your stream is available on the site.
So the backend kind of manages
all of the Noster publishing and all of that

(22:51):
just to make it easier for people.
Now, for a streaming server,
which you're running,
does it need a special kind of configuration
or can anyone host a streaming server?
Yeah, so it's all open source.

(23:12):
So I guess anyone, even the one that's live right now that we're streaming on, it's like anyone can run it.
Like there some documentation there but I trying to actually move away from the current system to a new system that more kind of customized to the specific needs of Zapstream
and for this kind of goal that I'm aiming for,

(23:34):
which is to kind of make Zapstream, you know,
like a marketplace of streaming providers.
So there won't really be one specific backend that you stream.
You don't stream to the Zapstream backend, although it will be an option.
there will be more hopefully others running these streaming backends in the same way that

(23:55):
that people run Nostra relays so that's kind of the goal that I'm trying to move towards for the
past like year is trying to build this custom streaming back end that can do everything all
in one and kind of make it really easy for people to run the streams on their own and then aside
Aside from that goal, there's another goal to make an even more decentralized version

(24:19):
of streaming that uses Blossom and Noster.
So this is kind of a completely new streaming idea.
It's not really like a well-known streaming protocol, let's say, but it is based on a
very well-known protocol called HLS, which is kind of the global standard for live streams.

(24:44):
So that's also in the works, and it's kind of in the same vein as the kind of server that I built, the custom server that I built.
So hopefully we can get even more decentralized than a marketplace of streaming providers.
So let's talk about the marketplace option for a second here.

(25:07):
That would potentially mitigate the type of attack that you're experiencing, right?
or at least the disruption that would come from that type of attack.
If there were multiple people hosting streaming backends
the way they host NOST relays,
then someone who's streaming can choose which backend

(25:30):
they're pointing their stream key towards.
And they should be good.
For example, if your VPS, which is being attacked,
takes the streams on ZapDone, StreamDone,
and they point to the next provider or the one that's available.
And then in that scenario, if the DOS attacker wants to take all NOSTA streaming down,

(25:52):
they would have to attack every single one of those providers, correct?
Yeah. So basically, the idea is for anyone to be able to run zap.stream, the backend,
as you might run a relay. So it is actually working already.
They have one person who's running the Zapstream backend on their own server.

(26:14):
So it's kind of like, you know, they have their own Zapstream to stream on.
And then, again, like you said, if somebody wants to take down Zap.stream and all the streams,
they would have to, like, denial of servers attack every single backend, which is a lot harder.
Because right now, Zap.stream backend is on one server.
and so as a provider i would say if i spun up a back end zap.stream back end myself when you do

(26:44):
when you do yeah uh would i i'd be able to accept streams from anyone right or would it just be
my own stream that would go through that yeah so it's it's the whole zap.stream so like anyone
can use it. You can share the streaming server with your friends if you wish. And you can also

(27:05):
accept payments. So it's like the full, everything that we have right now in this app stream backend
is basically, you can have the same thing of like your own copy of that. So you get like all of the
accounting and, you know, people can, you can set your own rates. Like, so if you want your streaming
server to be really expensive or really cheap, you can do that and you can configure, you know,

(27:28):
all of the different settings for what type of streams you want
or, you know, who has access to it.
It's all configurable.
So today, when something's streaming on Zap.stream,
and let's pick a Nostra client that shows this,
so Nostra, I believe Amethyst does too,
but I'm an iPhone user, so I'm familiar with Nostra.

(27:52):
I go into Nostra and I can see the streams on top
and I can click them, right?
and that's because they're going through the existing Zapdos stream backend
that you're hosting.
When there are multiple providers in this marketplace
all offering slightly different services for different costs
and someone goes through one of those other providers,

(28:15):
would Nostar, the iOS app, be able to pick up those streams
that are not going through your backend?
Yeah, exactly.
Well, in Nostor, they don't technically connect to zap.stream explicitly.
Anyone can self-host their own stream right now, and it will show in Nostor.

(28:38):
All that they're doing is they're reading the Nostor events that point to the stream.
So in that Nostor event, you can point to any server you like, basically.
So Nostor is just reading the live streaming event from Nostor,
and then they're getting the link to the stream
and then they play the stream.
But that can be hosted anywhere.
So if somebody else has their own streaming backend,

(29:02):
then it'll also show in all of the existing apps
because they're only reading the Nostra event part of it.
And so, because I only see, and Avi, I'm sure you're the same,
but if I open up Nostra, I'm only going to see if, you know,
Plebchain Radio, because I follow Plebchain Radio,
is streaming.

(29:24):
So is that kind of what happens
is your blockchain radio account
streams to Nostor
and because you're following it,
you're picking it up
from whatever relay that would be
as far as the connection goes
and you have that stream URL
that you can open up?

(29:44):
I'm not sure how Nostor works,
but it should be,
you know, maybe they only do it by follows.
I think on Snort,
But we also, we show, I think actually we show all live streams, even from people you don't follow.
But I'm not sure how Nostro works.
But is that with NIP 53?

(30:04):
Yeah, NIP 53 is the spec.
Okay.
So for the less technical folks, can you explain how NIP 53 works?
Yeah, so NIP 53 is this replaceable event kind, which means that it can be updated, essentially.
and it kind of just lists, you know, a HLS URL,

(30:26):
which is, like I said earlier,
it's kind of the global standard for live streaming
over, you know, over web,
it was supported natively in iOS,
and on Android it's supported in their player.
But yeah, pretty much it's just like a regular Nostra event.
It has the title and the thumbnail,
and it can store how many viewers the stream has.

(30:48):
It has the link to the stream,
and it has the status of the stream about if it's live, if it's ended or if it's planned.
And then in terms of the chat and the kind of interaction,
there's a different kind of event for chat, for live chat.
And that just links to the stream event.
So whenever you're writing a chat message, you know, you tag the stream event in your reply

(31:12):
and then clients can see all of the replies for that stream when they open, they pull up the stream.
and the same goes for zaps of course so zaps are also tagged onto the stream event
the same way that chat messages are and there are there are a few other interaction types like raids
which are kind of a feature that was taken from from twitch and there are some other ones like

(31:36):
timeouts and things like that that are a bit newer but yeah they're all on Noster so the only thing
that's not on Noster for these live streams is the actual video feed. And that's kind of what
we're trying to do with the super decentralized Zap stream, which is using Blossom. So in that
version, you know, it's fully distributed and you get redundant, you know, streams that you would

(32:04):
otherwise not have because you're using like one specific centralized server. But again,
And that's a lot more complicated than, you know, the standard HLS scheme of things.
Are you looking forward to taking away some of that liability when you can decentralize it away from yourself?

(32:25):
Yeah, definitely.
When I first built this, I actually, I really didn't want to go down the road of hosting streams, like for that exact reason.
so I kind of delayed building a system for for quite a while because well basically I wanted to
see if if people were willing to host their own streams so I was kind of waiting to see if if

(32:46):
people would you know start using it but with their own streaming server so like I was streaming
on it with my own stream um but like there were there was nobody else you know that would even
attempt it because it's kind of complicated to run a streaming server.
And yeah, so I'm trying to, you know, take away the responsibility of

(33:08):
kind of moderating this content by
essentially allowing anyone to host their stream anywhere, or at least anywhere on Blossom and
Noster. So that kind of distributes it and makes it more resilient and, you know, I don't have to
deal with the the dmca requests so i'm curious about our friends scardust the metal band they

(33:36):
were running a 24 7 live stream and i think what the the initial calculation they had to do was if
they ran it through your back end karen right they'd have to for a 24 7 live stream would be
it worked out a few hundred dollars a month in streaming costs but they were able to find
a solution where they were hosting their own stream is that is that right how did their

(34:01):
solution work is it the same provider we'll get to the blossom solution in a second but
this provider-based thing that you were talking about so i don't think it's a hundred dollars
maybe it's well maybe because the price changed because i i set the prices in sats so maybe
maybe it's changed but last time I remember it was something around 30 dollars for like a 24-7

(34:23):
stream per month um but um but we also recently made this um this other plan it's I call it a plan
but it's like it's kind of like a configuration in the streaming server that specifies what kind of
what kind of qualities that it outputs and how much resources that it it uses on the server

(34:46):
So we have this plan called the basic plan,
which used to be, I think, around one sat per minute
or something like that, or maybe half a sat per minute. But I changed it to be
free. So anyone can stream on Zap.Stream right now
on the basic plan for free And what the basic plan is is it basically it doesn transcode the stream which means it doesn convert the stream quality or do any processing on the video feed that you send to the server

(35:16):
so all the server is really doing is kind of shuffling the data around it's not really doing
any heavy computation like transcoding which is converting the video to you know different
qualities so that viewers can can view it at different you know internet speeds essentially
so if you have like a slower internet speed then maybe you can't watch like the full hd version you

(35:41):
You have to watch the lower resolution quality,
and that's what the server does.
It basically converts it down into multiple resolutions
so that multiple people can watch it at different rates.
So they're using the basic rate,
which is how they got around this fee,
which is they're streaming for free on the basic rate.

(36:04):
And so is, I believe, Node Runners Radio.
That's also on the basic rate, I believe.
right
it's just so affordable
Avi for me and you
ever since we started using
Zap.Stream
every week we're kind of like hey what's our balance

(36:26):
at what's our balance at
oh we got another 10 hours
we started with 10,000 sats
and we're still like
we can't milk this thing Avi
maybe we should switch to basics
it is actually
you're gonna keep your sets then we need the best video quality for our

(36:47):
blockchain radio logo that's it no compromises it actually it does it does play a lot better as well
um when it's transcoded because uh it it starts faster um so whenever you you play the stream
it starts playing immediately on on the lower quality just so that you can
immediately start playing but if you're on the the basic rate and you're uploading like a 10

(37:09):
1080p stream, people who want to watch that stream, they have to download the 1080p stream
right away. So it actually takes longer to start playing if you use the basic rate. So
the playback experience is not as good. So there is an argument to use the paid rates.
But in general, it is very cheap. You won't get streaming. If you pay for streaming on,

(37:34):
I believe Cloudflare, it's cheaper than, might be cheaper than Cloudflare.
It's probably cheaper than some of the other generic streaming solutions.
So it's definitely very cheap.
And that's all to kind of incentivize people to use it
because people don't want to let go of their sats, clearly.
Well, and you have to hold on to them, right?

(37:54):
Don't you become a custodian in a way when you have our balance?
And, you know, there's that, did I back up the server?
uh do you want to talk about that a little bit yeah we did have one one time where we had a
you know catastrophic failure and we kind of messed up all the balances unfortunately um

(38:19):
yeah i don't know what else to say but the balances were all kind of reset or they were
reset to a different time when the backup was taken so that is unfortunate but now there is
many backups in place. So hopefully that will not happen again.
Yeah, that's, I mean, it's gotta be just

(38:40):
discouraging because, you know, your heart is in this project, you're trying to
build it forward. And when you become, you know,
somewhat a custodian of credits,
there's that, again, the liability of it all. And you really want
to make people happy. And I think

(39:01):
for the most part, because of who we are as a community, it's something where it's understandable
and we're not putting our life savings in there, obviously. So it's one of those things where we
kind of mitigate risk just as plebs and individuals. But if something, you know, if that were to
happen, and maybe it is a blessing that it happened now, rather than in, you know, let's say a year's

(39:27):
time and everybody and their brothers streaming on that, that would be quite the event.
That would be bad. Yeah. As well as that, we used to have a withdrawal function,
which is not the greatest idea because then you kind of really are a custodian
when it becomes kind of like a balance. So I had to remove that. But the idea of having a

(39:52):
withdrawal in that case was people could come to Zapstream and they could actually start streaming
right away and they could receive Zap straight away. So even if they're not really, even if they
didn't have their own Lightning wallet yet, they could actually stream on Zapstream and receive
Zaps and withdraw the Sats from their streaming. So it's kind of like a, to smoothen out the on-ramp,

(40:16):
but obviously that doesn't really work when you have, you know, lawyers involved or whatever.
yeah lawyers ruin everything unfortunately i know i was hoping to use zap.stream as my hot wallet
you know just uh keep keep the transactions going in and out keep a couple of bitcoin

(40:37):
if you could get your balance like really high and then we'll have another catastrophic failure
and boat accidents you know a lot i have a coin os event
so let's talk about this new approach uh the the the super decentralized
one is that where nip 94 comes into play yeah so it's actually a new nip um but it does use

(41:05):
nip 94 um so the new nip it's still a proposal it's called um 5e which is like 53 so in the nips
repo they allow letters now for some reason so I just picked 5e just so it's kind of related
because it does share a lot of things with nip 53 although it is you know a completely different

(41:28):
technology so it's not really compatible although there are ways to make it compatible which I can
get into but essentially what it is is it's like I took what I built for the new kind of
market-placed Zapstream backends. And I, because I built so much like infrastructure code to

(41:49):
handle processing streams. So in this backend, it's like completely built from scratch
in Rust. And I get to, you know, I can, I'm able to configure the pipeline as it's called,
however I like. So if I want to take recordings, take clips, do whatever I want with the media,
I can do that because I have full control over this transcoding pipeline,

(42:14):
which basically is the process of converting it into multiple resolutions.
And so I took this system that I built and I took, you know,
I took the output of this system and I'm like,
why can't I just, you know, put this on Blossom server?
So then I'm not even, I don't even need to host it, you know?
Like you get public NOSTA relays and you get public Blossom servers,

(42:37):
although you can pay for both, of course.
But the idea is basically that you can run this on your own machine without a server and you can stream to Nostr without, you know, having your own public server.
Which I thought was like a really cool thing on its own without, you know, all the added benefits of being decentralized.

(42:58):
Now, there are some, you know, downsides to this.
Of course, it's completely new system design.
Nobody is able to even play these streams because it's not a common playback thing.
It's all based on NOSTER.
So how it works is it works similar to NIP53.
You start with a stream event, which is what we have in NIP53.

(43:21):
And then we also have these NIP-94 events, which NIP-94 is this other specification for essentially listing file metadata on Noster.
So you can list the name of a file, the hash of a file, and a link to that file.
So that's the idea of NIP-94.
So I took this idea of having NIP94 segments, which is, you know, a segment is essentially just a little two-second clip of the live stream.

(43:52):
So that's kind of how HLS works, is you take the live stream and you cut it into, you know, very small segments.
So you've got like two-second video clips.
That's what you're actually watching.
And it kind of, in the player, just joins them all together.
So it looks like a constant stream.
but it's actually a bunch of tinier two-second clips that they join together.

(44:14):
So I took those two-second clips and I upload them to Blossom servers
and then I post an event on Noster, which is a link to this segment, to this file.
So essentially what you get is, if you're watching this NIP5e stream,
you're interacting with the stream event

(44:37):
with the chat and with the zaps
but also you're interacting with it with the segments
so instead of receiving only the chat events
and the zap events
you also receive the segment events
and those segment events
they have the link to the segment files on Blossom servers

(44:59):
So essentially, you replace this centralized point that you need for HLS to work with Noster metadata, which points to the Blossom segments.
And then the rest of the player system is the same, essentially.

(45:20):
You listen for these video clip segments of the live stream, and the player just joins them together.
the only problem with that is it's it's not hls so you need to basically build a player
unfortunately which is the the major downside but the the biggest benefit of this of course is
you don't need a central server you just need maybe you have like three or four blossom servers

(45:44):
already or there are free ones you just use those and you run this thing on your computer which
is called N94, is what I've called the demo.
And you just stream to your N94 program,
and then it'll do all of the splitting and everything
in the same way that you would get
with a centralized version of the Zapstream backend.

(46:08):
And it runs all from your own machine
using only Noster and Blossom.
So Kieran, walk us through a simple example
for someone looking to stream, right?
So let's say us, Plep Chain Radio,
and Zap.stream is, let's say,
still going through your denial of service attack
and QW and I really want to stream our episode live

(46:31):
and let's say this is available.
Walk us through that scenario
or on how we do it
and how the people who want to listen to our show
will be able to access it.
Yeah, so it is already working.
I mean, I have, it's supported on,
the player side of things is supported on Zap.stream,
the website.

(46:52):
not the app.
So it only works on the web right now.
Hopefully we can extend support to the Zapstream app
and to Amethyst and to the other players.
But basically, I have this, it's basically
like a program that you run on your computer
that starts up a streaming server, essentially.
And then instead of putting your stream URL as zap.stream,

(47:16):
you put in localhost, which essentially means my computer.
So you're basically streaming to your own computer,
to this other program that kind of handles all of the splitting
of the stream and uploading and all of that.
So you can run it all on your own computer
with any of the Blossom servers,
and it'll publish the Nostra events,

(47:39):
and it will upload the Blossom files,
and it even deletes the Blossom files after.
So say you didn't want to keep your stream around forever
and you only wanted it to be available when it's live,
As soon as the segments expire, it'll just delete them from your Blossom servers.
So you don't even need a lot of Blossom.

(48:00):
You don't even need a lot of storage.
You only need as much storage as maybe 60 seconds of video segments.
And that's the way it's currently working.
So you would run this N94 program on your machine,
and then you would set your streaming, whatever you're using to stream the video, say OBS.
you would set your server URL to your local machine

(48:22):
and then it would handle everything else pretty much.
What about the key?
So we set it in Riverside.
We record the show on Riverside
and we put in the stream URL and the stream key.
Would the concept of a key even exist
because you're streaming to a local machine,
to your local host?
Yeah, so if you're using something like Riverside,

(48:45):
you wouldn't be able to stream to your local machine essentially
because Riverside's server is on the internet somewhere
and they can't send the video stream back to your machine essentially.
So it's more for, of course you could run it on a public server,
that's fine as well.
So say you actually wanted to use this system

(49:07):
but you needed to be accessible to Riverside,
then you could run it on a server somewhere
and it would just process the stream for you
and upload it to Blossom servers.
But it's completely invisible to the viewer
because it's not actually serving the stream directly.
It's kind of just processing the video

(49:27):
and uploading it somewhere else.
So it doesn't actually,
it wouldn't be visible to the public, I'd say.
Got it.
So I could create a droplet or something on DigitalOcean,
or any one of those VPS providers,
and run N94 in there
and then just get the stream key from that
and use that for Riverside.

(49:48):
Okay, so that makes sense.
I can't use Riverside for my local machine.
I'd have to get closer to the bare metal,
probably with OBS or something like that.
That understood there.
Now, what about the viewers or the listeners?
Where would they find the stream?
Yeah, so NIP 5e has its own event kind.

(50:10):
It is very similar to NIP 53.
It's just that the streaming feed is completely different,
so it can't really reuse the same kind.
But there are ways to actually create a bridge as well.
So a bridge would basically publish a NIP 53 event,
and then it would use a kind of proxy to create the HLS playlist,

(50:35):
which I've already built as well.
so you can basically have the best of both worlds in a way
like you can have your N94 stream
and you can have people who use the Nostra native way of pulling the stream down
or you can have clients that still support N53
but they rely on this other proxy to create the playlist for them

(50:57):
so that's the missing piece
because they're expecting a HLS playlist to be able to play this stream
And that's obviously not how the NIP5e system works, where the segments are stored in Nostra events.
So the playlist, it literally is just like a file with a bunch of links into the individual segments.

(51:21):
And that's how the players kind of pull down the video feed.
So they will keep repeatedly reloading this playlist and looking for new segments for them to kind of continue the live stream on.
So I built, it's called an N94 bridge.
And it basically listens for these NOSRA events and it reconstructs the HLS playlist.

(51:45):
So there will be some backwards compatibility with this layer in the middle.
so all that this bridge really does though
is it just creates a file
that points to all of the Blossom segments
so it doesn't actually serve the stream
or anything like that
it just kind of creates this playlist in the middle
for you to play it in your NIP 53 clients

(52:06):
I've only recently completed this
so I have to do a proper test
with this bridge in place
but the idea is for that of course
to make it much easier
for people to use this N94 system
while some clients may not support NIP5e.
So that sounds to me like, Kieran,

(52:30):
initially they can still go to Zap.Stream
and all this reconstruction and the bridging
and all of that that you're talking about
will be happening behind the scenes in Zap.Stream.
The user, who all they care about
is being able to listen to the stream or watch the stream,
they're going to go to Zap.Stream.
it'll be available to them, they'll click on it
so it'll pretty much be the same thing

(52:51):
from a consumer
experience standpoint, is that fair?
Yeah
with the bridge, yeah, like it will
appear in Amethyst
even though it is like a
NIT5E stream
and on zap.stream the website we do support
the new spec as well
so it actually can play
the stream as it was

(53:13):
designed let's say
it'll actually listen for the Nostra events
and it will download the Blossom segments itself
obviously the benefit of that is
if you're using the bridge you won't actually be able to get any
censorship resistance of the actual segment files
because you're relying on
the playlist, it has to only have one link

(53:36):
like you can't have multiple
links, say you were uploading to three Blossom servers
you couldn't have like three Blossom links in a HLS playlist.
So say you were getting censored by some Blossom server,
the bridge wouldn't basically serve you a link to a dead link

(53:56):
because it doesn't know if a file has been deleted or not or whatever.
But with the native player you can detect failures.
So if you try to download one of the segments and you get a 404,
then you can just try one of the other Blossom servers
that the streamer has in their Blossom server list.

(54:18):
So that's where you get the censorship resistance part of this
where you can upload to three Blossom servers
or whatever you want
and the player can automatically fail over
to one of the other servers automatically.
But if you're relying on the zap.stream bridge
then we're kind of back to square one
because if you get a denial of service attack

(54:40):
then your bridge is under attack too and it'll be down.
Yeah, I mean anyone can run a bridge though.
So like again it's open source so anyone can run this N94 bridge
which is, you know, it's in the same repository as the N94 program
and it's also in the same repository as the new kind of centralized version

(55:01):
of the streaming system called just ZapStream Core is what I'm calling it.
So we have been using ZapStream Core for about a month
So it works great.
And I'm hoping that we can eventually migrate the current system
onto this new ZapStream core system
because it has a lot more flexibility and features
and performance in general.

(55:24):
By the way, Kiran, I know we've been sort of asking you questions
to tease this out, and I haven't, or QW for that matter,
we've not got the chance to pause and say,
this is incredible.
by the way, Kieran, what's coming, right?
The fact that you put this much thought
and frankly this much ingenuity

(55:45):
into solving this incredibly difficult problem
and all the constraints that you talk about,
the HLS constraint, transcoding, and all of that.
That's, yeah, I got to say,
the fact that you've taken on this endeavor
and have come this far on it is remarkable.

(56:06):
Thanks. It's been a long journey. I'll tell you that much. It's not easy doing this.
Would this be possible without Nostr?
not really because you need the you need the nostre events in order to distribute the

(56:28):
the links to all the segments and there isn't really any other
kind of decentralized document graph is what i like to call it um that is you know compatible
with this approach you can't you can't really just you can't post something on the internet
let's say but of course we're talking about Noster

(56:49):
Noster relays
and have it be
available and secure
from tampering and
signed so
there isn't really any other way to
to take this
same approach on say
you know Twitter or whatever
PubKey
haven't you heard that's the future

(57:11):
I haven't
I haven't actually looked at that so I have no
comment there
oh we won get into that uh no but i when i was listening to you it kind of like brought me back to um when you talking kind of about dissecting the decentralization and

(57:31):
and spreading this all around essentially um it it it really i turned into a student and i thought
about when i first got into nostr and i started thinking about these relays and just how revolutionized
this would be revolutionizing.
But when you started talking about decentralizing the streaming

(57:52):
and having kind of this sovereign model,
and DDoS attacks obviously is a big, big problem,
but ways to mitigate it with just by spreading everything out.
I mean, it just really, I had kind of the same feeling
that I did when I first joined Nostr.
And, you know, when we talk about Nostr's dad

(58:13):
or Nostra's, you know, there's no one using it.
Nostra doesn't care.
The tools are here.
They're available for people that want to actually solve problems.
And it just works.
So I was really happy to hear you talk about that.
And I even texted Avi while you were talking.
I'm like, man, this is actually,
I'm really glad we had this conversation

(58:35):
because people don't talk about the back end enough.
And that's, it's beautiful to hear.
and I'm looking forward for Avi to run a self-hosted server
that I can put all my JPEGs on.
By the way, Kieran, I guess the natural next question is when, right?

(58:59):
When, when what?
When can we start using this?
Today.
Is it fully up and running, backwards compatible with NIP53?
The backwards compatible part has not been fully tested. You can just stream with only the NIP5e part, but it only will play back on zap.stream, the website. So that part has been tested. I've done a couple of streams so far using this N94 program.

(59:34):
So it seems to work well. You just have to be careful about which Blossom servers that you use because there is a time constraint there about uploading segments.
The program tries to manage the uploads as best as it can, because Sunblossom server takes too long.

(59:58):
Because this is real-time data, it has to upload the file and be available as soon as possible.
And not all Blossom servers do that.
And also, Sunblossom servers don't allow uploading whatever you like.
So you have to pick your Blossom servers, I guess.
or make your own man
that's how we roll right

(01:00:19):
yeah you can definitely
fully sovereign
I mean I am using
when I was running it I actually only used
Noster Download which is the
the Blossom server that I run
because it kind of
seemed to be the most responsive
to me because I tried to use
Blossom

(01:00:39):
Band and I tried to use
Primal's Blossom server
and I think there sometimes there would be like a delay when using I believe it was Blossom
Band or maybe it was a Primal Blossom server and that would kind of that's what made me you know
fix the problem and try to to manage this and these upload delays so essentially if you're

(01:01:02):
if you're using a Blossom server and it's not responding then it will just get disabled and it
will it'll stop uploading to that server so you can give it like 10 servers and it will
So it'll essentially pick three, let's say, and it will just use those.
And if some of those start to fail, then it will switch to another one.
And it'll essentially try to keep the stream running by picking the most available servers.

(01:01:26):
So if someone wants to try this, and I might give it a whirl as well here, Kieran,
but they just go to the repo.
Do they have to build from source or is there a fully packaged app that they can download and install?
Yeah, you have to build it right now.
It's actually very easy, though, because if you just install the Rust compiler, there's like a one-line command to install it, pretty much.

(01:01:49):
So it is very easy once you have the Rust tools installed.
And there is some documentation on the repository on how to run it and how to configure it and all the different options on which Blossom servers to use.
And, you know, there are many options that you can tweak, essentially, to get the best performance for out of it.
but presumably

(01:02:11):
over time
there will be a package that can be
installed more simply
for non-technical streamers
yeah of course I think
eventually there will be some kind of a
GUI app like a GUI
that goes with it, right now it's just
like a command line tool essentially
so you have to run it from the terminal

(01:02:31):
got it
what is the latency by the way
in your testing because it sounds like
The way you're describing it, there are these fragments or segments that need to be put together and assembled and what have you.
That sounds like it's potentially introducing a few seconds of delay.
Have you seen that?

(01:02:52):
It's pretty much exactly like HLS.
It's actually some, it depends.
There are many different features in HLS that you can use to improve latency.
but if you just take HLS
without all of the other advanced features
then it's about the same as that.
So it is around, you know,

(01:03:12):
you always want to have a certain amount of buffer.
You always want to be like a few seconds
away from the live point
because buffering and loading
and those things take time
so it's usually better to be
like 10 seconds away from the live time.
which I think is what

(01:03:33):
Zap.Stream is today
even
yeah because Zap.Stream just uses the basic
HLS it doesn't use any of the
the low latency HLS
although that is supported
let me just
mention that low latency HLS should
be supported in the Zap.Stream core
which is kind of the self-hosted
Zap.Stream backend

(01:03:54):
so that will be available
in the future if you want
if you want lower latency streams.
But for the NIP5E streams,
you probably want to have more delay
just because you have to upload the segments,
you have to replicate the segments.
It is a more...

(01:04:15):
You are limited to how short the segments can be
because of the processing that goes on.
When you have your own streaming server
and you're just writing a file to the disk,
obviously there's hardly any delay
with processing the individual segments
so they can be much shorter
if you have your centralized version.

(01:04:38):
So if I wanted to be a truly sovereign streamer
then I would switch to OBS from Riverside
run my own Blossom server
run or build N94
and I'm basically off to the races at that point, right?
I can stream on OBS.

(01:05:01):
And in that scenario, I just need my Blossom server
because it's mine.
I wouldn't need to select three or four, right?
Maybe I could for redundancy if I really wanted to.
And then anyone, it would show up on Amethyst or Nostra
or even on Zap.stream.
If people went there, they'd be able to see my stream.
Is that fair?

(01:05:21):
Yeah, you could even run a relay. So you could run a relay, a Blossom server, and then you would just publish your stream only to those relays or to multiple relays or to multiple Blossom servers. It's really up to you. But if you're running your own Blossom server and your own relay, then you might as well just run the Zapstream backend and have a centralized thing, unless you want to redistribute it or make it more kind of censorship resistant.

(01:05:47):
So let's talk about cost.
So today, right, we use Zap.Stream and we pay whatever sats per minute,
whatever the cost is, right?
And it's day minimus, by the way, for our streams.
If I wanted to do it this fully self-sovereign way,
my only cost in that scenario, again, we'd have to go through Riverside, right?

(01:06:10):
The OBS was just an example I used.
If we're doing it through Riverside,
we'd have to spin up some kind of, you know,
VPS or whatever where we're hosting the N94 program.
So we'd have to pay whatever cost per month on that.
And then I guess that's it, right?

(01:06:33):
Or would we have to pay for anything else beyond that?
Not really, yeah.
Like most of the Blossom servers are free,
so you don't really have to pay for Blossom
or for Nostro Relays.
So that part is free.
You only have the cost of transcoding the stream
and uploading it to those Blossom servers.
So there's a certain amount of resources needed

(01:06:55):
to process the stream in real time.
There's a question from the audience, HZRD.
I'm imagining that's Hazard149.
How does replaying the streams work?
does the client just replay all the events and get the chunks yeah so the way the way that it

(01:07:18):
works now is like the way the n94 works right now is that's not an option because we want to clean
up the files on the blossom servers we don't want to have like 10 000 you know video files stored on
your blossom server although it could work like that um so if you wanted to have like a fully
recorded stream available on Blossom, then yes, you would have to load all of the N94

(01:07:42):
events to get all of the links to all of the segments So that why I said you want to have a longer segment time just because of that reason as well You don want to have 10 segments because then you have 10 NOSTER events
You want to have much longer segments so you have fewer of them.

(01:08:03):
And that will obviously be a lot easier to load off NOSTER relays.
that is configurable though in the N94 program
so you can specify how long the segments are
so if you plan on recording it or leaving the segments uploaded on Blossom
then you can set like a 10 second segment size

(01:08:27):
or 20 seconds or whatever
yeah and his reply, cool, so the chunks are optimized for live streaming
then the recorded video would be uploaded later.
You could also do that, yeah.
That's how we do it with NIMP 53.
There's a separate tag for recordings.
You could just do that.

(01:08:47):
I mean, recording is actually supported in N94 as well
because it's essentially, it is the Zapstream core system,
but it's kind of repurposed for this specific use case.
So it does support recording.
so you could have like a
one file that you have at the very end
this isn't how it works right now

(01:09:08):
but you could have it record
your live stream as well into a single file
and then just upload that at the end
and then tag that onto the
on the end
of the stream to say like here's the recording
of the whole thing in one file
by the way
I might be mistaken here
QW, maybe Karen you know this

(01:09:30):
but the person who's asked the questions hazard 149 isn't that the inventor of blossom
yeah he he is the one who created the blossom spec yeah yeah good stuff you gotta love when
you invent something and you're not sure what people do with it after that yeah well that's uh

(01:09:51):
we'll see what uh zap.stream core uh is something someone's going to do with that in about a year's
time so speaking of that uh nostre net when nostre nest core uh have you been working on
nostre nest lately any status uh this sounds like it's the zap dot stream is definitely the passion

(01:10:12):
project and it's exciting so i can understand why time becomes the scarcity but uh you want to talk
about nostre nest yeah i i haven't done really anything on nostre nest in a long time um abandoned
Abandonware, Avi. Abandonware.
I'm still available if there's some work to do.
I just haven't been asked to do anything.

(01:10:33):
So there was one point in the beginning of developing ZapStream Core
where I wanted to kind of build something also for NostraNest.
But the way that the development went with ZapStream Core
is I got stuck for a long time with various issues

(01:10:54):
trying to do the transcoding because it's really complicated.
And then that also got left on the side.
But essentially what I was building there was the Noster Nests,
it uses what's called LiveKit, which is like an open source,
kind of like an open source Riverside, I guess.
It actually, yeah, it's very similar to Riverside.

(01:11:18):
But they have this system called an egress,
which lets you essentially take an audio feed or a video feed out of the meeting.
In the same way that exactly what Riverside does,
it lets you put in a streaming server and it will essentially stream the group call
to a regular live streaming server.

(01:11:39):
So LiveKit also has this feature.
But in order to get an audio-only stream,
you have to use, it basically emulates a browser.
So it uses like three gigabytes of RAM and it's very resource intensive.
And I was trying to build essentially like a very lightweight audio only HLS, you know, thing so that you could get an audio.

(01:12:04):
You get audio stream from every single Nostra Nests room that would be posted to Zapstream, you know, as NIP53 events.
so people could listen to the stream without a video
and just have like a lightweight audio stream only on Zap.Stream.
But that's still, you know, on the side and needs work.

(01:12:28):
And that used to be the case, right?
I remember when we used to use Nostanas,
we used to check the box that says stream to Zap.Stream.
Yeah, that's the egress thing I'm mentioning.
So essentially it runs this egress process and it uses like a, it emulates a browser.

(01:12:49):
It is a browser essentially.
It spins up a browser in the background and essentially screen captures the browser and then sends that to Zapstream.
But there was no egress presumably?
No, it's just really like really heavy process.
so I was trying to build something more lightweight

(01:13:11):
where you could get only audio.
Because I guess it didn't work that well,
as far as I remember, from Noster Nests.
It did not.
Yeah.
It was hit or miss.
That's what we found.
There would be some episodes that made it
and some that didn't.
Yeah, that's the egress.
I mean, I can't really say more on it than that.

(01:13:34):
It's a very heavyweight process,
so I guess maybe server resources were limited
or something like that.
Have no fear, Derek Ross will vibe it back to existence.
Absolutely.
I think they also switched to a new event kind on NosterNest,
so it's already been semi-vibed, some of it, at this point.

(01:14:01):
Hopefully it works vibed one day, so we'll see.
You know what? It is what it is, though.
I mean, if I want to go out and chat, if I want to have a little meeting, I'm going to Nostra Nest.
You know, we were kind of hacking it in a way.
We were trying to squeeze, you know, lemon juice out of an orange.
And that's kind of what we've always done, huh, Avi?

(01:14:23):
MacGyver it, man. That's what we do.
Yeah, that's it.
So on that same kind of what else, what's happening to snort?
that was your first Nostra baby correct
yes Snort has
Snort has had a few
small updates
it has been renamed to Phoenix

(01:14:44):
Social
after all these two years
of being called Snort
I decided to rename it
I've always thought about renaming it
I just couldn't really
come up with a name, a nice name
or have like a good domain name
so it's now called Phoenix.social
that's an homage to my hometown right of course yeah i figured i always have you in the back of my

(01:15:11):
mind so well my son's named after a castle in ireland so right back at you buddy
but in terms of updates i guess um there has been only i did add nosturness support to snort
a couple of months ago, I guess it was.

(01:15:31):
So that is new.
And then aside from that, I added the follow packs
and I think I added the, you know, the,
like, I don't know what the NIP number is,
but it's the picture feeds, Olaz feeds.
Yeah, that's supported as well in Snort,

(01:15:52):
as well as shorts, I believe.
So there's a bunch of new kinds supported, but I don't think anyone uses them.
So I don't know.
What are the shorts?
What is the shorts kind?
NIP 71 or 2, I think.
It's, yeah, it's kind number 22, I guess, or 20, yeah, 22.

(01:16:15):
So the picture feeds are kind 20, I believe.
and the video like the normal portrait video kind is kind 20 and then the short kind is 21
we also support those kinds on zap.stream and snort and another another app that i built which is

(01:16:37):
free flow which is essentially a tiktok clone which does only short videos in portrait
that is also needing a lot of work now that i'm reminded of it
free flow how come we never heard of this qw
i don't know i he he's reminding himself of it too so that's yeah yeah how is it working on so

(01:17:07):
many projects that you you forget about some i i definitely forget about a lot of them
uh free flow yeah it was uh it was before i i i built the zapstream app so there is like a
there's a zapstream native app that you can get on android and ios so it's it's completely

(01:17:29):
different than the website the zap.stream website it's completely separate code base
and before I built that I was building FreeFlow
which is a Flutter app
which is the same as the Zapstream app
and it's essentially just a short video client
where you can scroll up and down

(01:17:51):
in the same way that you would on TikTok
or YouTube Shorts
or any of the other Shorts platforms
and you can post there
So you can post your short videos there.
And there's a little bit of editing built into it,
so you can kind of clip videos together.
And I don think anyone uses it but it there It needs more work But in terms of using it to watch short videos I mean it works pretty well So let me ask you a question

(01:18:24):
Not that anyone uses it, I believe.
Kieran, on that point of having different kinds,
I think you were saying this is kind 21,
and then Olaz is using a separate photo kind.
I understand the motivation behind trying to do that, right?
having the goal being you can have different apps for these different use cases or different user

(01:18:49):
needs i think the danger there and perhaps we're seeing that play play out right all us had some
initial uh usage seems to have tapered off i'm happy to stand corrected here by the way and then
from what you're saying on free flow doesn't seem to be much adoption is there a danger of introducing

(01:19:10):
fragmentation when you pigeonhole different content types like short portrait videos images
into their own kind so that they can have custom clients for them like olas or like free flow as
opposed to having them all show up in amethyst or primal or you know as stunned or or maybe working

(01:19:34):
with
Amethyst or Primal to say, hey, do you want
to accept
Kind 2021
and what have you?
Well,
Olas does support shorts
and
it is the same
short kind as

(01:19:55):
the free flow kind, so
it's already
interoperable. I guess the point about
kinds is like
they need to be presented in different ways.
You can't present a short video.
How do you determine what's a short
supposed to be rendered as
a scrollable short video portrait

(01:20:17):
in a kind one? There's no way to really
do that. It needs to be presented
in a different way to the user and it needs to be filtered
in a different way. If you're in a client that's a shorts
client then you need to only search for a certain type of event like you don't want to search for
all kind ones and filter through them to find you know which is a short video for example like you

(01:20:40):
wouldn't even want to do to reuse the kinds just just for that reason alone and that would be the
main reason and in terms of compatibility with other clients this is a this is a standard it's
already in one of the nips, so it's just really up to clients to support these different feeds.

(01:21:02):
Like Ola supports photos and short videos, and the short videos that are posted on Ola
is available on FreeFlow and on Zapstream, so they're all the same kind.
You can also post videos and shorts on Zap.Stream.
It just seems like nobody uses it yet again.

(01:21:25):
Maybe I'm bad at advertising or something.
Hey, Kieran, your audio has gone pretty quiet all of a sudden
in the last 30 seconds or so.
Did you tweak a setting?
Test, test.
I didn't touch anything.

(01:21:45):
Maybe the wire?
I didn't touch anything.
Okay.
All right.
This is what I said earlier before we started.
Something will lower my mind.
It's all good.
Just start yelling.
Okay.
I do have one question that I just thought of because it's almost been a year now since you had the OpenSats long-term support.

(01:22:15):
How has that changed or helped?
Just kind of talk about the impact of that
for a developer like yourself.
It's really a miracle, honestly.
Like nothing that I've built so far
would even be possible
without funding from OpenSats.
Like there's no world where

(01:22:37):
these things get built
and are available open source
in this kind of short of a timeline.
Like there are obviously open source projects
that go on for years on people's free time.
But to have people full-time working on this
is really amazing.
And I'm super grateful to do this.

(01:22:58):
I mean, it was only before I started building on Noster,
I was just imagining this ability to work on,
like I had this drive really to work on open source.
And it kind of was a dream that I actually had in my mind.
and actually Rockstar was essentially my boss at the time

(01:23:21):
and I did actually talk to him about working on open source full time
and it just kind of happened which is very cool
and I'm really happy to work on open source
and to work on things that I really care about
and I'm really excited about as well
You don't often get the chance to have these projects

(01:23:44):
that you genuinely are excited to work on.
It's not like a regular 9 to 5.
That is why I built Zapstream.
I was always interested in live streaming
and I was always an avid user of Twitch.
Not so much anymore.
But I always thought it was a very interesting technical problem.

(01:24:08):
in processing these live streams in real time and distributing them it's very complicated technical
thing and that's also why I built free flow because it's in the same the same vein like
what what tiktok is doing or what instagram shorts is doing is really like very complicated
serving all of this content to so many people and that's what that's what drives me to to work on

(01:24:35):
it is just a very interesting problem to work on and you wouldn't get this opportunity unless you
worked at twitch or whatever but you still wouldn't get the same experience that you get working on
these projects by yourself or with a few smaller teams
there's a there's a theory in the audience hobby um lsat said irish pm jim ogulinghand

(01:25:03):
has reduced Kieran's mic to 8-bit quality.
Is it really?
Oh, man.
It got low, but I can mess with it post-production.
I told you this would happen at the very beginning.
I'm like, every time I try to speak louder,
the OS makes me quieter.
So I have to be very careful not to speak too loudly.

(01:25:27):
Yeah, well, we're at the end of the show, too.
So, I mean, we survived.
Avi, anything else you wanted to ask here?
No, this is extremely educational, Karen,
learning about all of this.
Perhaps you will make sovereign streamers out of us yet,
but that remains to be seen.

(01:25:48):
I'm a little, I have a, maybe I'll wait for the...
Avi, there's a new, there's a,
there's a new form of purity that we have to pass now, right?
Yeah.
Are you running your own Blossom server, bro?
We have to get our sovereign stack of streaming.
Are you running a Blossom server, bro?
Are you running your own Relay, bro?

(01:26:09):
Are you running your own NIP94 stream, bro?
That was awesome.
Anything else you want to plug before we wrap this?
yeah I guess
run Zapstream core

(01:26:31):
eventually we're going to have
on Zap.stream we will have
many providers
with many
with the interface to select from them
so you can have the possibility
of earning sats if you run your own
streaming server, you can set your own prices
and people can use it
and maybe that's

(01:26:51):
better as well
for certain different regions.
Maybe there's a community in Africa
that wants to live stream,
but the latency of getting streams delivered in Africa
is not as good as hosting things from Ireland,
which is where I host everything.
So there's also that angle

(01:27:13):
because there are some Thai streamers
who run their own stream
because it's faster for them to host it in Thailand.
and also run Route 96, which is my Blossom server.
So if you're looking for some Blossom software to run,
you can run Route 96, which is a Blossom server that I built as well.

(01:27:36):
And yeah, check out FreeFlow if you like shorts and start posting there.
I'm really trying to get more people to post shorts on FreeFlow.
And yeah, that's it.
Hashtag FreeFlow365.
Yes.
hey i'm gonna put all this in the show notes so um you know we'll make sure that we have a nice

(01:27:58):
little laundry list of uh kieran's projects and then that zap dutch and core uh really exciting
stuff i'm i was not expecting um those kind of updates and that kind of uh this bullish uh
bullish on nostr that i that i took from the show um super super excited um anything else javi

(01:28:18):
no thank you again karen this is great
thanks for having me on yeah thank you yeah and everyone thank you for tuning in to pleb chain
radio if you appreciate us as much as we appreciate you listen on fountain app and
consider hitting the subscribe button until next week gentle plebs farewell goodbye
Advertise With Us

Popular Podcasts

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Special Summer Offer: Exclusively on Apple Podcasts, try our Dateline Premium subscription completely free for one month! With Dateline Premium, you get every episode ad-free plus exclusive bonus content.

The Breakfast Club

The Breakfast Club

The World's Most Dangerous Morning Show, The Breakfast Club, With DJ Envy, Jess Hilarious, And Charlamagne Tha God!

Crime Junkie

Crime Junkie

Does hearing about a true crime case always leave you scouring the internet for the truth behind the story? Dive into your next mystery with Crime Junkie. Every Monday, join your host Ashley Flowers as she unravels all the details of infamous and underreported true crime cases with her best friend Brit Prawat. From cold cases to missing persons and heroes in our community who seek justice, Crime Junkie is your destination for theories and stories you won’t hear anywhere else. Whether you're a seasoned true crime enthusiast or new to the genre, you'll find yourself on the edge of your seat awaiting a new episode every Monday. If you can never get enough true crime... Congratulations, you’ve found your people. Follow to join a community of Crime Junkies! Crime Junkie is presented by audiochuck Media Company.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.