130600
This commit is contained in:
71
downyoutube(OLD).py
Normal file
71
downyoutube(OLD).py
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.utils import executor
|
||||
from pytube import YouTube, request
|
||||
import youtube_dl
|
||||
import yt_dlp as youtube_dl
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '564432189:AAEF5uBBZZ3VLUl-njjwzDRlqF4HCA9ceGo'
|
||||
|
||||
# Путь к файлу cookies.txt
|
||||
COOKIES_FILE = 'cookies.txt'
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот для скачивания видео с YouTube. Отправьте команду /download чтобы начать.")
|
||||
|
||||
|
||||
# Обработчик команды /download
|
||||
@dp.message_handler(commands=['download'])
|
||||
async def prompt_for_link(message: types.Message):
|
||||
await message.reply("Пожалуйста, отправьте ссылку на видео или Shorts с YouTube.")
|
||||
|
||||
|
||||
# Обработчик получения ссылки на YouTube
|
||||
@dp.message_handler()
|
||||
async def download_youtube_video(message: types.Message):
|
||||
link = message.text
|
||||
|
||||
try:
|
||||
ydl_opts = {
|
||||
'outtmpl': '%(title)s.%(ext)s',
|
||||
'cookies': COOKIES_FILE,
|
||||
}
|
||||
|
||||
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
|
||||
info_dict = ydl.extract_info(link, download=True)
|
||||
video_file = ydl.prepare_filename(info_dict)
|
||||
|
||||
await message.reply("Видео скачивается, пожалуйста подождите...")
|
||||
|
||||
with open(video_file, 'rb') as video:
|
||||
await bot.send_video(message.chat.id, video, caption="Вот ваше видео с YouTube")
|
||||
|
||||
os.remove(video_file)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при скачивании видео: {e}")
|
||||
await message.reply("Произошла ошибка при скачивании видео. Пожалуйста, попробуйте ещё раз.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
logger.info('Start polling.')
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
Reference in New Issue
Block a user