Отправка медиа
Отправка медиа
Файл передаётся прямо в запросе через multipart/form-data — отдельный шаг загрузки не нужен.
Методы
| Метод | Поддерживаемые форматы |
|---|---|
send_photo | jpg, jpeg, png, gif, webp, heic |
send_video | mp4, mov, webm, m4v |
send_audio | mp3, m4a, wav, ogg, webm |
send_document | pdf, zip, doc, docx и все форматы выше |
Максимальный размер файла: 300 МБ
Сигнатура
await bot.send_photo(chat_id, media, caption=None, reply_to_message_id=None)
await bot.send_video(chat_id, media, caption=None, reply_to_message_id=None)
await bot.send_audio(chat_id, media, caption=None, reply_to_message_id=None)
await bot.send_document(chat_id, media, caption=None, reply_to_message_id=None)
Параметры
| Параметр | Тип | Описание |
|---|---|---|
chat_id | int | ID чата |
media | str, Path, bytes, file-like | Файл для отправки |
caption | str | Опционально: подпись к файлу |
reply_to_message_id | int | Опционально: ID сообщения для ответа |
Возвращает: Message
Примеры
Путь к файлу (строка):
await bot.send_photo(chat_id, "photo.jpg", caption="Смотри!")
Path объект:
from pathlib import Path
await bot.send_document(chat_id, Path("report.pdf"))
Открытый файл:
with open("clip.mp4", "rb") as f:
await bot.send_video(chat_id, f, caption="Видео")
Байты:
data = open("song.mp3", "rb").read()
await bot.send_audio(chat_id, data)
Из хендлера — реакция на медиа:
@dp.message(filters.has_media("image"))
async def on_photo(msg):
await msg.answer(f"Получил фото: {msg.media_url}")
2 просмотра