franzap on Nostr: I just built a tool. Video on-demand from encrypted chunks on multiple Blossom ...
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
Published at
2025-05-05 14:25:13Event JSON
{
"id": "5a3290295d4d8b28b696d4d13fe3fa9294b67f672b730dc676953697b96f6ac4",
"pubkey": "726a1e261cc6474674e8285e3951b3bb139be9a773d1acf49dc868db861a1c11",
"created_at": 1746455113,
"kind": 1,
"tags": [
[
"t",
"asknostr"
],
[
"t",
"blossom"
],
[
"t",
"devstr"
],
[
"r",
"relay.damus.io"
]
],
"content": "I just built a tool.\n\nVideo on-demand from encrypted chunks on multiple Blossom servers 🤯\n\nIf you have (or can install) nak, nodejs, ffmpeg can you check it works for you?\n\nnak 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 -\n\nThis:\n - Fetches a nostr event with hashes of video chunks\n - Input into my tool that finds the working chunks in Blossom servers and outputs a HLS playlist\n - Input to ffmpeg that decrypts and decodes the stream\n - Input to video player. (Replace mpv with vlc or other video player, can also save to a video file)\n\nVolume UP!\n\n#asknostr #blossom #devstr\n",
"sig": "ebd8cfebf5131dc8939bec41e0435cdf740db06348b904c7e09d19284f063d0fcde6aa7572c78c2ca8ce954fde9f8a2a59e6a4697a2bcef65c7ddb69b2a58cb2"
}