@neuro4live

Как отправить файлы в телеграм канал с помощью бота?

Здравствуйте. У меня есть телеграм бот, который создает записи в канале: публикует видео (более 50 мб) и скриншоты к нему. Видео загружено заранее и прислано боту. У меня есть скрипт который умеет присылать file_id этого видео, соответственно с помощью этого id можно отправлять файл дальше. Скрипт, который отправляет видео в канал, состоит из двух частей: Первая которая позволяет получить файл айди. Вторая, которая уже создает запись в канале. С помщью функции return, я пытаюсь передать файл айди второй части скрипта. Бибилиотеки pytelegrambotAPI Вот код:
import telebot
from telebot.types import InputMediaPhoto, InputMediaVideo

bot = telebot.TeleBot('токкен бота')


@bot.message_handler(content_types=['video'])
def command_handle_video(message):
  bot.send_message(message.chat.id, message.video.file_id)
  return(bot.send_message)



c=chat_id = 'айди канала'
d = open('/home/roman/Изображения/123.png', 'rb')
f = command_handle_video(message)


bot.send_media_group(c,
                    [InputMediaPhoto(d, caption='описание видео'),
                     InputMediaVideo(f)])


Когда я запускаю скрипт, то получаю вот такую ошибку:
Traceback (most recent call last):
File "/home/roman/PycharmProjects/pythonProject8/main.py", line 18, in
f = command_handle_video(message)
NameError: name 'message' is not defined

Файл айди в ответ не приходит. У меня есть скрипт, который умеет присылать файл айди и записывать его в текстовой файл, потом его оттуда можно прочитать и отправить, но хочется обойтись без сохранения в файл, поэтому решил использовать функции return. Пожалуйста подскажите где ошибка. Заранее спасибо
  • Вопрос задан
  • 1092 просмотра
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Почему не
@bot.message_handler(content_types=['video'])
def command_handle_video(message):
  bot.send_message(message.chat.id, message.video.file_id)
  d = open('/home/roman/Изображения/123.png', 'rb')
  bot.send_media_group('айди канала',
                    [InputMediaPhoto(d, caption='описание видео'),
                     InputMediaVideo(message.video.file_id)])

?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы