send_video()#
- Client.send_video()#
Send video files.
Note
Starting December 1, 2024 messages with video that are sent, copied or forwarded to groups and channels with a sufficiently large audience can be automatically scheduled by the server until the respective video is reencoded. Such messages will have
scheduled
property set and beware of using the correct Message Identifiers when using suchMessage
objects.- Parameters:
chat_id (
int
|str
) – Unique identifier (int) or username (str) of the target chat. For your personal cloud (Saved Messages) you can simply use “me” or “self”. For a contact that exists in your Telegram address book you can use his phone number (str).video (
str
|io.BytesIO
) – Video to send. Pass a file_id as string to send a video that exists on the Telegram servers, pass an HTTP URL as a string for Telegram to get a video from the Internet, pass a file path as string to upload a new video that exists on your local machine, or pass a binary file-like object with its attribute “.name” set for in-memory uploads.caption (
str
, optional) – Video caption, 0-1024 characters.parse_mode (
ParseMode
, optional) – By default, texts are parsed using both Markdown and HTML styles. You can combine both syntaxes together.caption_entities (List of
MessageEntity
) – List of special entities that appear in the caption, which can be specified instead of parse_mode.show_caption_above_media (
bool
, optional) – Pass True, if the caption must be shown above the message media.duration (
int
, optional) – Duration of sent video in seconds.width (
int
, optional) – Video width.height (
int
, optional) – Video height.thumb (
str
|io.BytesIO
, optional) – Thumbnail of the video sent. The thumbnail should be in JPEG format and less than 200 KB in size. A thumbnail’s width and height should not exceed 320 pixels. Thumbnails can’t be reused and can be only uploaded as a new file.has_spoiler (
bool
, optional) – Pass True if the video needs to be covered with a spoiler animation.supports_streaming (
bool
, optional) – Pass True, if the uploaded video is suitable for streaming. Defaults to True.disable_notification (
bool
, optional) – Sends the message silently. Users will receive a notification with no sound.protect_content (
bool
, optional) – Pass True if the content of the message must be protected from forwarding and saving; for bots only.allow_paid_broadcast (
bool
, optional) – Pass True to allow the message to ignore regular broadcast limits for a small fee; for bots onlymessage_thread_id (
int
, optional) – If the message is in a thread, ID of the original message.business_connection_id (
str
, optional) – Unique identifier of the business connection on behalf of which the message will be sent.send_as (
int
|str
) – Unique identifier (int) or username (str) of the chat or channel to send the message as. You can use this to send the message on behalf of a chat or channel where you have appropriate permissions. Use theget_send_as_chats()
to return the list of message sender identifiers, which can be used to send messages in the chat, This setting applies to the current message and will remain effective for future messages unless explicitly changed. To set this behavior permanently for all messages, useset_send_as_chat()
.message_effect_id (
int
64-bit
, optional) – Unique identifier of the message effect to be added to the message; for private chats only.reply_parameters (
ReplyParameters
, optional) – Description of the message to reply toreply_markup (
InlineKeyboardMarkup
|ReplyKeyboardMarkup
|ReplyKeyboardRemove
|ForceReply
, optional) – Additional interface options. An object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.ttl_seconds (
int
, optional) – The message will be self-destructed in the specified time after its content was opened. The message’s self-destruct time, in seconds; must be between 0 and 60 in private chats.view_once (
bool
, optional) – Pass True if the message should be opened only once and should be self-destructed once closed; private chats only.file_name (
str
, optional) – File name of the video sent. Defaults to file’s path basename.mime_type (
str
, optional) – no docs!cover (
str
|io.BytesIO
, optional) – Cover of the video; pass None to skip cover uploading.start_timestamp (
int
, optional) – Timestamp from which the video playing must start, in seconds.schedule_date (
datetime
, optional) – Date when the message will be automatically sent.progress (
Callable
, optional) – Pass a callback function to view the file transmission progress. The function must take (current, total) as positional arguments (look at Other Parameters below for a detailed description) and will be called back each time a new file chunk has been successfully transmitted.progress_args (
tuple
, optional) – Extra custom arguments for the progress callback function. You can pass anything you need to be available in the progress callback scope; for example, a Message object or a Client instance in order to edit the message with the updated progress status.
- Other Parameters:
current (
int
) – The amount of bytes transmitted so far.total (
int
) – The total size of the file.*args (
tuple
, optional) – Extra custom arguments as defined in theprogress_args
parameter. You can either keep*args
or add every single extra argument in your function signature.
- Returns:
Message
|None
– On success, the sent video message is returned, otherwise, in case the upload is deliberately stopped withstop_transmission()
, None is returned.
Example
# Send video by uploading from local file await app.send_video("me", "video.mp4") # Add caption to the video await app.send_video("me", "video.mp4", caption="video caption") # Send self-destructing video await app.send_video("me", "video.mp4", ttl_seconds=10) # Send view-once video await app.send_video("me", "video.mp4", view_once=True) # Keep track of the progress while uploading async def progress(current, total): print(f"{current * 100 / total:.1f}%") await app.send_video("me", "video.mp4", progress=progress)