Telegram Bot API 10.3 ephemeral sendVideo with a Sume clip
Bot API 10.3 adds ephemeral_message_parameters to sendVideo. Send a finished Sume artifact URL from your webhook handler; steps, retries and limits.

Wait for the Sume job's terminal webhook, take the media.sume.com artifact url from the payload, and pass it to sendVideo with the new ephemeral_message_parameters field. Sume produces the file; whether and how Telegram shows it as ephemeral is defined by Telegram's Bot API 10.3 changelog.
What changed in Bot API 10.3?
The changelog adds the class EphemeralMessageParameters and replaces the parameters receiver_user_id and callback_query_id in methods including sendMessage, sendPhoto, sendVideo and sendVoice with one parameter, ephemeral_message_parameters. It also adds replace_callback_query_message, which lets a bot show an ephemeral message in place of the original, and editEphemeralMessageMedia, which supports uploading new files.
| Item | As written in the changelog |
|---|---|
ephemeral_message_parameters | Replaces receiver_user_id and callback_query_id on send methods |
replace_callback_query_message | Shows an ephemeral message in place of the original |
editEphemeralMessageMedia | Supports upload of new files |
Where does the video URL come from?
Completed Sume jobs can include public artifacts under https://media.sume.com, and the webhook payload carries them as payload.artifacts[].url. Sume-owned artifact URLs are the public contract, so use those, not provider links. Webhook URLs must be public HTTPS; localhost and private-network URLs are rejected, so your bot server needs a public endpoint. See Job webhooks.
What happens if my bot handler is slow or down?
Sume retries a job webhook up to 10 attempts, with a 10s timeout per attempt. So acknowledge quickly, store the event, and call Telegram afterward. Dedupe on job_id so a retry does not send the clip twice, and keep status_url polling as the fallback for deliveries that never arrive.
What should I check before sending?
Confirm the event is job.completed, verify the signature, and check Telegram's own file limits in its documentation; this post does not state them. For a non-ephemeral flow, see Telegram bot AI video generation.
Sources
Related posts
More in Integrations
- Trigger.dev pause concurrency limit vs Sume queue_full 429
Pausing a Trigger.dev concurrency limit stops dequeues, so nothing new reaches Sume. If Sume returns queue_full, back off with retry-after.
- VS Code 1.138 Codex and MCP tools: one Sume server entry
VS Code 1.138 lets Codex use VS Code's built-in, extension and MCP tools. Add Sume as one remote MCP server at mcp.sume.com and verify with tools_list.
- VS Code 1.140 multi-folder sessions: where to put the Sume MCP entry
VS Code 1.140 lets each chat use its own folder or worktree, and reads MCP servers from a global file or a workspace .mcp.json. Put Sume in the global one.
- VS Code remote delegation: whose Sume credit is used?
VS Code 1.140's remote delegation tools are off by default and normal approvals still apply. Sume spend follows the credential the session connects with.
Written by Sume