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

# 動画入力機能の実装

SambaNova は、SambaCloud と SambaStack 1.2 の両方で、一部のマルチモーダルモデルにおける動画入力に対応しており、テキストプロンプトと一緒に動画ファイルを渡すことができます。本ページでは、SambaNova または OpenAI の Python クライアントを使用して、SambaNova の動画対応モデルにクエリを送信する方法を解説します。

<Note>
  動画入力は現在 `gemma-4-31B-it` で対応しています。このモデルは音声入力には**対応していません**。
</Note>

<Note>
  動画は以下の要件を満たす必要があります。

  * **最大再生時間:** 60 秒
  * **フレームレート:** 2 fps
  * **最大ファイルサイズ:** 100 MB
  * **再生時間メタデータ:** 動画ファイルに読み取り可能な再生時間メタデータが含まれていること
</Note>

<Warning>
  必ず `"type": "video_url"` と、その中にネストした `video_url` オブジェクトを使用してください。`"type": "video"` は未対応であり、バリデーションエラーが発生します。
</Warning>

## 動画を使用したクエリの作成

動画リクエストはマルチモーダル入力フォーマットに従います。`video_url` コンテンツタイプを使用して、base64 エンコードされた文字列または URL として動画を渡します。

<Steps>
  <Step title="ステップ 1">
    新しい Python ファイルを作成し、以下のコードをコピーします。

    <CodeGroup>
      ```python Python (SambaNova) theme={}
      from sambanova import SambaNova
      import base64

      client = SambaNova(
          base_url="your-sambanova-base-url",
          api_key="your-sambanova-api-key",
      )

      def encode_video(video_path):
          with open(video_path, "rb") as video_file:
              return base64.b64encode(video_file.read()).decode("utf-8")

      video_path = "sample.mp4"
      video_base64 = encode_video(video_path)

      response = client.chat.completions.create(
          model="gemma-4-31B-it",
          messages=[
              {
                  "role": "user",
                  "content": [
                      {"type": "text", "text": "Describe what is happening in this video."},
                      {
                          "type": "video_url",
                          "video_url": {"url": f"data:video/mp4;base64,{video_base64}"},
                      },
                  ],
              }
          ],
      )

      print(response.choices[0].message.content)
      ```

      ```python Python (OpenAI) theme={}
      from openai import OpenAI
      import base64

      client = OpenAI(
          base_url="your-sambanova-base-url",
          api_key="your-sambanova-api-key",
      )

      def encode_video(video_path):
          with open(video_path, "rb") as video_file:
              return base64.b64encode(video_file.read()).decode("utf-8")

      video_path = "sample.mp4"
      video_base64 = encode_video(video_path)

      response = client.chat.completions.create(
          model="gemma-4-31B-it",
          messages=[
              {
                  "role": "user",
                  "content": [
                      {"type": "text", "text": "Describe what is happening in this video."},
                      {
                          "type": "video_url",
                          "video_url": {"url": f"data:video/mp4;base64,{video_base64}"},
                      },
                  ],
              }
          ],
      )

      print(response.choices[0].message.content)
      ```
    </CodeGroup>
  </Step>

  <Step title="ステップ 2">
    [API キーと URL](/docs/ja/get-started/api-keys-urls) ページで取得した SambaNova API キーとベース URL で、`"your-sambanova-api-key"` と `"your-sambanova-base-url"` を置き換えます。
  </Step>

  <Step title="ステップ 3">
    `"sample.mp4"` を、お使いの動画ファイルのパスに置き換えます。
  </Step>

  <Step title="ステップ 4">
    `content` 配列内のプロンプトテキストを、ユースケースに合わせて変更します。
  </Step>

  <Step title="ステップ 5">
    Python ファイルを実行して、テキスト出力を受け取ります。
  </Step>
</Steps>

## ペイロード形式

`video_url` コンテンツブロックには、base64 エンコードされた動画または URL のいずれかを指定できます。

```json theme={}
{
  "type": "video_url",
  "video_url": {
    "url": "data:video/mp4;base64,<base64-encoded-video>"
  }
}
```

```json theme={}
{
  "type": "video_url",
  "video_url": {
    "url": "https://example.com/sample.mp4"
  }
}
```
