130600
This commit is contained in:
64
downinstagram(OLD).py
Normal file
64
downinstagram(OLD).py
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
||||
from aiogram.utils import executor
|
||||
import instaloader
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '5285575539:AAGu_qK23xq98fta1fJmV9oyDYoq9yhzeHM'
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_instagram_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Функция для скачивания видео с Instagram
|
||||
def download_instagram_video(url):
|
||||
L = instaloader.Instaloader()
|
||||
try:
|
||||
post = instaloader.Post.from_shortcode(L.context, url.split("/")[-2])
|
||||
if post.is_video:
|
||||
L.download_post(post, target="downloads")
|
||||
video_filename = next((f for f in os.listdir("downloads") if f.endswith('.mp4')), None)
|
||||
if video_filename:
|
||||
return os.path.join("downloads", video_filename)
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при скачивании видео: {e}")
|
||||
return None
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот для скачивания видео с Instagram. Отправьте ссылку на видео чтобы начать.")
|
||||
|
||||
# Обработчик получения ссылки на Instagram
|
||||
@dp.message_handler()
|
||||
async def handle_instagram_link(message: types.Message):
|
||||
link = message.text
|
||||
await message.reply("Видео скачивается, пожалуйста подождите...")
|
||||
|
||||
video_file = download_instagram_video(link)
|
||||
if video_file:
|
||||
with open(video_file, 'rb') as video:
|
||||
await bot.send_video(message.chat.id, video, caption="Вот ваше видео с Instagram")
|
||||
os.remove(video_file)
|
||||
else:
|
||||
await message.reply("Произошла ошибка при скачивании видео. Пожалуйста, попробуйте ещё раз.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
logger.info('Start polling.')
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
Reference in New Issue
Block a user