I just built a tool.
Video on-demand from encrypted chunks on multiple Blossom servers ๐คฏ
If you have (or can install) nak, nodejs, ffmpeg can you check it works for you?
nak req --id ec1688e87843e8774d1813c371fe65af890be090bdb831f03ceefdd2144ad679 wss://relay.damus.io | npx --yes github:franzaps/n2m3u8 | ffmpeg -f hls -allowed_extensions ALL -protocol_whitelist file,http,https,tcp,tls,crypto,fd -i - -f mpegts - | mpv -
This:
- Fetches a nostr event with hashes of video chunks
- Input into my tool that finds the working chunks in Blossom servers and outputs a HLS playlist
- Input to ffmpeg that decrypts and decodes the stream
- Input to video player. (Replace mpv with vlc or other video player, can also save to a video file)
Volume UP!
#asknostr #blossom #devstr
Thread
Login to reply
Replies (41)
doesn't let you down
Censorship-resistant video sharing ๐คฏ
Epic Rick Roll. Bravo, sir.
I don't get it: why encrypt the segments when you put the AES key on the nostr event?
It's a POC so don't take too seriously.
But having a the key separate from the content gives Blossom operators plausible deniability which is massive.
Gotcha
Oooh
This is seriously impressive๐ซdecentralized VOD with encrypted chunks and on-the-fly decryption via Blossom? Thatโs some next-level nostr engineering! Just tested your command flow...works like a charm. Smooth playback with mpv, and the chunk resolution from Blossom is fast. Huge potential here for censorship resistance and scalable content delivery. Love how cleanly n2m3u8 plugs into the toolchain. Hats off!
Might be fun to add support for local cache or adaptive quality next. Keep it up!
#nostr #decentralizedVideo #blossomFTW
Earlier this year, I fell victim to a devastating cryptocurrency scam that cost me $79,000 worth of Dogecoin (DOGE). I met a scammer through a Telegram investment groupโa woman named โClaraโ who posed as an experienced crypto broker. She shared impressive-looking client testimonials and promised a 35% return in just seven days. Her website looked professional, and despite my initial doubts, I eventually transferred 500,000 DOGE, worth about $79,000 at the time.
For the first week, everything looked fineโthe trading platform showed my balance growing steadily. But when I tried to withdraw my funds, I was told I needed to pay a $12,000 โwithdrawal fee.โ Clara reassured me this was standard and fully refundable, so I paid it. Unfortunately, that was just the beginning. More unexpected charges followed: a tax clearance fee, a network fee, a security deposit. Before I knew it, I had lost an additional $8,000.
I was crushedโemotionally and financially. My savings were gone, and I blamed myself for ignoring the red flags. A friend eventually suggested I reach out to JBEE SPY TEAM RECOVERY, a company known for helping scam victims recover stolen cryptocurrency.
Although I was skeptical, I was also desperate. I contacted them and provided every detail I could: wallet addresses, transaction history, chat logsโeverything. Their team got to work right away. Using advanced blockchain tracking techniques, they traced the stolen DOGE, identified the scammerโs wallet, and worked with relevant authorities to freeze the funds before they were moved any further.
Throughout the process, they kept me informed and reassured. After days of relentles
s effort, JBEE SYP TEAM RECOVERY successfully recovered the majority of my stolen Dogecoin. Their professionalism, expertise, and transparency turned what felt like a hopeless situation into a story of redemption.
If youโve been a victim of crypto fraud, I highly recommend contacting them: Email conleyjbeespy606@gmail.com
Telegram +44 7456 058620
you can also contact on instagram
/cc @Jeroen โ
@Constant
Bookmarked thanks!
And I built this on top of it:
franzap
I just built a tool.
Video on-demand from encrypted chunks on multiple Blossom servers ๐คฏ
If you have (or can install) nak, nodejs, ffmpeg can you check it works for you?
nak req --id ec1688e87843e8774d1813c371fe65af890be090bdb831f03ceefdd2144ad679 wss://relay.damus.io | npx --yes github:franzaps/n2m3u8 | ffmpeg -f hls -allowed_extensions ALL -protocol_whitelist file,http,https,tcp,tls,crypto,fd -i - -f mpegts - | mpv -
This:
- Fetches a nostr event with hashes of video chunks
- Input into my tool that finds the working chunks in Blossom servers and outputs a HLS playlist
- Input to ffmpeg that decrypts and decodes the stream
- Input to video player. (Replace mpv with vlc or other video player, can also save to a video file)
Volume UP!
#asknostr #blossom #devstr
View quoted note →
GD! Real time video from blossom servers already works?! Nostr development is really accelerating. I feel like we're getting close to the next killer app/onboarding phase
View quoted note โ
The mind blowing part here is not my unix tool, it is showing that nostr is a practical decentralized alternative to Usenet NZBs (torrents are a different thing)
- Blossom servers do not need to store a whole large video file
- Blossom servers do not need to stream an entire large file
- Blossom operators have plausible deniability in terms of content as the segments are encrypted (and they may not have all) and they don't control the key
- Video clients now have mutiple failovers if a segment is stored in multiple servers
- There are bandwidth savings if the video is not watched entirely
- Content creators can exchange the AES key against a zap
Youtube, here we come.
franzap
I just built a tool.
Video on-demand from encrypted chunks on multiple Blossom servers ๐คฏ
If you have (or can install) nak, nodejs, ffmpeg can you check it works for you?
nak req --id ec1688e87843e8774d1813c371fe65af890be090bdb831f03ceefdd2144ad679 wss://relay.damus.io | npx --yes github:franzaps/n2m3u8 | ffmpeg -f hls -allowed_extensions ALL -protocol_whitelist file,http,https,tcp,tls,crypto,fd -i - -f mpegts - | mpv -
This:
- Fetches a nostr event with hashes of video chunks
- Input into my tool that finds the working chunks in Blossom servers and outputs a HLS playlist
- Input to ffmpeg that decrypts and decodes the stream
- Input to video player. (Replace mpv with vlc or other video player, can also save to a video file)
Volume UP!
#asknostr #blossom #devstr
View quoted note →
Yeah, we were talking about this a while back, when we started splitting up and indexing publications that contain non-text data, but I don't know if the plausible deniability thing actually works in a court of law because everyone low-key knows you've implemented it to help traffic kiddie porn.
I didn't even realize that nobody was doing this, already. Sort of funny. We do this with PDFs and stuff, too. Break it up into a stream, including the pictures and videos and games (people put computer games into PDFs because of course they do). But the whole thing makes me nervous, so we only store Asciidoc and export the embedded media to a media server, and call it from there.
We don't work with anything encypted, but you do you. The police know where we live. LOL
Breaking it down into a stream also means you can set anchors into the stream, and refer to those anchors in a highlight, which is seriously awesome.
Bookmarked. Will test later
๐
nice idea, works perfectly!
cool, m3u8 in a nostr event?
buen trabajo hermano!
So this uses the DRM AES encryption feature of HLS? This might work with hls.js in the browser too.
Love it, really well done ๐
โก
I have not. Thanks!
@florian you were aware of this one?
Nope, doesn't surprise me though, that @Kieran is way ahead of everyone ๐
Putting each segment into it's own NOSTR event makes a lot of sense for live streaming but for videos that would be an unnecessary overhead.
There is also a chunked blobs BUD10 draft ๐.md but that is more for generic files with fixed blob sizes.
Agree.
Also Hzrd likes the idea of just linking to the m3u8 instead of having an event replicating it. The m3u8 should have relative paths that are the hashes
What a way to Rick roll everyone ๐
It's like Space Monkey from 2011 is back ๐
View quoted note โ
Space Monkey (company) - Wikipedia
Yooo
franzap
I just built a tool.
Video on-demand from encrypted chunks on multiple Blossom servers ๐คฏ
If you have (or can install) nak, nodejs, ffmpeg can you check it works for you?
nak req --id ec1688e87843e8774d1813c371fe65af890be090bdb831f03ceefdd2144ad679 wss://relay.damus.io | npx --yes github:franzaps/n2m3u8 | ffmpeg -f hls -allowed_extensions ALL -protocol_whitelist file,http,https,tcp,tls,crypto,fd -i - -f mpegts - | mpv -
This:
- Fetches a nostr event with hashes of video chunks
- Input into my tool that finds the working chunks in Blossom servers and outputs a HLS playlist
- Input to ffmpeg that decrypts and decodes the stream
- Input to video player. (Replace mpv with vlc or other video player, can also save to a video file)
Volume UP!
#asknostr #blossom #devstr
View quoted note →