🌙

Отправка медиа

Отправка медиа

Файл передаётся прямо в запросе через multipart/form-data — отдельный шаг загрузки не нужен.

Методы

МетодПоддерживаемые форматы
send_photojpg, jpeg, png, gif, webp, heic
send_videomp4, mov, webm, m4v
send_audiomp3, m4a, wav, ogg, webm
send_documentpdf, 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_idintID чата
mediastr, Path, bytes, file-likeФайл для отправки
captionstrОпционально: подпись к файлу
reply_to_message_idintОпционально: 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 просмотра