- Не рекомендуется тестирование в браузере Safari
- Будьте терпеливы, клипы прогружаются некоторое время
- Ссылка на решение
- Ссылка для быстрого тестирования
- Функционал включает в себя:
- выделение ключевых моментов
- ранжирование ключевых моментов
- возможность редактирования видео
📌 Этот проект представляет собой web-сервис для автоматической обработки видео. Он позволяет загружать длинные видео и генерировать из них набор коротких вертикальных клипов, содержащих ключевые моменты. Эти клипы предназначены для использования в промо-материалах, на платформах с короткими видео и в социальных сетях с целью максимального привлечения внимания зрителя. Основная задача сервиса — создать такие фрагменты видео, которые будут стимулировать аудиторию к просмотру полного оригинального видео.
📂 Структура проекта для back-end
├── /data/ # Данные проекта
│ ├── text.txt # Текстовый файл с данными
│ ├── vidio.json # JSON-файл с информацией о видео
│ └── vidio_tt.json # JSON-файл с дополнительной информацией о видео
├── /endpoints/ # Эндпоинты API
│ ├── get_subtitles.py # Эндпоинт для получения субтитров
│ ├── upload_file.py # Эндпоинт для загрузки файлов
│ └── work_with_vidio.py # Скрипт для работы с видеофайлами
├── /services/ # Сервисные модули
│ ├── chunks.py # Модуль для работы с фрагментами видео
│ ├── find_best.py # Модуль для нахождения лучших моментов
│ └── transcribe.py # Модуль для транскрипции видео
├── Dockerfile # Конфигурация Docker для запуска проекта
├── build.sh # Скрипт для сборки проекта
├── edit_video.py # Скрипт для редактирования видео
├── main.py # Основной файл запуска приложения
├── requirements.txt # Файл с зависимостями проекта
├── test.py # Тестовый файл
├── test_01.py # Дополнительный тестовый файл
└── whisper_responses.json # JSON-файл с ответами от системы Whisper
📂 Структура проекта для front-end
├── /public/ # Публичные файлы проекта
│ ├── favicon.ico # Иконка сайта
│ ├── index.html # Основной HTML-файл
│ ├── logo192.png # Логотип (192x192)
│ ├── logo512.png # Логотип (512x512)
│ ├── manifest.json # Манифест приложения для PWA
│ └── robots.txt # Файл для управления доступом к сайту для поисковых систем
├── /src/ # Исходные файлы приложения
│ ├── /pages/ # Компоненты страниц
│ │ ├── EditPage.css # Стили для страницы редактирования
│ │ ├── EditPage.js # Страница редактирования
│ │ ├── ProcessingPage.js # Страница обработки данных
│ │ ├── SRTStringEditor.jsx # Компонент для редактирования SRT строк
│ │ ├── UploadPage.js # Страница загрузки файлов
│ │ └── VideoPreviewPage.js # Страница предпросмотра видео
│ ├── App.css # Стили для компонента App
│ ├── App.js # Основной компонент приложения
│ ├── index.css # Основные стили
│ └── index.js # Точка входа в приложение
├── .env # Переменные окружения
├── .gitignore # Игнорируемые файлы и папки для Git
├── README.md # Документация проекта
├── package-lock.json # Lock-файл для зависимостей
├── package.json # Конфигурация проекта и зависимости
- Язык программирования: Python 3.10+
- Фреймворк: Flask
- Дополнительные библиотеки:
MoviePy— работа с видеоLibrosa— обработка аудиоTorch— модели машинного обученияPandas— работа с табличными даннымиOpenCV— обработка изображений и видеоMTcnn— детекция лицBeautifulSoup— парсинг HTML и XMLPydub— обработка аудиоDeepFace— распознавание лицTensorFlow— создание и обучение моделей машинного обученияProtobuf— сериализация данныхHTTPX— HTTP-клиент для асинхронных запросовUvicorn— сервер для запуска FastAPIPysrt— работа с субтитрами в формате .srtRequests— библиотека для HTTP-запросов
- Python 3.10+
- Не желательно использовать Safari для тестирования
-
Клонируйте репозиторий:
git clone https://github.com/hackaton-labelAI/video-highlight-server.git
-
Установите зависимости:
pip install -r requirements.txt
-
Запуск проекта:
python main.py
-
Откройте ваш браузер и перейдите по адресу:
http://127.0.0.1:8000
-
Для работы с API используйте Postman или другой инструмент для тестирования запросов, избегая Safari.