Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2022, 18:05   #1
web developer
Пользователь
 
Регистрация: 04.06.2022
Сообщений: 62
По умолчанию telegram bot

Решил написать телеграмм бота который грузит видео с ютуба
Проблема в следующем то что видео вообще не грузит .
Или это проблема связано с библиотекой youtube.dl
Код:

youtube.py
# coding: utf8
from pyrogram.handlers import MessageHandler
import time
from pyrogram import Client,  filters
import logging
import requests
import download
import random
import os
import validation
logging.basicConfig(level=logging.INFO)
bot = Client(
    "ses1",
    api_id=12345, 
    api_hash="0123456789abcdef0123456789abcdef",
  workers = 5, 
  bot_token='123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11'
)



@bot.on_message(filters.command("start", ["!", "/"]))
def connect(chat, m):
	try:
		userID = m.chat.id
		bot.send_message(userID, 'Привет! Я умею скачивать видео из YouTube. Отправь мне ссылку — а я отправлю тебе скачанное видео')
	except Exception as e:
		print(e)


@bot.on_message(filters.text)
def get(chat, m):
	url=m.text	
	userID = m.chat.id
	try:
		VID_ID = ''
		VID_ID = validation.to_valid(url, VID_ID) #валидация регуляркой из validation.py
		bot.send_message(m.chat.id, 'Начинаем загрузку видео...')
		download.worker(VID_ID) #скачивание видео
		bot.send_video(m.chat.id, str(VID_ID) + '.mp4') #отправляем видео пользователю
		os.remove(VID_ID + '.mp4') #удаляем видео на диске в целях жкономии места
	except Exception as e:
		bot.send_message(m.chat.id, f'Что-то пошло не так! Ошибка `{e}`')	


bot.run()	

download.py
# coding: utf8
import youtube_dl 
import re

def worker(VID_ID):

	ydl_opts = {
		'max_filesize': 90000000000,
		'format': 'best',
		'outtmpl': VID_ID + '.mp4',
		'output': VID_ID + '.mp4',
		'quiet': True
	}
	with youtube_dl.YoutubeDL(ydl_opts) as ydl:
		ydl.download([VID_ID])
volidation.py
import re
def to_valid(url, VID_ID):
    youtube_urls_test = ['']
    youtube_urls_test.pop(0)
    youtube_urls_test.append(url)
    youtube_regex = (
        r'(https?://)?(www\.)?'
        '(youtube|youtu|youtube-nocookie)\.(com|be)/'
        '(watch\?v=|embed/|v/|.+\?v=)?([^&=%\?]{11})')
    youtube_regex_match = re.match(youtube_regex, url)
    VID_ID = youtube_regex_match.group(6)
    if youtube_regex_match != None:
        return VID_ID
    else:
        raise Exception('NOT_VALID_URL')
Изображения
Тип файла: png tel.png (82.7 Кб, 24 просмотров)

Последний раз редактировалось BDA; 19.08.2022 в 09:00.
web developer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Telegram-бот Daryaa Фриланс 4 16.05.2022 08:40
bot telegram TSwallow Python 4 29.09.2019 14:56
Telegram API PTyTb32 Общие вопросы Delphi 0 29.12.2017 12:30
telegram bot progmen Фриланс 2 30.11.2016 14:27