ТГ бот, загрузчик не может отправить видео
import os
from aiogram import Bot, Dispatcher, types, executor
from pytube import YouTube
import config
bot = Bot(config.TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(content_types=['text'])
async def result(message: types.Message):
link = message.text
yt = YouTube(link)
await message.answer(f"Title: {yt.title}\nViews: {yt.views}")
yt.streams.get_highest_resolution().download("FileVideos")
file_path = r'C:/Users/Admin/Desktop/DownloaderVideo/FileVideos/' + f'{yt.title}.mp4'
with open(file_path, 'rb') as file:
text = file.read(file)
await bot.send_video(message.chat.id, text)
os.remove()
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Этот код сохраняет видео у себя потом пытаеться отправить пользователю но не получаеться выводить такую ошибку:
...
File "c:\Users\Admin\Desktop\DownloaderVideo\main.py", line 19, in result
with open(file_path, 'rb') as file:
FileNotFoundError: [Errno 2] No such file or directory:
'C:/Users/Admin/Desktop/DownloaderVideo/FileVideos/The items gone... There is nothing we can
do....mp4'
Ответы (3 шт):
Автор решения: Axel
→ Ссылка
Там же написно
FileNotFoundError: [Errno 2] No such file or directory:
Такого файла нет или он не найден. Измени название например на "video1.mp4", питон не любит тучу точек
Автор решения: NTA
→ Ссылка
Все же, лучше попытаться на более простом варианте (без использования бота и ютуба), а поработать именно над открытием. Я написал новый код именно к этой части, и у меня заработало и ошибка не появилась
file_path = r'C:/Users/Admin/Videos/Movavi Screen Recorder/p1.mkv'
with open(file_path, 'rb') as file:
text = file.read()
print(text)
Вероятно, проблема из-за того, что python сохранил файл под другим именем или не сохранил вообще.
Автор решения: Типо Прогер
→ Ссылка
Я тут хорошо подумал и заменил:
file_path = r'C:/Users/Admin/Desktop/DownloaderVideo/FileVideos/' + f'{yt.title}.mp4'
with open(file_path, 'rb') as file:
text = file.read(file)
await bot.send_video(message.chat.id, text)
os.remove()
На это:
video = yt.streams.get_highest_resolution().download()
await bot.send_video(message.chat.id, types.InputFile(video))
os.remove(video)