Sends a video to a user, group, or channel.
💡 Upload the file to the nandbox media server first and use the returned
media_idas thevideovalue.
A video with no soundtrack is delivered as an animated GIF — it comes back under a
gifkey with"type": "gif"instead ofvideo.
method is "sendVideo".
| Field | Type | Required | Description |
|---|---|---|---|
chat_id |
String | Yes | The target chat or user. |
video |
String | Yes | The media_id returned when you uploaded the video. The delivered message includes a streaming download link. |
app_id |
String | Yes | The app the message belongs to. |
reference |
Long | Yes | Your local id for the message. Echoed back in messageAck so you can match them up. |
caption |
String | Optional | Caption shown under the video, 0–256 characters. |
to_user_id |
String | Optional | Target a single user inside a group or channel. |
reply_to_message_id |
String | Optional | Set this to send the video as a reply to an existing message. |
echo |
Integer | Optional | 1 returns a copy of the sent message to you. Default 0. |
web_page_preview |
Integer | Optional | 1 disable preview · 2 hide the link · 3 instant view · 4 instant view without the link. |
disable_notification |
Boolean | Optional | Deliver silently — the user gets no notification sound. |
menu_ref |
String | Optional | Attach an existing predefined menu, shown inline beneath the message. |
inline_menu |
Array of Menu | Optional | Attach a menu defined inline. Takes priority over menu_ref if both are set. |
chat_settings |
Integer | Optional | 1 routes the message to the Bot Manager, used for admin-only communication. |
Your API needs the right permission, and the right standing in the chat.
| Requirement | Needed for |
|---|---|
"Send Message" permission |
Sending at all. |
"Reply to Message" permission |
Only when using reply_to_message_id. |
| Chat type | Your API must be |
| --- | --- |
| User chat | Already started by the user |
| Group | A member |
| Channel | An admin |
| When | Method | What it tells you |
|---|---|---|
| Always | messageAck |
The server accepted the message. Carries the new message_id and echoes your reference. |
If echo = 1 |
message |
A full copy of the message as it was sent. |
| User chats only | messageDelivered |
The user's device received it. |
| User chats only | messageSeen |
The user opened it. |
| SDK | Call | Callback |
|---|---|---|
| Java | api.sendVideo(chatId, videoFileId, reference, caption, appId); |
onMessagAckCallback(MessageAck msgAck) |
| JavaScript | api.sendVideo(chatId, videoFileId, reference, caption, appId); |
onMessagAckCallback(msgAck) |
| Python | napi.send_video(chat_id=chat_id, video_file_id=video_file_id, reference=reference, caption=caption, app_id=app_id) |
on_message_ack_callback(self, msg_ack) |
{
"method": "sendVideo",
"chat_id": "90089584764538542",
"video": "null0500528c7c90a28738dda631057914e9d1cde789e8ca180f40798aacc8830eb9.mp4",
"reference": 111111132,
"app_id": "90090684293000559",
"echo": 1
}
String uploadedVideoId = MediaTransfer.uploadFile(TOKEN, filePath);
api.sendVideo(chatId, uploadedVideoId, reference, caption, appId);
MediaTransfer.uploadFile(TOKEN, filePath, config.UploadServer)
.then((uploadedVideoId) => {
api.sendVideo(chatId, uploadedVideoId, reference, caption, appId);
})
.catch((e) => console.log("Upload failed", e));
napi.send_video(chat_id=chat_id, video_file_id=uploaded_video_id, reference=Utils.get_unique_id(), caption=caption, app_id=app_id)