Отправка больших файлов telebot python
необходимо загрузить аудиокниги в канал телеграмма. Файлы до 50 мб загружаются без проблем но большие файлы выдают ошибку. Так же нужно что бы к сообщению с файлом был текст с описанием книги, есть файл с информацией о книге. Но как сделать это одним сообщением не понимаю... мой код:
import telebot
from config import bot_api
bot = telebot.TeleBot(bot_api)
chat_id = 1625428779
def telegram_audio(file):
audio = open(file, 'rb')
# bot.send_audio(message.chat.id, audio)
bot.send_audio(chat_id, audio)
audio.close()
if __name__ == '__main__': telegram_audio('C:\\Users\Zoombi\\sel_proba\\Бизнес\\Банк России. Аудиолекции Финансовая культура. Часть 1.mp3')
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Пример с большим файлом в конце, а пока разберемся с отправкой сообщений. Пример:
import telebot
bot = telebot.TeleBot('TOKEN')
chat_id = CHAT_ID
# Описание книги - caption
book_description = "Описание книги."
# Путь к изображению
image_path = r'C:\Users\Amgarak\Desktop\озшпр.png'
# Путь к файлу книги
file_path = r'C:\Users\Amgarak\Desktop\input.txt'
# Отправка сообщения с изображением
with open(image_path, 'rb') as image:
photo_message = bot.send_photo(chat_id=chat_id, photo=image, caption=book_description)
# Отправка файла с описанием и цитированием отправленного ранее сообщения с изображением \ можно убрать цитирование, но это как пример
with open(file_path, 'rb') as file:
sent_message = bot.send_document(chat_id=chat_id, document=file, caption=book_description, reply_to_message_id=photo_message.message_id)
edited_caption = "Новое описание книги."
# Метод edit_message_caption для изменения ранее отправленного сообщения
bot.edit_message_caption(chat_id=chat_id, message_id=sent_message.message_id, caption=edited_caption)
# URL изображения
photo_url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Stack_Overflow_logo.svg/200px-Stack_Overflow_logo.svg.png'
# HTML-разметка Подпись\Изображение
message_text = f'<a href="{photo_url}">​</a> Описание' # ​ или пробел между тегами "> <"
# Сообщение с HTML-разметкой
bot.send_message(chat_id=chat_id, text=message_text, parse_mode='HTML')
# Путь к аудио
audio_path = r'C:\Users\Amgarak\Desktop\loading.mp3'
# Описание аудио
audio_description = 'Это аудио книга с описанием'
# Отправка аудио с описанием
with open(audio_path, 'rb') as audio:
bot.send_audio(chat_id=chat_id, audio=audio, caption=audio_description, parse_mode='Markdown')
Что бы отправить файлы большого размера(больше 50 мб):
- Останавливаем бота.
- Сами отправляем боту нужный файл большого размера, через сообщения.
- После загрузки файла вбиваем в браузер https://api.telegram.org/bot<ваш_токен>/getUpdates
- Ищем словарь
"document" - Нас интересует строка формата
"file_id":"BQACAgIAAxkBAAOnZa_KdOYkK6AvlXhetbUnXG-AiWcAAuc4AAIjWYFJUokbePqOh840BA"- копируемidфайла.
max_size_description = "big file"
file ='BQACAgIAAxkBAAOnZa_KdOYkK6AvlXhetbUnXG-AiWcAAuc4AAIjWYFJUokbePqOh840BA'
bot.send_document(chat_id=chat_id, document=file, caption=max_size_description)



