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

Как решить ошибку в боте тг?

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'
  • Вопрос задан
  • 40 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
Lord_of_Rings
@Lord_of_Rings
Дунадан - северный странник. Злой, но очень добрый
Имя файла, генерируемое ytdlp отличается от того, которое вы ожидаете, потому что он убирает из названия недопустимымые символы. filename замените filename = ydl.prepare_filename(info_dict) и всё должно заработать
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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