ТГ Бот не может отправить видео

Рейтинг: 0Ответов: 1Опубликовано: 21.08.2023
import random 
import os
import re
import asyncio
from aiogram import Bot, Dispatcher, types, executor
from pytube import YouTube
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram.dispatcher import FSMContext
from aiogram.contrib.middlewares.logging import LoggingMiddleware

storage = MemoryStorage()
bot = Bot(token=Token)
dp = Dispatcher(bot, storage=storage)
dp.middleware.setup(LoggingMiddleware())

@dp.message_handler(commands=["download"])
async def start_download(message: types.Message, state: FSMContext):
   await message.answer("Введите URL видео на YouTube для скачивания:")
   await DownloadState.waiting_for_url.set()


@dp.message_handler(state=DownloadState.waiting_for_url)
async def process_video_url(message: types.Message, state: FSMContext):
   video_url = message.text
   try:
       video_info = YouTube(video_url)
       video_title = re.sub(r'[/:"*?<>|]', '_', video_info.title)
       video_file_absolute = os.path.abspath(os.path.join(os.path.dirname(__file__), "videos", 
       f"{video_title}.mp4"))

       os.makedirs(os.path.join(os.path.dirname(__file__), "videos"), exist_ok=True)

       print("Скачивание видео...")
       await asyncio.to_thread(video_info.streams.get_highest_resolution().download, 
       output_path="videos")
       print("Скачивание завершено.")

       print("Отправка видео...")
       with open(video_file_absolute, 'rb') as video_opened:
           await bot.send_video(message.chat.id, video=video_opened)
       print("Отправка завершена.")

       await message.answer("Видео успешно отправлено!")

   except Exception as e:
       print("Ошибка при скачивании и отправке видео:", e)
       await message.answer("Ошибка при скачивании и отправке видео. Пожалуйста, убедитесь, что URL корректен.")

   await state.finish()

Есть вот такой телеграмм бот который должен скачивать по url из ютуба, бот скачивает видео на сервер, но не может её отправить Логи: Скачивание видео... Скачивание завершено. Отправка видео... Ошибка при скачивании и отправке видео:[Errno 2] No such file or directory:'название видео'

Ответы

▲ 1Принят
import io

video_buffer = io.BytesIO()
# Скачиваем
video_info.streams.get_highest_resolution().stream_to_buffer(video_buffer)
# Отправляем
await bot.send_video(message.chat.id, video=video_buffer)