import telebot
from yt_dlp import YoutubeDL
from telebot import types
import os
# Ваш токен от BotFather
TOKEN = ''
# Инициализация бота
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.reply_to(message, "Привет! Отправь мне ссылку на видео с YouTube, и я постараюсь скачать его.")
@bot.message_handler(func=lambda message: True)
def handle_youtube_link(message):
if message.text.startswith('http'):
try:
# Скачиваем видео
ydl_opts = {
'format': 'bestvideo+bestaudio/best',
'outtmpl': '%(title)s.%(ext)s',
'restrictfilenames': True,
'noplaylist': True,
'nocheckcertificate': True,
'ignoreerrors': False,
'logtostderr': False,
'quiet': True,
'no_warnings': True
}
with YoutubeDL(ydl_opts) as ydl:
info_dict = ydl.extract_info(message.text, download=False)
video_title = info_dict.get('title', None)
if video_title is not None:
filename = f"{video_title}.mp4"
ydl.download([message.text])
# Отправляем видео пользователю
with open(filename, 'rb') as video_file:
bot.send_video(message.chat.id, video=video_file, supports_streaming=True)
# Удаляем скачанный файл
os.remove(filename)
bot.reply_to(message, "Видео успешно отправлено!")
else:
bot.reply_to(message, "Не удалось найти видео по этой ссылке.")
except Exception as e:
print(f"Ошибка при обработке ссылки: {e}")
bot.reply_to(message, "Произошла ошибка при попытке скачать видео. Попробуйте еще раз позже.")
else:
bot.reply_to(message, "Это не выглядит как ссылка на YouTube. Пожалуйста, отправьте корректную ссылку.")
if __name__ == '__main__':
bot.polling()
бот выдает следующую ошибку: Ошибка при обработке ссылки: [Errno 2] No such file or directory: 'таблетки - апфс( кавер на гитаре).mp4'