Найти - Пользователи
Полная версия: telegram bot
Начало » Python для новичков » telegram bot
1
Taulan22
Решил написать телеграмм бота который грузит видео с ютуба
Проблема в следующем то что видео вообще не грузит .
Или это проблема связано с библиотекой 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')
На картинке видно все
py.user.next
Taulan22
Решил написать телеграмм бота который грузит видео с ютуба
Для этого надо провести подготовительные действия. Сначала напиши скрипт отдельный, который грузит файл какой-нибудь из Интернета. Когда он у тебя готов, грузит файл и сохраняет его на диск, добавь этот скрипт в свой бот. Убедись, что бот скачивает этот файл, когда ты пользуешься этим ботом. Если у тебя получилось скачать файл через бот, то переходи к следующему этапу. Напиши скрипт отдельный, который скачивает файл с YouTube. Когда он у тебя готов, грузит файл и сохраняет его на диск, добавь этот скрипт в свой бот. Убедись, что бот скачивает этот файл, когда ты пользуешься этим ботом. Дальше ты получаешь результат, а подготовительные скрипты удаляешь.

Так вот мне неясно, например, ты всё это, выше перечисленное, проделал уже или ты пытаешься просто пальцем в небо скачать что-то ботом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB