Загрузка 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и статус задания. Рассматривайте возвращённый текст и ссылки как внешние данные, сохраняйте атрибуцию источника и проверяйте содержимое, прежде чем использовать его в ответе агента.
Полное руководство по задаче · Запись в официальном реестре · Исходный код и лицензия