---
title: "Upload Media from URL"
description: "Upload media from a URL: a direct/public file URL, a pre-signed S3 URL, or a shareable social/video link (YouTube, Instagram, TikTok, X, Facebook, Reddit, SoundCloud, and similar) which Speak resolves to the underlying media automatically."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.speakai.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload Media from URL

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 link
(YouTube, Instagram, TikTok, X, Facebook, Reddit, SoundCloud, and similar) 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 link (YouTube, Instagram, TikTok, X, Facebook, Reddit,
SoundCloud, and similar) which Speak resolves to the underlying media automatically.
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`. (Vimeo links are not yet supported.)

## Parameters

`upload_media` takes 9 parameters, 3 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 (e.g. an Instagram reel or TikTok URL): page links are resolved to the underlying media server-side. |
| `mediaType` | enum | Yes | Type of media: "audio" or "video" |
| `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](/mcp/tools/media/) lists the rest of the Media library category.
- [Tool reference](/mcp/tools/) lists every Speak AI MCP server tool.
- [MCP server](/mcp/) covers setup, supported clients, and what agents can do once
  connected.

Source: https://docs.speakai.co/mcp/tools/media/upload_media/index.mdx
