Skip to content

Видео запросы

Отправляйте видеофайлы в модели, поддерживающие видео, через API AITUNNEL.

AITUNNEL поддерживает отправку видеофайлов в совместимые модели через API. Это руководство покажет вам, как работать с видео, используя наш API.

AITUNNEL поддерживает как прямые URL, так и base64-кодированные data URL для видео:

  • URL: Эффективно для публично доступных видео, так как не требует локального кодирования
  • Base64 Data URL: Требуется для локальных файлов или приватных видео, которые не являются публично доступными

Видео запросы

Запросы с видеофайлами к совместимым моделям доступны через API /v1/chat/completions с типом контента video_url. Параметр url может быть либо URL, либо base64-кодированным data URL. Обратите внимание, что только модели с возможностями обработки видео будут обрабатывать эти запросы.

Вы можете найти модели, поддерживающие видео, проверив поле input_modalities в информации о модели - оно должно включать "video".

Использование URL видео

Вот как отправить видео, используя URL. Обратите внимание, что для Google Gemini поддерживаются только ссылки YouTube:

python
import requests
import json

url = "https://api.aitunnel.ru/v1/chat/completions"
headers = {
    "Authorization": "Bearer sk-aitunnel-xxx",
    "Content-Type": "application/json"
}

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Опиши, что происходит в этом видео."
            },
            {
                "type": "video_url",
                "video_url": {
                    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
                }
            }
        ]
    }
]

payload = {
    "model": "gemini-2.5-flash",
    "messages": messages
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())
typescript
const url = "https://api.aitunnel.ru/v1/chat/completions";
const headers = {
  "Authorization": "Bearer sk-aitunnel-xxx",
  "Content-Type": "application/json"
};

const messages = [
  {
    role: "user",
    content: [
      {
        type: "text",
        text: "Опиши, что происходит в этом видео."
      },
      {
        type: "video_url",
        video_url: {
          url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
        }
      }
    ]
  }
];

const payload = {
  model: "gemini-2.5-flash",
  messages: messages
};

const response = await fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(payload)
});

const data = await response.json();
console.log(data);

Использование видео в формате Base64

Для локально хранящихся видео вы можете отправить их, используя кодировку base64 в виде data URL:

python
import requests
import json
import base64
from pathlib import Path

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

url = "https://api.aitunnel.ru/v1/chat/completions"
headers = {
    "Authorization": "Bearer sk-aitunnel-xxx",
    "Content-Type": "application/json"
}

# Читаем и кодируем видео
video_path = "path/to/your/video.mp4"
base64_video = encode_video_to_base64(video_path)
data_url = f"data:video/mp4;base64,{base64_video}"

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Что происходит в этом видео?"
            },
            {
                "type": "video_url",
                "video_url": {
                    "url": data_url
                }
            }
        ]
    }
]

payload = {
    "model": "gemini-2.5-flash",
    "messages": messages
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())
typescript
import * as fs from 'fs';

async function encodeVideoToBase64(videoPath: string): Promise<string> {
  const videoBuffer = await fs.promises.readFile(videoPath);
  const base64Video = videoBuffer.toString('base64');
  return `data:video/mp4;base64,${base64Video}`;
}

// Читаем и кодируем видео
const videoPath = 'path/to/your/video.mp4';
const base64Video = await encodeVideoToBase64(videoPath);

const url = "https://api.aitunnel.ru/v1/chat/completions";
const headers = {
  "Authorization": "Bearer sk-aitunnel-xxx",
  "Content-Type": "application/json"
};

const messages = [
  {
    role: "user",
    content: [
      {
        type: "text",
        text: "Что происходит в этом видео?"
      },
      {
        type: "video_url",
        video_url: {
          url: base64Video
        }
      }
    ]
  }
];

const payload = {
  model: "gemini-2.5-flash",
  messages: messages
};

const response = await fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(payload)
});

const data = await response.json();
console.log(data);

Поддерживаемые форматы видео

AITUNNEL поддерживает следующие форматы видео:

  • video/mp4
  • video/mpeg
  • video/mov
  • video/webm

Типичные случаи использования

Видео-запросы открывают широкий спектр приложений:

  • Суммаризация видео: Генерация текстовых сводок видеоконтента
  • Распознавание объектов и действий: Определение объектов, людей и действий в видео
  • Понимание сцен: Описание окружений, сред и контекстов
  • Анализ спорта: Анализ игрового процесса, движений и тактики
  • Видеонаблюдение: Мониторинг и анализ видеозаписей безопасности
  • Образовательный контент: Анализ обучающих видео и предоставление инсайтов

Лучшие практики

Соображения по размеру файла

Видеофайлы могут быть большими, что влияет как на время загрузки, так и на стоимость обработки:

  • Сжимайте видео когда это возможно, чтобы уменьшить размер файла без значительной потери качества
  • Обрезайте видео чтобы включить только релевантные сегменты
  • Учитывайте разрешение: Более низкие разрешения (например, 720p против 4K) уменьшают размер файла, сохраняя при этом пригодность для большинства задач анализа
  • Частота кадров: Более низкая частота кадров может уменьшить размер файла для видео, где высокая временная разрешающая способность не критична

Оптимальная длина видео

Разные модели могут иметь разные ограничения на длительность видео:

  • Проверьте документацию конкретной модели для максимальной длины видео
  • Для длинных видео рассмотрите возможность разделения на более короткие сегменты
  • Сосредоточьтесь на ключевых моментах, а не на отправке всего длинного контента

Компромиссы между качеством и размером

Балансируйте качество видео с практическими соображениями:

  • Высокое качество (1080p+, высокий битрейт): Лучше всего для детального визуального анализа, обнаружения объектов, распознавания текста
  • Среднее качество (720p, умеренный битрейт): Подходит для большинства общих задач анализа
  • Низкое качество (480p, низкий битрейт): Приемлемо для базового понимания сцен и распознавания действий

Устранение неполадок

Видео не обрабатывается?

  • Проверьте, что модель поддерживает видео-ввод (проверьте, что input_modalities включает "video")
  • Если URL видео не работает, попробуйте использовать base64-кодированный data URL вместо этого
  • Проверьте, что формат видео поддерживается
  • Убедитесь, что видеофайл не поврежден

Ошибки больших файлов?

  • Сожмите видео, чтобы уменьшить размер файла
  • Уменьшите разрешение видео или частоту кадров
  • Обрежьте видео до более короткой длительности
  • Проверьте ограничения размера файла для конкретной модели
  • Рассмотрите использование URL видео (если поддерживается провайдером) вместо base64-кодирования для больших файлов

Плохие результаты анализа?

  • Убедитесь, что качество видео достаточно для задачи
  • Предоставьте четкие, конкретные промпты о том, что нужно проанализировать
  • Рассмотрите, подходит ли длительность видео для модели
  • Проверьте, что содержимое видео четко видно и хорошо освещено

AITUNNEL