Задать вопрос
@loftyk

Как выложить видео в телеграмм боте?

6668c0c0a5640622407502.png
пишу своего телеграмм бота на telebot и когда пользователь нажимает на кнопку получить тренировки для женщины или мужчины, то у него долго грузятся видео, как сделать так, как на скриншоте, чтобы видео сразу появлялись и их можно было бы загрузить?
import telebot
from telebot import types
from telebot.types import KeyboardButton
from pytube import YouTube

bot = telebot.TeleBot('TOKEN')


@bot.message_handler(commands=['start'])
def start(message):
    markup = main_menu_markup()  # Используем функцию для создания разметки
    bot.send_message(message.chat.id,
                     'Привет, {0.first_name}! Я бот БезВреда, чем могу быть обязан?'.format(message.from_user),
                     reply_markup=markup)


def main_menu_markup():
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    item1 = types.KeyboardButton('Наши соцсети и сайт')
    item2 = types.KeyboardButton('Получить скидку')
    item3 = types.KeyboardButton('Задать вопрос по товару')
    item4 = types.KeyboardButton('Получить тренировки')
    markup.row(item1)
    markup.row(item2)
    markup.row(item3)
    markup.row(item4)
    return markup


photosm = ['https://ibb.co/MkrwBBD', 'https://ibb.co/T0NQ9Dc', 'https://ibb.co/DpdQ3gV', 'https://ibb.co/wwW6P2n',
           'https://ibb.co/xCT8hcZ', 'https://ibb.co/VvK9phm', 'https://ibb.co/0XKdyyZ', 'https://ibb.co/p3SLS8V',
           'https://ibb.co/nPx51Mv', 'https://ibb.co/74nXhRW', 'https://ibb.co/mtqy69b', 'https://ibb.co/qpvdmPy']
photosw = ['https://ibb.co/DWkrq3X', 'https://ibb.co/K6j5QfC', 'https://ibb.co/CKMPWYs', 'https://ibb.co/FXH4kJP',
           'https://ibb.co/WB28DTc', 'https://ibb.co/Pt6HRbT', 'https://ibb.co/CMmqFxx', 'https://ibb.co/mFXrXf6',
           'https://ibb.co/X3zqd4j', 'https://ibb.co/k3bkn5Q', 'https://ibb.co/3zyXv9f', 'https://ibb.co/q5kY9TQ',
           'https://ibb.co/Jn4FqW2']
videow = ['https://youtu.be/zB7DVYSltGM?si=ldHqem6B4FfW1nEN', 'https://youtu.be/cYmmA3UOCnk?si=AST3dBqX56OWL1zM',
          'https://youtu.be/8BS9MPIEn_o?si=KqIkA43KbxcFXqtE', 'https://youtu.be/gif2xzzGcT0?si=Fh9oeAXkFPXLHv4K',
          'https://youtu.be/nNG4zOgOLCw?si=DkhW_1mxbZcLoKZX', 'https://youtu.be/D53V5HF9JRc?si=HKgKf7vlWEYI-g-O',
          'https://youtu.be/Fp4FxZiDvLI?si=L-qdY9vYCOrKriUR', 'https://youtu.be/eeMV_OMKm8Y?si=Etmqcx4jrhJ8zt4M',
          'https://youtu.be/Hh0XdqNWPPY?si=cOWBywjbeI6pTAe1', 'https://youtu.be/7cyRSkiOBTM?si=orHY4wTEbWtWLAqn',
          'https://youtu.be/H3dTGZyF6Rg?si=lB9mCm2px9ZFw8bI', 'https://youtu.be/rar8LZx-qQ8?si=CNIPXpTlneoN1LXj',
          'https://youtu.be/E2gzxNek918?si=FB5OnjdpXNhyFKDU', 'https://youtu.be/wMKigF6ravQ?si=T5Cvnv-kLehtxknS',
          'https://youtu.be/7q93t7Ev4j8?si=1Y2p0Poq4sVva9K2', 'https://youtu.be/JDx-Ggm3oWk?si=R5_BY7ZoIEu3Bl5m']
videom = ['https://youtu.be/rBnsfJQm3hI?si=jHkYZsjD5BghMna9', 'https://youtu.be/rI2K0aIcevY?si=HhOwPtWike2ynlfI',
          'https://youtu.be/bN7MHzqL7qM?si=MIfCqPRQz_YaHjX0', 'https://youtu.be/Im5zP08xkd8?si=ueVvQeXC7jPjCoG8',
          'https://youtu.be/qPM5Ce7fzRI?si=sPM_f-dKhqm_KGb_', 'https://youtu.be/Ts9HaWcCBx8?si=UmaYY_1IClbr9NJI',
          'https://youtu.be/zB7DVYSltGM?si=nwNO5kHwkH_7EVh1', 'https://youtu.be/cYmmA3UOCnk?si=B6BZaFuqAYyi1uh8',
          'https://youtu.be/TxwfsYfjUjQ?si=RCORQa4ncgI6wcCN', 'https://youtu.be/Wds8doK8TAs?si=PreXR2GSehxD0LNA',
          'https://youtu.be/nNG4zOgOLCw?si=QIjfpI-215R1fQO2', 'https://youtu.be/4-7MtP1LzDc?si=WNt7rqeuQuKjXnHV',
          'https://youtu.be/C9sde0W-ccc?si=1cjNSSek0j8KW4IW', 'https://youtu.be/rZQbiLKjX0Q?si=KuUx8tRZGUCJtDd3',
          'https://youtu.be/Hh0XdqNWPPY?si=CvnS4QmN9L0wQELK', 'https://youtu.be/7cyRSkiOBTM?si=lUcTJRWPDh13tduS',
          'https://youtu.be/MvGMzovqTvc?si=gxsAmK3M3Lo80x-2', 'https://youtu.be/srgu9Slf5Oc?si=8AlXQSj2VCmB8FU5',
          'https://youtu.be/E2gzxNek918?si=AHoukyC9dmaUhAVr', 'https://youtu.be/wMKigF6ravQ?si=oretIPEa-S0LDOcE']


def send_youtube_video(chat_id, video_url):
    yt = YouTube(video_url)
    video = yt.streams.filter(file_extension='mp4').first()
    video.download(filename='video.mp4')
    video_file = open('video.mp4', 'rb')
    bot.send_video(chat_id, video_file)
    video_file.close()


@bot.message_handler(content_types=['text'])
def bot_message(message):
    if message.chat.type == 'private':
        if message.text == 'Наши соцсети и сайт':
            keyboard = types.InlineKeyboardMarkup()
            url_btn = types.InlineKeyboardButton(text='Наш сайт', url='https://bezvreda.shop/')
            url_btn1 = types.InlineKeyboardButton(text='Ozon', url='https://www.ozon.ru/category/varene-31561/bezvreda-101005855/')
            url_btn2 = types.InlineKeyboardButton(text='Wildberries', url='https://www.wildberries.ru/brands/310609804-bezvreda')
            url_btn3 = types.InlineKeyboardButton(text='Instagram', url='https://www.instagram.com/bezvreda.shop?igsh=OHhmYzFlbm5uMHp1')
            url_btn4 = types.InlineKeyboardButton(text='Яндекс Маркет', url='https://market.yandex.ru/business--otel-park-krestovskii-restoran/110479582')
            url_btn5 = types.InlineKeyboardButton(text='ВКонтакте', url='https://vk.com/bezvreda.shop')
            keyboard.row(url_btn)
            keyboard.row(url_btn1)
            keyboard.row(url_btn2)
            keyboard.row(url_btn3)
            keyboard.row(url_btn4)
            keyboard.row(url_btn5)

            bot.send_message(message.chat.id, 'Пожалуйста, мы много где есть', reply_markup=keyboard)

        elif message.text == "Получить скидку":
            bot.send_message(message.chat.id, 'Введите промокод ILYA и получите скидку в размере 100 рублей')

        elif message.text == 'Задать вопрос по товару':
            bot.send_message(message.chat.id, "все четко")

        elif message.text == 'Назад':
            markup = main_menu_markup()  # Используем функцию для создания разметки
            bot.send_message(message.chat.id, 'Вы вернулись в главное меню. Выберите опцию:', reply_markup=markup)

        # Добавляем обработку для 'Получить тренировки'
        elif message.text == 'Получить тренировки':
            markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
            item1: KeyboardButton = types.KeyboardButton('Получить тренировки для женщин')
            item2 = types.KeyboardButton('Получить тренировки для мужчин')
            item3 = types.KeyboardButton('Назад')
            markup.row(item1)
            markup.row(item2)
            markup.row(item3)
            bot.send_message(message.chat.id, f'Выберите категорию тренировок:', reply_markup=markup)

        elif message.text == 'Получить тренировки для женщин':
            for photo_url in photosw:
                bot.send_photo(message.chat.id, photo_url)
            for video_url in videow:
                send_youtube_video(message.chat.id, video_url)

        elif message.text == 'Получить тренировки для мужчин':
            for photo_url in photosm:
                bot.send_photo(message.chat.id, photo_url)
            for video_url in videom:
                send_youtube_video(message.chat.id, video_url)


bot.polling(none_stop=True)
  • Вопрос задан
  • 179 просмотров
Подписаться 2 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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