Цель: мини-сервис, предоставляющий возможность загрузить и обработать видео из разных источников. сделано API для трёх источников
- для загрузки файлов,
- загрузки youtube-видео
- записи стрима на странице http://www.freeintertv.com/view/id-1099 Стрим разбивается на видеофрагменты определенной длины. Входные параметры: общая длительность записи и длительность видеофрагмента
Реализовано при помощи разделения API и обработчиков в разных docker-контейнерах взаимодействующих при помощи сelery
project
| main.py - скрипт реализующий API создания задач и постановки их в очередь + минимальный веб интерфейс для него
| worker.py - основной файл реализующий обработку очереди, загрузка файлов и потока
| download_stream_worker.py - скрипт для загрузки потока из командной строки
| static - веб интерфейс
| templates - и статика для него
| downloads - папка для загрузки видео
| logs - логи celery - WEB
GET /
- API
POST /download/YouTube
url:str обязательный параметр
POST /download/file
url:str обязательный параметр
POST /download/stream
playlist_url:str
recording_duration:int seconds длительность записи
max_fragment_duration:int seconds длительность фрагмента
GET /tasks/{task_id}
task_id - id задачизапускать в контейнере обработчика или сервера
запускать в контейнере обработчика или сервера
./download_stream_worker.py [-h] [-r RECORDING_DURATION] [-f MAX_FRAGMENT_DURATION] playlist_url
- переделать обработку очереди, на асинхронную работу
- добавить базу для сохранения результатов
- добавить взаимодействие с файловым хранилищем проверку имен, путей и т.д. в рамках теста все грузится в одну папку, без нормализации имен и проверки на дублирующиеся файлы
- добавить тесты
- добавить описание API