Use the Speak AI MCP server tool upload_media to import an audio or video file
into Speak AI from a URL and start transcription.
What does it do?
Import an audio or video file into Speak AI from a URL and start transcription.
Accepts a direct public file URL, a URL returned by get_signed_upload_url, or a
page link from a supported platform, which the server resolves to the underlying
media. 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.
Requires an active subscription. Creates a media item, bills its duration against
the workspace’s minutes or credits, and sends the media.created event to the
workspace’s webhooks and Slack channels if any are configured. The request fails if
the file exceeds the plan’s size limit or its duration cannot be read, and no
mediaId is returned if the balance is insufficient. Returns mediaId and state right
away while processing continues in the background. Use get_media_status until
state is ‘processed’, then get_transcript and get_media_insights.
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, a URL returned by get_signed_upload_url, or a page link from a platform listed in this tool’s description. Page links are resolved server-side, so pass the URL the user gave you as-is. |
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”. Omit to use the default language on the user profile. An unsupported code falls back to automatic detection instead of failing. |
tags |
string | No | Comma-separated tags for the media |
folderId |
string | No | ID of the folder to place the media in. If the folder is not found, the media goes to the workspace’s first folder. |
callbackUrl |
string | No | URL that replaces the workspace webhook’s destination for this media’s webhook events. It takes effect only when the workspace already has an active webhook for the event; on its own it does not create a webhook or send anything. |
fields |
array of object | No | Custom field values to attach to the media. Field IDs that do not belong to the workspace are ignored without an error. |
Behaviour
The Speak AI MCP server publishes these behaviour hints for upload_media.
- Can change data in your workspace.
- Can delete or overwrite data. Use with care.
- Repeating an identical call can have an extra effect.
- Can reach systems outside Speak AI.
Related
- Media lists the rest of the Media category.
- Tool reference lists every Speak AI MCP server tool.
- MCP server covers setup, supported clients, and what agents can do once connected.