Skip to content

API Reference

Component Props

React Video Thumbnail Extractor는 레이어 팝업형, 페이지형 2가지 UI를 제공합니다. 레이어 팝업형 VideoThumbnailExtractorModal 컴포넌트는 VideoThumbnailExtractorProps 타입을 온전히 상속하며, isOpen 속성을 추가로 가집니다.

VideoThumbnailExtractorProps

tsx
<VideoThumbnailExtractor
  stepTitle={['동영상 선택하기', '썸네일 추출하기']}
  maxFileSize={10}
  maxThumbnailLength={4}
  allowedExtensions={['.mp4', '.webm']}
  confirmButtonLabel="확인"
  cancelButtonLabel="취소"
  onVideoLoaded={handleLoaded}
  onThumbnailAdded={handleAddedThumbnail}
  onThumbnailRemoved={handleRemovedThumbnail}
  onError={handleError}
  onSuccess={handleSuccess}
  onCancel={() => closeModal()}
/>
PropertyDescriptionTypeDefault
stepTitle동영상 업로드 단계와 썸네일 추출 단계에서의 UI 타이틀을 정의합니다.[string, string]['동영상 업로드', '사진 올리기']
maxFileSize업로드 가능한 동영상 파일의 최대 크기를 지정합니다. (단위: MB)number300
maxThumbnailLength생성할 수 있는 썸네일의 최대 개수를 설정합니다.number4
allowedExtensions허용되는 파일 확장자를 정의합니다. (예: ['.mp4', '.mov'])string[]['.mp4', '.webm', '.ogg', '.mov', '.avi', '.flv', '.wmv', '.mkv', '.m4v']
confirmButtonLabel확인 버튼에 표시할 문구를 설정합니다.string확인
cancelButtonLabel취소 버튼에 표시할 문구를 설정합니다.string취소
onVideoLoaded동영상을 성공적으로 로드했을 때 호출합니다.() => void
onThumbnailAdded썸네일을 성공적으로 추가했을 때 호출합니다.(thumbnail: Thumbnail) => void
onThumbnailRemoved썸네일을 삭제했을 때 호출합니다.(thumbnail: Thumbnail) => void
onError에러 발생 시 호출되며, 에러 코드와 상태 정보를 제공합니다.(result: ThumbnailValidationResult) => void
onSuccess사용자가 확인 버튼을 누를 때 호출하며, 생성된 썸네일 목록을 반환합니다.(thumbnails: Thumbnail[]) => void
onCancel사용자가 취소 버튼을 누를 때 호출합니다.() => void

VideoThumbnailExtractorModalProps

ts
export interface VideoThumbnailExtractorModalProps extends VideoThumbnailExtractorProps {
  isOpen: boolean;
}
tsx
<VideoThumbnailExtractorModal
  isOpen={true}
  stepTitle={['동영상 선택하기', '썸네일 추출하기']}
  maxFileSize={10}
  maxThumbnailLength={4}
  allowedExtensions={['.mp4', '.webm']}
  confirmButtonLabel="저장하기"
  cancelButtonLabel="취소하기"
  onVideoLoaded={handleLoaded}
  onThumbnailAdded={handleAddedThumbnail}
  onThumbnailRemoved={handleRemovedThumbnail}
  onError={handleError}
  onSuccess={handleSuccess}
  onCancel={() => closeModal()}
/>
PropertyDescriptionTypeDefault
isOpen상태에 따라 VideoThumbnailExtractorModal 컴포넌트를 노출합니다.booleanfalse
기타 PropsVideoThumbnailExtractorPropsVideoThumbnailExtractor 컴포넌트의 모든 Props를 상속받습니다.

Thumbnail

onSuccess 콜백 함수는 다음과 같이 개별 썸네일의 정보를 담은 목록을 반환합니다. Blob URL 노출을 지원하지 않는 에디터 호환을 위해 Base64 URL을 함께 제공합니다. 모듈 외 영역에서 이 정보를 활용할 수 있습니다.

result 형식

PropertyDescriptionType
id각 썸네일의 고유 식별자입니다.string
blobUrlBlob 형태로 제공되는 썸네일 URL입니다.string
base64UrlBase64 인코딩된 썸네일 URL입니다.string
file이미지 업로드를 위한 파일 객체입니다.File
time동영상에서 썸네일이 추출된 시간(초 단위)입니다.number
displayTime썸네일이 생성된 시간을 HH:MM:SS 형식으로 표시합니다.string

ThumbnailValidationResult

동영상을 선택하거나 썸네일을 추출할 때 발생하는 에러 상태를 전달합니다.

PropertyDescriptionType
hasError에러 발생 여부를 나타냅니다.boolean
code에러 또는 성공 코드를 반환합니다.VideoThumbnailExtractorCodes

VideoThumbnailExtractorMessagesType

언어 코드를 포함한 메시지 객체로 ThumbnailValidationResult에서 활용합니다.

Language CodeDescriptionType
ko다국어 메시지의 키-값 형태를 정의합니다.Record<VideoThumbnailExtractorCodes, string>

Codes

VideoThumbnailExtractorCodes - Error Codes

Error CodeDescription
REQUIRE_FILE파일을 선택해 주세요.
INVALID_FILE파일 정보를 찾을 수 없어요. 올바른 파일을 선택해 주세요.
INVAILD_FILE_NAME파일명 규칙이 올바르지 않아요. 파일명을 다시 확인해 주세요.
INVALID_FILE_MAX_LENGTH첨부 개수를 초과했어요.
INVALID_FILE_MAX_SIZE첨부 용량을 초과했어요.
INVALID_FILE_EXTENSION지원하지 않는 파일입니다. 올바른 파일을 선택해 주세요.
INVALID_FILE_IS_NOT_VIDEO동영상 파일만 선택할 수 있습니다.
INVALID_FILE_ALREADY_EXISTS이미 선택한 파일입니다.
INVALID_THUMBNAIL_DUPLICATED이미 추출한 장면이에요.
INVALID_THUMBNAIL_MAX_LENGTH썸네일 생성 개수를 초과했어요.
THUMBNAIL_EXTRACT_ING썸네일을 추출하고 있어요. 잠시만 기다려 주세요.
THUMBNAIL_EXTRACT_FAIL썸네일 추출 중 오류가 발생했어요.

VideoThumbnailExtractorCodes - Success Codes

Success CodeDescription
THUMBNAIL_EXTRACT_SUCCESS썸네일을 추출했어요.
THUMBNAIL_ADD_SUCCESS썸네일을 생성했어요.
THUMBNAIL_REMOVE_SUCCESS썸네일을 삭제했어요.
FILE_IMPORT_SUCCESS파일을 불러왔어요.