8000 GitHub - kaluchi/analyze-tt-bot
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

kaluchi/analyze-tt-bot

Repository files navigation

Telegram-бот для анализа и скачивания TikTok видео

О проекте

Этот Telegram-бот разработан для анализа и скачивания видео с TikTok с сохранением оригинального качества.

Основные возможности

  • Скачивание видео в максимально доступном качестве
  • Технический анализ медиафайлов (разрешение, битрейт, кодек, FPS)
  • Отправка видео как файла, минуя компрессию Telegram
  • Генерация удобных хэштегов с информацией о параметрах видео
  • Поддержка любых форматов ссылок на TikTok (полных и коротких)

🚀 Начало работы за 60 секунд

1. Создайте своего бота

  • Получите токен у @BotFather в Telegram
  • Сохраните его в переменной окружения TELEGRAM_BOT_TOKEN

2. Запустите бота одним из способов

🐳 Вариант для Docker-энтузиастов

# Магия одной командой
docker-compose build && docker-compose up bot -d

# Наблюдение за работой
docker logs -f $(docker ps -qf "name=analyze-tt-bot")

💻 Классический запуск

# Установка инструментария (требуются права администратора)
winget install --id Microsoft.Powershell
winget install --id Python.Python.3.10
winget install --id MediaArea.MediaInfo
pip install yt-dlp
Install-Module PSFramework -Force
$env:TELEGRAM_BOT_TOKEN = "ваш_токен_от_BotFather"

# Проверка готовности системы
.\scripts\Start-Bot.ps1 -ValidateOnly

# Запуск бота 
.\scripts\Start-Bot.ps1

3. Наслаждайтесь результатом!

Отправьте любую ссылку на TikTok и получите:

  • Оригинальное видео без компрессии Telegram
  • Профессиональный технический анализ
  • Удобные хэштеги для навигации

Структура проекта

analyze-tt-bot/
├── scripts/                   # Скрипты для запуска и управления
│   ├── Start-Bot.ps1         # Скрипт запуска бота
│   └── Get-TestCoverage.ps1   # Скрипт анализа покрытия кода тестами
├── src/                      # Исходный код проекта
│   └── AnalyzeTTBot/         # Основной модуль
│       ├── AnalyzeTTBot.psd1   # Манифест модуля
│       ├── AnalyzeTTBot.psm1   # Файл модуля
│       ├── Config/             # Конфигурационные файлы
│       ├── Factories/          # Фабрики и контейнеры зависимостей
│       ├── Interfaces/         # Интерфейсы для инверсии контроля
│       ├── Services/           # Сервисы и реализации
│       └── Utilities/          # Вспомогательные функции
├── tests/                    # Тесты и отладка
│   └── AnalyzeTTBot/         # Тесты модуля
│       ├── Helpers/            # Вспомогательные функции для тестов
│       ├── Integration/        # Интеграционные тесты
│       ├── Mocks/              # Моки для тестирования
│       ├── TestData/           # Тестовые данные
│       └── Unit/               # Модульные тесты
├── tools/                    # Инструменты разработки
├── docs/                     # Документация проекта
├── temp/                     # Временные файлы
├── .gitignore                # Исключения для Git
├── GUIDELINES.md            # Руководство по разработке
└── README.md                # Основная документация

Технические особенности

Системные требования

Для корректной работы бота необходимы следующие компоненты:

  • PowerShell 7.5+ - для корректной работы с Unicode и эмодзи
  • Python 3.10+ - для работы yt-dlp
  • yt-dlp 2025.03.26+ - инструмент для скачивания видео
  • MediaInfo 23.11+ - для анализа технических характеристик видео
  • curl - встроен для работы с API Telegram
  • PSFramework 1.12.346+ - для управления конфигурацией и логированием

Архитектурные решения

  • Инверсия контроля — использование контейнера зависимостей для управления жизненным циклом сервисов
  • Интерфейсы — четкие контракты для всех компонентов системы
  • Модульный дизайн — четкое разделение обязанностей между компонентами
  • Строгая инкапсуляция — каждый внешний API или инструмент инкапсулирован в отдельном сервисе
  • Безопасная работа с внешними командами — использование System.Diagnostics.Process вместо Invoke-Expression
  • Централизованная конфигурация — все параметры в PSFramework
  • Изолированная проверка 81C5 ависимостей — отдельный модуль для валидации компонентов

Особенности метаданных видео с TikTok

  1. Удаление метаданных о камере:

    • TikTok систематически удаляет все метаданные о камере из видео при их обработке перед публикацией
    • В видео, скачанных с TikTok, полностью отсутствуют следующие метаданные:
      • Make (производитель устройства)
      • Model (модель устройства)
      • FocalLength (фокусное расстояние)
      • LensModel (модель объектива)
      • Любые другие метаданные, связанные с камерой или устройством
  2. Сохраняемые технические характеристики:

    • Разрешение видео (обычно 1080x1920 для вертикальных видео)
    • Частота кадров (чаще всего 60 FPS)
    • Кодек видео (HEVC/hvc1)
    • Профиль кодека (Main@L5@Main)
    • Цветовое пространство (YUV с цветовыми характеристиками BT.709)
    • Аудио формат (AAC LC SBR PS / HE-AACv2)
  3. Специфичные для TikTok метаданные:

    • Comment: уникальный идентификатор видео (например, vid:v09044g40000cvgdnrnog65ln06e6h2g)
    • AigcInfo: информация о типе контента ({"aigc_label_type": 0})
    • VidMd5: хеш-сумма видео
    • Encoder: обычно Lavf58.76.100 (библиотека FFmpeg, используемая TikTok)

Система тестирования

Проект использует Pester 5.4+ для модульных и интеграционных тестов. Более подробная информация о тестировании, включая рекомендации по организации тестов, мокированию и использованию InModuleScope, доступна в GUIDELINES.md.

Запуск тестов

Для запуска всех тестов проекта:

# Из корня проекта
Import-Module Pester
Invoke-Pester -Path ".\tests"

Для запуска конкретных тестов:

# Только модульные тесты
Invoke-Pester -Path ".\tests\AnalyzeTTBot\Unit"

# Тесты для конкретного сервиса
Invoke-Pester -Path ".\tests\AnalyzeTTBot\Unit\FileSystemService.Unit.Tests.ps1"

Для запуска с расширенной детализацией:

Invoke-Pester -Path ".\tests" -Output Detailed

Анализ покрытия кода

Для более подробного анализа покрытия кода тестами можно использовать специальный скрипт:

# Запуск скрипта анализа покрытия кода
.\scripts\Get-TestCoverage.ps1

Этот скрипт:

  • Запускает все тесты проекта
  • Анализирует покрытие каждого сервиса
  • Показывает детальную статистику по каждому файлу
  • Предоставляет визуальное представление покрытия
  • Сохраняет полный отчет в формате JaCoCo XML для дальнейшего анализа

Вы также можете указать собственные параметры:

# Запуск с собственными параметрами
.\scripts\Get-TestCoverage.ps1 -TestPath ".\tests\AnalyzeTTBot\Unit" -MinCoverage 90

Отладка и мониторинг

  • Проверка состояния: .\scripts\Start-Bot.ps1 -ValidateOnly для проверки всех зависимостей
  • Логирование: .\scripts\Start-Bot.ps1 -Debug для подробного логирования
  • Журналы: Хранятся в %TEMP%\AnalyzeTTBot\logs\

Полезные ссылки

  • GUIDELINES.md - Структура проекта и правила разработки
  • DOCKER.md - Инструкция по сборке и запуску Docker-контейнера для бота

Последнее обновление документации: 21.04.2025

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0