- Youtube-dl
- Moviepy
- celery
- Rabbitmq
- FFmepeg
- Django
- Nginx
- AWS EC2
- Ubuntu
web server는 NGINX를 사용하였습니다.
websocket 통신은 위해 Daphne를 사용하였습니다.
Youtube 다운을 비동기로 하기 위해 celery를 사용하였습니다.
celery의 메세지 브로커로는 Rabbitmq를 사용하였습니다.
- user가 url로 들어와서 HTTP Get 요청을 한다.
- user가 입력한 값이 적절한지 확인하고 적절하면 websocket으로 내용을 보내고 아니라면 alert 창을 보낸다.
- ws:// 으로 들어오면 Nginx가 Daphne로 연결하여 Django websocket과 연결 될 수 있게 해줍니다.
- Django는 입력값을 바탕으로 celery로 Youtube 다운로드를 비동기로 처리합니다.
- user는 일정 시간마다 websocket으로 다운로드 되고 있는 상태를 요청하고 Django는 진행 상태를 user에게 알려줍니다.
- 다운로드가 완료되면 gif file을 return 합니다.
입력값은 1초 이상 6초 미만입니다.
이 범위를 넘어갈 경우 안내 문구가 등장합니다.