Shopee SDK API Reference - v1.11.0
    Preparing search index...

    MediaManager handles media upload operations for the Shopee API

    Provides methods for:

    • Image upload for various business scenarios
    • Video upload with multi-part upload support
    • Video upload status tracking

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    config: ShopeeConfig

    Methods

    • Cancel a video upload session

      Parameters

      • params: CancelVideoUploadParams

        Parameters for cancelling video upload

        Parameters for v2.media_space.cancel_video_upload

        • video_upload_id: string

          The ID of this upload session, returned in init_video_upload

      Returns Promise<CancelVideoUploadResponse>

      Response indicating cancellation

      await sdk.media.cancelVideoUpload({
      video_upload_id: videoUploadId
      });
      console.log('Video upload cancelled');

      Use Cases:

      • Cancel upload on user request
      • Cancel failed upload to free resources
      • Cancel when upload takes too long

      When the API request fails

      • error_invalid_upload_id: Invalid upload_id
      • error_already_completed: Upload already completed (cannot cancel)
    • Complete the video upload and start transcoding

      Parameters

      • params: CompleteVideoUploadParams

        Parameters for completing video upload

        Parameters for v2.media_space.complete_video_upload

        • part_seq_list: number[]

          All uploaded sequence numbers

        • report_data: VideoUploadReportData

          Upload performance tracking data

        • video_upload_id: string

          The ID of this upload session, returned in init_video_upload

      Returns Promise<CompleteVideoUploadResponse>

      Response indicating completion

      const startTime = Date.now();
      // ... upload all parts ...
      const uploadCost = Date.now() - startTime;

      await sdk.media.completeVideoUpload({
      video_upload_id: videoUploadId,
      part_seq_list: [0, 1, 2, 3],
      report_data: {
      upload_cost: uploadCost
      }
      });

      Notes:

      • Call this after all parts are uploaded successfully
      • Transcoding process begins after this call
      • Use getVideoUploadResult to check transcoding status

      When the API request fails

      • error_invalid_upload_id: Invalid upload_id
      • error_already_completed: Upload already completed
    • Query the upload status and result of a video upload

      Parameters

      • params: GetVideoUploadResultParams

        Parameters for querying video status

        Parameters for v2.media_space.get_video_upload_result

        • [key: string]: string | number | boolean | null | undefined
        • video_upload_id: string

          The video_upload_id returned by init_video_upload

      Returns Promise<GetVideoUploadResultResponse>

      Response containing upload status and video info

      const result = await sdk.media.getVideoUploadResult({
      video_upload_id: videoUploadId
      });

      if (result.response.status === 'SUCCEEDED') {
      console.log('Video URL:', result.response.video_info.video_url_list);
      console.log('Duration:', result.response.video_info.duration);
      } else if (result.response.status === 'FAILED') {
      console.error('Upload failed:', result.response.message);
      }

      Upload Status:

      • INITIATED: Waiting for parts or complete_video_upload call
      • TRANSCODING: Transcoding the video file
      • SUCCEEDED: Transcoding completed, video ready to use
      • FAILED: Upload failed, check message for details
      • CANCELLED: Upload was cancelled

      When the API request fails

      • error_invalid_upload_id: Invalid upload_id
    • Initiate a video upload session

      Parameters

      • params: InitVideoUploadParams

        Parameters for initiating video upload

        Parameters for v2.media_space.init_video_upload

        • file_md5: string

          MD5 of video file

        • file_size: number

          Size of video file in bytes (maximum 30MB)

      Returns Promise<InitVideoUploadResponse>

      Response containing video_upload_id

      const result = await sdk.media.initVideoUpload({
      file_md5: '2abf0b6e5ff90ff24437a0808f171a93',
      file_size: 1261876
      });
      const videoUploadId = result.response.video_upload_id;

      Video Requirements:

      • Duration: 10-60 seconds (inclusive)
      • Maximum size: 30MB
      • Must upload by parts after initialization

      When the API request fails

      • error_file_size: File size is too large (max 30MB)
    • Upload multiple image files for general use

      Parameters

      • params: UploadImageParams

        Parameters for uploading images

        Parameters for v2.media_space.upload_image

        • image: Buffer<ArrayBufferLike> | Buffer<ArrayBufferLike>[]

          The image files to be uploaded as buffers (up to 9 images)

        • Optionalratio?: MediaSpaceImageRatio

          Image ratio (only for whitelisted sellers)

        • Optionalscene?: MediaSpaceImageScene

          Scene where the picture is used

      Returns Promise<UploadImageResponse>

      Response containing uploaded image information

      // Upload product images (square processing)
      const result = await sdk.media.uploadImage({
      image: [Buffer.from('image-1'), Buffer.from('image-2')],
      scene: 'normal',
      ratio: '1:1'
      });

      // Upload description images (no processing)
      const descResult = await sdk.media.uploadImage({
      image: Buffer.from('desc-image-bytes'),
      scene: 'desc'
      });

      Image Requirements:

      • Maximum: 9 images per request
      • Maximum size: 10MB per image
      • Formats: JPG, JPEG, PNG
      • Scene "normal": Image processed as square (recommended for item images)
      • Scene "desc": No processing (recommended for extended descriptions)

      When the API request fails

    • Upload images for specific business scenarios (e.g., returns)

      Parameters

      • params: UploadMediaImageParams

        Parameters for uploading images

        Parameters for v2.media.upload_image

        • business: 2

          Defines the business type of the uploaded image

        • images: Buffer<ArrayBufferLike> | Buffer<ArrayBufferLike>[]

          The image files to be uploaded as buffers

        • scene: 1

          Defines the purpose of the uploaded image under the specified business type

      Returns Promise<UploadMediaImageResponse>

      Response containing uploaded image information

      const result = await sdk.media.uploadMediaImage({
      business: 2,
      scene: 1,
      images: Buffer.from('image-bytes')
      });
      console.log('Uploaded images:', result.response.image_list);

      Restrictions:

      • business = 2, scene = 1: Up to 3 images, max 10MB each, formats: JPG, JPEG, PNG

      When the API request fails

    • Upload a video file by parts

      Parameters

      • params: UploadVideoPartParams

        Parameters for uploading video part

        Parameters for v2.media_space.upload_video_part

        • content_md5: string

          MD5 of this part

        • part_content: Buffer

          The content of this part of file as a buffer (exactly 4MB except last part)

        • part_seq: number

          Sequence of the current part, starts from 0

        • video_upload_id: string

          The video_upload_id returned by init_video_upload

      Returns Promise<UploadVideoPartResponse>

      Response indicating upload success

      // Upload video parts sequentially
      for (let i = 0; i < partCount; i++) {
      await sdk.media.uploadVideoPart({
      video_upload_id: videoUploadId,
      part_seq: i,
      content_md5: partMd5,
      part_content: Buffer.from('part-bytes')
      });
      }

      Part Requirements:

      • Part size: Exactly 4MB except for the last part
      • Must provide MD5 hash for each part
      • Upload parts sequentially starting from 0

      When the API request fails

      • error_invalid_upload_id: Invalid upload_id
      • error_invalid_part_seq: Invalid part_seq
      • error_invalid_part_size: Invalid part_size