Content-addressable blob storage implementing the Blossom protocol with AI-powered content moderation
Retrieve a blob by its SHA-256 hash. Supports optional file extension and range requests. Use .jpg extension to get video thumbnails. (BUD-01)
Get HLS master manifest for adaptive streaming. Automatically triggers on-demand transcoding for videos that haven't been transcoded yet. Returns 202 Accepted with Retry-After header while transcoding is in progress.
Alternative HLS manifest URL for player compatibility. Same behavior as the .hls endpoint above.
Direct download of the 720p H.264 transcoded variant (2.5 Mbps). Triggers transcoding on-demand if not yet available.
Direct download of the 480p H.264 transcoded variant (1 Mbps). Triggers transcoding on-demand if not yet available.
Check if a blob exists and get its metadata. (BUD-01)
Upload a new blob. Requires Nostr authentication (kind 24242 event). Video uploads automatically generate a thumbnail. (BUD-02)
Pre-validate upload with X-SHA-256, X-Content-Length, X-Content-Type headers. (BUD-06)
List all blobs uploaded by a public key. (BUD-02)
Delete a blob. Requires Nostr authentication and ownership. (BUD-02)
Report problematic content using NIP-56 events (kind 1984). (BUD-09)
Mirror a blob from a remote URL. Requires Nostr authentication. (BUD-04)
Secure uploads using NIP-98 HTTP Auth with Schnorr signatures.
AI-powered moderation with SAFE, REVIEW, AGE_RESTRICTED, and PERMANENT_BAN levels.
Powered by Fastly Compute for low-latency global delivery.
Automatic JPEG thumbnail generation for uploaded videos, accessible at /<sha256>.jpg.
On-demand H.264 transcoding to 720p and 480p with HLS adaptive streaming. Direct quality access via /<sha256>/720p and /<sha256>/480p.
Reliable blob storage backed by Google Cloud Storage.
This server implements the Blossom protocol for decentralized media hosting on Nostr.
Implemented BUDs: BUD-01 (Blob Retrieval), BUD-02 (Upload/List/Delete), BUD-04 (Mirroring), BUD-06 (Upload Pre-validation), BUD-09 (Reporting)
Maximum upload size: 50 GB