NIP-92는 사용자가 URL과 해당 리소스를 설명하는 인라인 메타데이터 태그를 포함하여 Nostr 이벤트에 미디어 파일을 첨부할 수 있게 한다.

작동 방식

사용자는 이벤트 content에 미디어 URL을 직접 배치한다. 예를 들어 kind 1 텍스트 노트에 넣을 수 있다. 그런 다음 매칭되는 imeta 태그가 해당 URL에 대한 기계 판독 가능한 세부 정보를 추가한다. 클라이언트는 이 메타데이터를 사용하여 미리보기를 렌더링하고, 레이아웃 공간을 예약하고, 노트가 이미 화면에 표시된 후 파일 속성을 추측하는 것을 피할 수 있다.

imeta 태그는 이벤트 content의 URL 하나와 매칭되어야 한다. 클라이언트는 매칭되지 않는 태그를 무시할 수 있으며, 이는 오래되거나 잘못된 메타데이터를 거부하는 간단한 규칙을 구현에 제공한다.

imeta 태그

imeta 태그에는 url과 최소 하나의 다른 필드가 있어야 한다. 지원되는 필드는 다음과 같다:

  • url - 미디어 URL (필수)
  • m - 파일의 MIME 유형
  • dim - 이미지 크기 (가로 x 세로)
  • blurhash - 미리보기 생성용 Blurhash
  • alt - 접근성을 위한 대체 텍스트 설명
  • x - SHA-256 해시 (NIP-94에서 유래)
  • fallback - 기본 URL 실패 시 대체 URL

imetaNIP-94: File Metadata의 필드를 포함할 수 있으므로, 클라이언트는 독립 파일 메타데이터 이벤트에서 이미 이해하는 것과 동일한 MIME 유형, 크기, 해시, 접근성 텍스트를 재사용할 수 있다.

왜 중요한가

가장 직접적인 이점은 다운로드 전 더 나은 렌더링이다. dim이 있으면 클라이언트는 파일 로드 후 타임라인을 재배치하는 대신 이미지나 비디오에 적절한 공간을 미리 예약할 수 있다. blurhash가 있으면 저비용 미리보기를 먼저 표시할 수 있다. alt가 있으면 스크린 리더 및 저시력 사용자도 첨부 파일을 사용할 수 있다.

NIP-92는 게시물 자체를 진실의 원천(source of truth)으로 유지할 수 있게 한다. URL이 content에 남아 있으므로 이전 클라이언트에서도 일반 링크가 표시되고, 새로운 클라이언트에서는 같은 노트를 더 풍부한 미디어 카드로 업그레이드할 수 있다.

상호운용성 참고사항

NIP-92는 인라인 메타데이터이지 별도의 미디어 객체 형식이 아니다. 클라이언트가 자체 이벤트를 가진 재사용 가능한 파일 레코드가 필요하다면, NIP-94: File Metadata가 더 적합하다.

예시

["imeta",
  "url https://example.com/image.jpg",
  "m image/jpeg",
  "dim 1920x1080",
  "blurhash LKO2?U%2Tw=w]~RBVZRi}^Xu%LRj"
]

주요 출처:

언급된 뉴스레터:

같이 보기: