Этот проект представляет собой скрипт для обработки экспортированных чатов из Telegram. Он извлекает текстовые, голосовые и видео сообщения из HTML-файлов, распознает текст из аудио и видео сообщений и сохраняет результаты в текстовый файл. Проект использует несколько библиотек для обработки данных, таких как BeautifulSoup, speech_recognition, moviepy, pydub и python-dotenv.
-
Извлечение сообщений из HTML-файлов:
- Используется библиотека
BeautifulSoupдля парсинга HTML-файлов. - Извлекаются текстовые сообщения, голосовые сообщения (в формате
.ogg) и видео сообщения (в формате.mp4).
- Используется библиотека
-
Обработка голосовых сообщений:
- Голосовые сообщения конвертируются из формата
.oggв.wavс помощью библиотекиpydub. - Распознавание текста из аудио выполняется с использованием библиотеки
speech_recognition.
- Голосовые сообщения конвертируются из формата
-
Обработка видео сообщений:
- Из видео сообщений извлекается аудио с помощью библиотеки
moviepy. - Аудио сохраняется во временный файл
.wav, после чего текст распознается с помощьюspeech_recognition.
- Из видео сообщений извлекается аудио с помощью библиотеки
-
Сохранение результатов:
- Все извлеченные сообщения (текстовые, голосовые и видео) сохраняются в текстовый файл
messages_output.txt.
- Все извлеченные сообщения (текстовые, голосовые и видео) сохраняются в текстовый файл
-
Использование переменных окружения:
- Проект использует
.envфайл для хранения конфигурационных данных, таких как имя пользователя, путь к экспортированным файлам чата и путь кffmpeg.
- Проект использует
-
.envфайл:- Содержит конфигурационные переменные:
NAME="John Doe" # Имя пользователя CHAT_EXPORT_DIRECTORY="C:\\path\\to\\ChatExport" # Путь к экспортированным файлам PATH_TO_FFMPEG="C:\\path\\to\\ffmpeg\\bin" # Путь к ffmpeg
- Содержит конфигурационные переменные:
-
Основной скрипт:
parser.py— основной файл, содержащий весь код для обработки чатов.
-
Выходной файл:
messages_output.txt— файл, в который сохраняются все извлеченные сообщения.
-
Загрузка переменных окружения:
- Скрипт загружает переменные из
.envфайла с помощьюpython-dotenv. - Проверяет, что все необходимые переменные (
NAME,CHAT_EXPORT_DIRECTORY,PATH_TO_FFMPEG) заданы.
- Скрипт загружает переменные из
-
Добавление
ffmpegвPATH:- Путь к
ffmpegдобавляется в переменную окруженияPATH, чтобы библиотекиpydubиmoviepyмогли использовать его для обработки аудио и видео.
- Путь к
-
Обработка файлов:
- Скрипт перебирает файлы
messages.html,messages1.html,messages2.htmlи т.д. в указанной директории. - Для каждого файла извлекаются сообщения с помощью функции
extract_messages_from_file.
- Скрипт перебирает файлы
-
Извлечение сообщений:
- Для каждого сообщения проверяется, является ли оно текстовым, голосовым или видео.
- Текстовые сообщения сохраняются напрямую.
- Голосовые и видео сообщения обрабатываются для извлечения текста.
-
Сохранение результатов:
- Все сообщения записываются в файл
messages_output.txt.
- Все сообщения записываются в файл
- Экспортированные файлы чата в формате HTML (например,
messages.html,messages1.html). - Голосовые сообщения в формате
.ogg. - Видео сообщения в формате
.mp4.
- Файл
messages_output.txt, содержащий все сообщения в формате:[Время] [Имя пользователя] - [Текст сообщения] [Время] [Имя пользователя] - [Голосовое сообщение] [Распознанный текст] [Время] [Имя пользователя] - [Видео сообщение] [Распознанный текст]
Для работы проекта необходимо установить следующие библиотеки:
pip install beautifulsoup4 speechrecognition moviepy pydub python-dotenvТакже требуется установить ffmpeg и добавить его в PATH.
-
Установите зависимости:
- Установите необходимые библиотеки и
ffmpeg.
- Установите необходимые библиотеки и
-
Создайте
.envфайл:- Укажите в нем имя пользователя, путь к экспортированным файлам и путь к
ffmpeg.
- Укажите в нем имя пользователя, путь к экспортированным файлам и путь к
-
Запустите скрипт:
- Выполните команду:
python parser.py
- Выполните команду:
-
Проверьте результат:
- Результаты будут сохранены в файл
messages_output.txt.
- Результаты будут сохранены в файл
Файл messages_output.txt может выглядеть так:
2024-02-22 18:27 John Doe - Привет, как дела?
2024-02-22 18:28 John Doe - [Голосовое сообщение] Давай встретимся завтра.
2024-02-22 18:30 John Doe - [Видео сообщение] Я сейчас на работе.
Ваш проект представляет собой мощный инструмент для обработки экспортированных чатов из Telegram, который включает в себя извлечение текстовых, голосовых и видео сообщений, а также распознавание текста из аудио и видео. Давайте рассмотрим этап установки и настройки проекта более подробно, чтобы обеспечить его корректную работу.
Виртуальное окружение позволяет изолировать зависимости проекта от системных библиотек. Для его создания выполните следующие команды:
-
Для Windows:
python -m venv .venv
-
Для Linux/macOS:
python3 -m venv .venv
После создания виртуального окружения его необходимо активировать:
-
Для Windows:
.venv\Scripts\activate.bat
-
Для Linux/macOS:
source .venv/bin/activate
Poetry — это инструмент для управления зависимостями и виртуальными окружениями в Python. Установите его с помощью pip:
pip install poetryПосле установки Poetry используйте его для установки зависимостей проекта:
poetry installЭтот команда установит все необходимые библиотеки, указанные в pyproject.toml.
FFmpeg — это обязательный инструмент для обработки аудио и видео. Его необходимо установить вручную, так как он не является Python-библиотекой.
-
Скачайте последнюю версию FFmpeg для Windows: FFmpeg для Windows.
-
Распакуйте архив в папку проекта (например,
C:\path\to\project\ffmpeg). -
Укажите путь к FFmpeg в
.envфайле:PATH_TO_FFMPEG="C:\\path\\to\\project\\ffmpeg\\bin"
-
Скачайте последнюю версию FFmpeg для Linux: FFmpeg для Linux.
-
Распакуйте архив в папку проекта:
tar -xf ffmpeg-master-latest-linuxarm64-gpl-shared.tar.xz -C /path/to/project/ffmpeg
-
Укажите путь к FFmpeg в
.envфайле:PATH_TO_FFMPEG="/path/to/project/ffmpeg/bin"
-
Добавьте FFmpeg в переменную окружения
PATH:export PATH=$PATH:/path/to/project/ffmpeg/bin
Создайте файл .env в корневой директории проекта и добавьте в него следующие переменные:
NAME="John Doe" # Имя пользователя
CHAT_EXPORT_DIRECTORY=C:\\path\\to\\ChatExport # Путь к экспортированным файлам
PATH_TO_FFMPEG=C:\\path\\to\\ffmpeg\\bin # Путь к FFmpegЗамените значения на актуальные для вашей системы.
После завершения установки и настройки выполните команду для запуска скрипта:
python parser.py