Send Video π½
Ship your finished render straight to a Telegram chat
- bot
- video
- trigger
- message
- message_id
- trigger
This is the node you reach for the moment your video workflow stops being an experiment and starts producing things you actually want on your phone. Send Video takes the file your Video Helper Suite just assembled and posts it to a Telegram chat as a video, an animation, or a raw file. For anyone doing video-to-Telegram pipelines - sending previews to a private group, delivering a finished clip to a client chat - this is the payoff node of the whole pack.
How it works
The important thing to understand first: the video input is not an image or a path string. It's VHS_FILENAMES, the custom type that Video Helper Suite outputs from its Video Combine node (the "Filenames" output). That's the single most common mistake people make here - they try to feed the video frames or a raw file path and the input refuses to connect. You need Video Helper Suite installed and a Video Combine node in your graph.
When the node runs, it takes that VHS_FILENAMES tuple, grabs the last non-.png path in it (your actual video file), guesses the mimetype, and POSTs the bytes to Telegram's API as a multipart upload. The send_as enum decides the endpoint: Animation (the looping, GIF-style preview - great for short clips), Video (a regular video message), or File (sent as a document with no re-compression, the one to pick if you want to preserve your render exactly).
Inputs that matter
video- theVHS_FILENAMESfrom Video Combine.send_as- Animation / Video / File.captionandparse_mode- caption text, with HTML or Markdown available for formatting.disable_notification- defaults to true, so the clip arrives silently. Flip it off if this is a deliverable people are waiting on.
The rest are the standard Telegram flags: show_caption_above_media, has_spoiler (blurs the clip until tapped), protect_content (blocks forwarding/saving), and message_thread_id for forum topics (-1 = none). All default to something sensible.
Outputs
message (DICT - Telegram's full response), message_id (INT - keep it if you want to edit the caption later), and trigger for execution-order control.
Install and gotchas
Pack install is the usual Manager-or-clone:
cd ComfyUI/custom_nodes
git clone https://github.com/SwissCore92/comfyui-telegram-suite.git
cd comfyui-telegram-suite
pip install -r requirements.txt
Then make sure Video Helper Suite is also installed, your bot token and chat id are in config.json, and you've restarted. Two real-world gotchas. Telegram caps bot uploads (roughly 50 MB on the public API), so a long, high-bitrate render can be rejected - keep previews short or send them as File and stay under the cap. And because the node grabs the last non-png path from the VHS output, make sure Video Combine's output is actually a single video file; if your VHS setup leaves stray intermediate files, you might be surprised by which one goes out.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| bot | TELEGRAM_BOT | Telegram bot instance | |
| chat_id | INT | Unique identifier for the target chat | |
| video | VHS_FILENAMES | the video to send (VHS) | |
| caption | STRING | Media caption, 0-1024 characters after entities parsing | |
| parse_mode | COMBO | Mode for parsing entities in the photo caption. See https://core.telegram.org/bots/api#formatting-options for more details. | |
| show_caption_above_media | BOOLEAN | false | Pass True, if the caption must be shown above the message media |
| has_spoiler | BOOLEAN | false | Pass True if the media needs to be covered with a spoiler animation |
| disable_notification | BOOLEAN | true | Sends the message silently. Users will receive a notification with no sound. |
| protect_content | BOOLEAN | false | Protects the contents of the sent message from forwarding and saving |
| send_as | COMBO | How to send the video | |
| message_thread_id | INT | -1-1β9223372036854776000 | Unique identifier for the target message thread of the forum topic (-1 = None) |
| triggeropt | * | Optional trigger to enforce execution order |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| message | DICT | β |
| message_id | INT | β |
| trigger | * | β |