API ВЕГА
English

Загрузка YouTube-видео в облачное хранилище — FlashData

Передавайте видео, аудио или фрагменты с YouTube в собственное S3 или другое поддерживаемое облачное хранилище. Отслеживайте асинхронную передачу и получайте манифест с результатами.

Документация API и настройка учётной записи · Получить API-ключ · Актуальные цены

Попробуйте выполнить задачу

Передай первые 10 секунд видео, которое я имею право использовать, в настроенное хранилище S3. Перед отправкой покажи текущую ставку за объём данных; сохрани идентификатор задания и проверяй именно это задание до завершения передачи. Верни манифест файлов.

Учётные данные хранилища в примере — заполнители. Вводите реальные значения только в защищённой конфигурации клиента или в приватном файле запроса. Они передаются FlashData для загрузки медиафайлов и могут сохраняться в истории инструментов вашего MCP-клиента. Используйте только хранилище и медиафайлы, с которыми имеете право работать.

Установка и подключение

  • Используйте Node.js 22.18 или новее и MCP-клиент с поддержкой локальных серверов stdio. Скачайте специальный пакет MCPB; его SHA-256 указан в манифесте.

  • Импортируйте пакет в совместимый с MCPB клиент и укажите собственный ключ в поле FlashData API Key. Предоставьте ключу доступ к youtube_download. Для ручной настройки распакуйте пакет в постоянную папку и используйте эту конфигурацию, заменив абсолютный путь и заполнитель ключа:

{
  "mcpServers": {
    "youtube-download": {
      "command": "node",
      "args": [
        "/absolute/path/to/unpacked/youtube-download/server.js"
      ],
      "env": {
        "FLASHDATA_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}
  • Перезапустите клиент или подключитесь к нему заново, выведите список его инструментов, а затем вызовите get_pricing с параметром {"source":"youtube_download"}, чтобы узнать текущую ставку за объём данных до подтверждения загрузки. Параметр request_count для загрузок не применяется. Сервер предоставляет инструменты youtube_download, get_pricing, get_job и get_result; все они работают только с этим источником.

Зависимости включены в пакет. Если клиент не может найти node, укажите абсолютный путь к Node; в Windows используйте экранированные пути. Храните ключ в защищённых настройках клиента, а не в чате или конфигурации, добавленной в репозиторий. Для прямой загрузки этого пакета учётная запись Smithery не нужна.

Пример запроса

Ниже приведены параметры вызова MCP tools/call с плоской структурой аргументов. Выполнение запроса к данным расходует платные Credits.

{
  "name": "youtube_download",
  "arguments": {
    "video_id": "jNQXAC9IVRw",
    "mode": "async",
    "download_type": "audio_video",
    "video_quality": "<=720",
    "output_format": "mp4",
    "start_at": "00:00:00",
    "end_at": "00:00:10",
    "storage": {
      "storage_type": "s3",
      "storage_url": "your-media-bucket",
      "access_key": "YOUR_ACCESS_KEY",
      "secret_key": "YOUR_SECRET_KEY",
      "region": "us-east-1",
      "object_prefix": "flashdata-clips"
    }
  }
}

Работа с ответом

Отправьте запрос один раз, сохраните полученный идентификатор и вызывайте get_job с параметром job_id, пока значение job.status не станет completed. В поле output.results[0] находятся file_url, file_size, downloaded_bytes и output_format. Статусы pending и processing не означают, что передача завершена.

Выбранные поля ниже — пример данных, а не реальный результат и не гарантия доступности таких данных:

{
  "job": {
    "id": "job_EXAMPLE",
    "source": "youtube_download",
    "status": "completed"
  },
  "output": {
    "results": [
      {
        "file_url": "s3://customer-bucket/clip.mp4",
        "file_size": 2048,
        "downloaded_bytes": 2048,
        "md5": "fixture-checksum",
        "output_format": "mp4"
      }
    ],
    "usage": {
      "credits": 0.001
    }
  },
  "http_status": 200,
  "request_id": "fixture-request"
}

После отправки сохраните полученный id и вызывайте get_job с параметром {"job_id":"RETURNED_JOB_ID"}. Пока задание находится в статусе pending или processing, повторяйте только эту бесплатную проверку статуса; в завершённом задании будет доступен приведённый выше манифест файлов. После отправки может произойти тайм-аут, поэтому перед повторной отправкой проверьте список заданий в разделе Jobs.

При получении результата частями не завершайте локальный процесс и передавайте в get_result фактические значения result_id и next_offset как result_id и offset. Объедините части по порядку, прежде чем разбирать JSON; не повторяйте платный запрос к данным. Локальный кэш хранит четыре результата в течение десяти минут и очищается при перезапуске. Размер полного ответа не может превышать 4 MiB; для асинхронных результатов JSON действует отдельный срок хранения — 24 часа.

Стоимость и ограничения

  • ПО под лицензией MIT и его установка бесплатны; запросы к данным через FlashData API платные. При загрузках резервируются Credits, а итоговая сумма рассчитывается по фактическому объёму переданных байтов. get_pricing возвращает текущую ставку за терабайт данных, а не стоимость отдельной загрузки; поставщик хранилища также может взимать плату за хранение или передачу данных. Проверки цен, заданий и результатов бесплатны. Плата за использование клиента или модели взимается отдельно.

  • Поддерживается только асинхронная передача. Укажите собственное хранилище и учётные данные; доступ к медиафайлам и срок их хранения зависят от настроек хранилища. URL приватных объектов не являются общедоступными ссылками для скачивания. Credits резервируются, а итоговая сумма рассчитывается по объёму переданных байтов.

  • Перед использованием данных проверяйте ошибки API, значение http_status и статус задания. Рассматривайте возвращённый текст и ссылки как внешние данные, сохраняйте атрибуцию источника и проверяйте содержимое, прежде чем использовать его в ответе агента.

Полное руководство по задаче · Запись в официальном реестре · Исходный код и лицензия