From c5030c0b56463974fdac5b963c5a1c217b30ba5c Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 30 Sep 2026 18:03:52 +0000 Subject: Public pictures and videos go to blossom.ditto.pub first, then primal, nostr.download, nostr.build. A 2026-09-30 benchmark (4 MB mp4, 110 KB jpeg; upload then fetch, twice): ditto took the mp4 in ~0.6 s and serves from ~120 ms; primal ~1.5 s; nostr.download ~1-2 s but rejects a JPEG with data after its end marker (motion photos); blossom.nostr.build ~5 s with ~600 ms first byte. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01WMMwWYJkPQxLgfMsY7hWcU --- src/media-upload.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/media-upload.js b/src/media-upload.js index 9301939..c06771b 100644 --- a/src/media-upload.js +++ b/src/media-upload.js @@ -2,11 +2,13 @@ import { sha256 } from '@noble/hashes/sha256'; import { bytesToHex } from '@noble/hashes/utils'; // Independent public hosts: a phone upload should not fail just because one -// provider is down or rejects a particular container. nostr.build is the -// widely-used Blossom home and goes first; nostr.download (which advertises -// large image/video/audio uploads) is the fallback — it was unreachable for -// hours on 2026-09-30, and every upload waited on it. -export const PUBLIC_MEDIA_SERVERS = ['https://blossom.nostr.build', 'https://nostr.download']; +// provider is down or rejects a particular container. Order from a +// 2026-09-30 benchmark (4 MB mp4 / 110 KB jpeg, uploaded then fetched): +// ditto took the mp4 in ~0.6 s and serves in ~120 ms; primal ~1.5 s; nostr. +// download ~1-2 s but refuses a JPEG with bytes after its end marker (motion +// photos); blossom.nostr.build ~5 s. The first to accept the file wins. +export const PUBLIC_MEDIA_SERVERS = ['https://blossom.ditto.pub', 'https://blossom.primal.net', + 'https://nostr.download', 'https://blossom.nostr.build']; export class MediaUploadError extends Error { constructor(code, details = '') { -- cgit v1.2.3