import telebot
import subprocess
import glob
import os
bot = telebot.TeleBot('')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id,'Вствляем линк на видое из Youtube/VK бот скачивает видео и высылает как аудио с минимальным размером')
@bot.message_handler(func=lambda message: True)
def pod_link(message):
try:
bot.send_message(message.chat.id,'[+] Скачиваю')
# Скачиваем аудио в формате м4а.
subprocess.run(['yt-dlp','-S',"+size,+br,+res,+fps",'-x','--audio-format','m4a',str(message.text),'--ffmpeg-location','/home/david/telegram_bot/ffmpeg','-o','/home/david/telegram_bot/podcast/'+str(message.from_user.id)+'/%(title)s.%(ext)s'])
for podcast in glob.glob(f'/home/david/telegram_bot/podcast/{message.from_user.id}/*.m4a'):
file_size = round(os.stat(podcast).st_size / (1024 * 1024))
if file_size > 10:
bot.send_message(message.chat.id,f'[+] Фаил превышает допустимый рамер в 10 MB. Размер файла: {file_size} MB')
bot.send_message(message.chat.id,'[+] Обрезаю звук на отрезки в 40 минут')
# Обрезаем фаил если выше 10Мб. Больше 10 МБ тайаут бывает...
subprocess.run(['ffmpeg','-i',podcast,'-c','copy','-map','0','-segment_time','00:40:00','-f','segment',f'/home/david/telegram_bot/podcast/{message.from_user.id}/[%02d] {podcast.split("/")[6]}'])
os.remove(podcast)
else:
pass
for podcast in glob.glob(f'/home/david/telegram_bot/podcast/{message.from_user.id}/*.m4a'):
audio = open(podcast, 'rb')
bot.send_audio(message.chat.id, audio, timeout=60)
audio.close()
os.remove(podcast)
except Exception as e:
bot.send_message(message.chat.id,e)
bot.infinity_polling(timeout=60, long_polling_timeout = 5)