> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# 미디어 자산 업로드 준비

> World Labs 미디어 자산 업로드 대상을 만듭니다

World Labs 미디어 자산 레코드를 만들고 이미지 또는 비디오 업로드 URL을 받습니다. 바이너리 파일을 `upload_info.upload_url`에 업로드한 뒤 `world_prompt`에서 `source: "media_asset"`와 반환된 `media_asset.media_asset_id`를 참조할 수 있습니다.

TokenLab은 자산 소유 조직을 기록합니다. 같은 조직만 이 미디어 자산을 조회하거나 world 생성에 사용할 수 있습니다.

## 요청 본문

<ParamField body="file_name" type="string" required>
  원본 파일 이름, 최대 64자.
</ParamField>

<ParamField body="kind" type="string" required>
  미디어 유형: `image` 또는 `video`.
</ParamField>

<ParamField body="extension" type="string">
  선택 확장자. 예: `png`, `jpg`, `mp4`.
</ParamField>

<ParamField body="metadata" type="object">
  상위 미디어 자산에 저장할 선택 메타데이터 객체.
</ParamField>

## 응답

<ResponseField name="media_asset" type="object">
  준비된 World Labs 미디어 자산 메타데이터.
</ResponseField>

<ResponseField name="upload_info.upload_url" type="string">
  바이너리 파일을 업로드할 상위 서명 URL.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/worlds/media-assets/prepare-upload" \
    -H "Authorization: Bearer sk-your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "file_name": "reference.png",
      "kind": "image",
      "extension": "png"
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.tokenlab.sh/v1/worlds/media-assets/prepare-upload",
      headers={"Authorization": "Bearer sk-your-api-key"},
      json={"file_name": "reference.png", "kind": "image", "extension": "png"},
  )

  print(response.json()["media_asset"]["media_asset_id"])
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.tokenlab.sh/v1/worlds/media-assets/prepare-upload', {
    method: 'POST',
    headers: {
      Authorization: 'Bearer sk-your-api-key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ file_name: 'reference.png', kind: 'image', extension: 'png' })
  });

  const prepared = await response.json();
  console.log(prepared.media_asset.media_asset_id, prepared.upload_info.upload_url);
  ```
</RequestExample>
