Upload Media from URL
upload_mediaUpload media from direct, pre-signed, or social media URLs for asynchronous transcription and analysis.
Instructions
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.)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | 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. | |
| name | Yes | Display name for the media file | |
| tags | No | Comma-separated tags for the media | |
| fields | No | Custom field values to attach to the media | |
| folderId | No | ID of the folder to place the media in | |
| mediaType | Yes | Type of media: "audio" or "video" | |
| callbackUrl | No | Webhook callback URL for this specific upload | |
| description | No | Description of the media file | |
| sourceLanguage | No | BCP-47 language code for transcription, e.g. "en-US" or "he-IL" |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Response payload from the Speak AI API |