Skip to content
This repository was archived by the owner on Nov 13, 2024. It is now read-only.

Dimasbka/comexp_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

comexp_test

Цель: мини-сервис, предоставляющий возможность загрузить и обработать видео из разных источников. сделано 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

About

test repositiry

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published