Use the Speak AI MCP server tool upload_media to upload media from a URL: a
direct/public file URL, a pre-signed S3 URL, or a shareable social/video page link,
which Speak resolves to the underlying media automatically.
What does it do?
Upload media from a URL: a direct/public file URL, a pre-signed S3 URL, or a
shareable social/video page link, which Speak resolves to the underlying media
automatically. Supported page links: YouTube, TikTok, Instagram, X/Twitter,
Facebook, Reddit, SoundCloud, Twitch, Dailymotion, Streamable, Snapchat, Pinterest,
Tumblr, Bilibili, VK, OK.ru and Rutube. Vimeo and Loom page links are not supported.
Processing is asynchronous: after uploading, use get_media_status to poll until
state is ‘processed’ (typically 1-3 minutes for audio under 60 min), then use
get_transcript and get_media_insights to retrieve results. For a single call
that handles everything, use upload_and_analyze instead. For local files, use
upload_local_file.
Parameters
upload_media takes 9 parameters, 2 of them required.
| Name | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Display name for the media file |
url |
string | Yes | Direct/public media file URL, pre-signed S3 URL, or a shareable social/video page link: page links are resolved to the underlying media server-side. See this tool’s description for the platforms accepted. Pass the URL the user gave you as-is; do not try to convert it to a file URL first. |
mediaType |
enum | No | Type of media: “audio” or “video”. Send it whenever the user has told you which they want: if they called it an audio file, or asked for audio only, pass “audio”; if they called it a video, pass “video”. Otherwise omit it and the server decides: it inspects the actual file for a direct URL, and picks the best track the platform offers for a page link. Do not guess from the URL, because sending a value stops the server inspecting the file, and a video imported as “audio” can never be analysed as video afterwards. |
description |
string | No | Description of the media file |
sourceLanguage |
string | No | BCP-47 language code for transcription, e.g. “en-US” or “he-IL” |
tags |
string | No | Comma-separated tags for the media |
folderId |
string | No | ID of the folder to place the media in |
callbackUrl |
string | No | Webhook callback URL for this specific upload |
fields |
array of object | No | Custom field values to attach to the media |
Behaviour
The Speak AI MCP server publishes these behaviour hints for upload_media.
- Can change data in your workspace.
- Does not delete or overwrite existing data.
- Repeating an identical call can have an extra effect.
- Can reach systems outside Speak AI.
Related
- Media library lists the rest of the Media library category.
- Tool reference lists every Speak AI MCP server tool.
- MCP server covers setup, supported clients, and what agents can do once connected.