fix: отправка видео как документ (без сжатия Telegram) и исправление format_id для точного выбора качества

- Замена reply_video() на reply_document() в bot.py — Telegram больше не сжимает видео
- Исправление format_id в get_youtube_formats(): конкретные format codes + fallback best[height<=N]
- Замена bestvideo[height<=N]+bestaudio на best[height<=N] — гарантированно работает когда
  YouTube не отдаёт отдельные video-only потоки для низких разрешений
- Добавлено логирование реально скачанного формата для диагностики
This commit is contained in:
vrubelroman 2026-04-30 01:36:43 +03:00
parent 4b7cc403b2
commit 4629535e97
6 changed files with 632 additions and 95 deletions

View file

@ -93,6 +93,31 @@ def get_admin_chat_id() -> int | None:
return None
async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
"""Обрабатывает команду /start"""
chat_id = update.message.chat_id
saved_chat_id = get_admin_chat_id()
if saved_chat_id != chat_id:
save_admin_chat_id(chat_id)
if saved_chat_id is None:
await update.message.reply_text(
"✅ Админ бот активирован! Теперь вы будете получать все скачанные видео.\n\n"
"Доступные команды:\n"
"/stat — статистика бота"
)
else:
await update.message.reply_text(
"Это админский бот.\n\n"
"Доступные команды:\n"
"/stat — статистика бота"
)
else:
await update.message.reply_text(
"Доступные команды:\n"
"/stat — статистика бота"
)
async def stat_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
"""Обрабатывает команду /stat"""
# Сохраняем chat_id админа при первом использовании
@ -172,6 +197,7 @@ def main():
)
# Регистрируем обработчики
application.add_handler(CommandHandler("start", start_command))
application.add_handler(CommandHandler("stat", stat_command))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message))