· 톺아보기

사용기

해상도 선택 기능 추가한 로그인 youtube-dl 웹서버 dockerhub에 업데이트 해놨습니다

윙넛 · · 수정

조회 3,753 · 공감 0 · 댓글 15

youtube-dl 웹서버에 해상도 선택 기능 추가했습니다. 

해상도는 유툽에 있는 해상도 기반으로 selectbox 추가했고, 서브프로세스 완료되면 아래 그리드에 서버에서 정보 푸시합니다.


실행방법 이전글 참조 : https://www.clien.net/service/board/cm_nas/12621646?po=0&od=T31&sk=&sv=&category=&groupCd=&articlePeriod=default&pt=0CLIEN


DOCKER HUB : https://hub.docker.com/r/modenaf360/youtube-dl-nas/

GIT HUB : https://github.com/hyeonsangjeon/youtube-dl-nas





해상도는 1080p라고 무조건 1080p를 다운 받는건 아니고, 최소한 1080p 이하 중 가장 큰 해상도로 받게 되어있습니다. 

예를들어, "720p가 가장 크다"면 1080p선택해도 720p가 받아집니다. 

다운로드 확장자는 기본 mp4로 받아지나 유툽확장자가 webm만 있는경우 다운로드 확장자는 mkv로  merging 받아집니다. 


음성만 다운받는건 mp3로 받아지는데.... 음 이건 안될거같아요.ㅎㅎㅎ 너무 강력하네요. 저작권 보호 사랑합니다.


로그인은 아래와 같이 환경변수 들어가면 됩니다. _언더바 확인해주세요. 

혹시 암호가 리눅스 bash에 적용안되는 특수문자인 경우 안될수도 있을거같습니다. 

예를들어, 암호 시작이 ! (느낌표) 인것, $ (달러), &은 안됩니다. 

bash에 환경변수로 적용되지 않는 첫문자는 정상적으로 적용되지 않습니다.

[안됨]

-e MY_PW=!abcd

-e MY_PW=$abcd

-e MY_PW=&abcd

[됨]

-e MY_PW=abcd!

-e MY_PW=abcd$

-e MY_PW=abcd!&


적절히 사용하시길.



PS. 

1. 로그인은 계정은 도커 환경변수명 정확히 입력해주세요. (시작문자 ! $ & 안되효)   -e MY_ID=아이디 -e MY_PW=암호

2. 기존 이미지 받으셨던 분들께서는 이미지 지우고 다시 받으시면 됩니다. tag latest

3. 이전 버전은 docker tag명 v0_1로 올려놨습니다. 

4. 디자인은 공대 감성입니다. 저건 어떻게 안되는것 같습니다.




불금 되시길... 

출처 : 직접 만들었음.

댓글 15

  1. 밥이 ·
    잘됩니다^^ 다운 받는것 해상도가 나와서 많이 편리해졌네요^^
  2. 윙넛 ·
    네. 잘되시니 다행이네요^^. 불금되세요.
  3. 보노보노닷컴 ·
    아주 잘됩니다. 감사합니다... 잘쓰겠습니다.
  4. 윙넛 ·
    네 ^^
  5. 이치로 ·
    https://www.clien.net/service/board/cm_nas/12498045CLIEN 기존 프레임워크에서 api로 주소만 던지는 파폭 확장을 만들었는데 결과를 노티로 받아볼 수있게 하려먼 서버단에서 웹소켓을 필수로 구현 해야하나요? 다운로드 완료 실패 유효하지 않은 입력 등을 피드백 받고 싶은데 아는게 하나도 없어서 질문드려봅니다.
  6. 윙넛 ·
    엇. 제꺼도 작성해주신 공유글 보고 만들었습니다^^ 제 깃 소스도 보시면base를 manbearwiz 이분꺼 베이스로...ㅋ xpi 파일 설치해봤는데 Option의 url링크를 POST로 날리시는거지요? sync구조가 아니라 결과 실패에 대한 피드백은 중간에 exception처리 같이 줄수는 없을거 같아요. 파이썬에서 submodule이라고 다른 프로세스 호출하는 방식이거든요. 게다가 Producer /Consumer 패턴이라...
    자바라면 DefaultExecutor executor = new DefaultExecutor(); executor.execute(cmdLine); 와 같습니다.
    실제로 manbearwiz 코드를 보면
    /youtube-dl/q [GET]도 현재 큐에 요청접수된 String일 뿐이더라구요.

    @app.route('/youtube-dl/q', method='POST')에 response가 queue accept에요.
    REST로 보면 202코드(작업을 접수받았습니다.)입니다.

    순서대로 queue에 담기면 dl_worker라는 함수는 대기하다 큐를 빼고, worker는 다운로드 작업 한뒤 다했다고 task_done 주고 join하는 Producer /Consumer Async 스레드 패턴 구조라....
    만들면서 분석한 이해하기 쉽게 정리한 큐파이프라인 정리한 링크입니다. https://github.com/hyeonsangjeon/python-threads-queue

    유효하지 않은 입력은 정규식으로 프론트단에서 될수 있는대로 막아주시고, 파일 다운로드하다가 나는 에러는 작업 중간 디렉토리를 모니터하는 상태 체크를 써야지 않나 싶네요. 프론트에서 그걸 확인하는건 다운로드 요청하고 바로 디렉토리 상태체크를 async polling하거나(ajax같은) SSE웹소켓 밖에 없을 거같아요.
    저도 다운로드 worker subprocess가 처리 한 다음 릴리즈할때 완료 푸시라 완벽하게 파일이 받아지다 90%에서 에러 이런건 못잡을 것 같습니다.
    ps. AWS같은 서버 자원 할당 받는 프로비저닝 방식이라고 생각하시면 편할거같아요. 요청한다--> 접수 응답 받는다 --> 기다린다--> 상태체크용 REST를 찔러본다. -> ui에서 상태값 응답을 보여준다.


  7. 이치로 ·
    길게 남겨주셨는데 제가 무슨말인지를 거의 못알아듣겠네요 ㅎㅎ 나중에 찾아보면서 키워드 중심으로 공부해야겠습니다. 친절한 설명 감사합니다. ㅠ
  8. ski9444 ·
    감사합니다. ^^ 저도 해결... 자바 안깔아서 그런거 같은데 맞는지요? 아묻든 해결 했습니다. 고맙습니다.
  9. 윙넛 ·
    잘 되신다니 다행이네요. docker는 host서버 독립이라... jre는 아마 아닐 것 같습니다.^^;
  10. 그럴수도있구나 ·
    감사합니다. 잘쓰겠습니다.
    mp3추출이 상당히 아쉽군요 ㅋㅋ 궁극의 기능이었는데 ㅠ
  11. 윙넛 ·
    음원은 안됩니다 ㅋㅋ 저는 소중하니까요
  12. ZARD-U ·
    아주 잘 됩니다. 엔터키도 잘 먹고요~!
    반영해 주셔서 감사합니다. ^^


  13. 윙넛 ·
    넹^^
  14. 윤호윤아빠 ·
    설치해서 테스트 다운까지 완료했어요.감사합니다!!
    한가지 질문좀요..
    다운받는곳을 다른곳으로 지정이 가능할까요?
    따라한다고 했는데 downfolder 폴더로 가는건가요?
    전 그냥 youtubeDl 폴더에 다운받아지는데 그게 정상일까요?
  15. 윙넛 ·
    다른곳으로 지정하시면 되요. 도커스크립트면 왼쪽이 원하시는 나스 경로입니다.
    -v 나스경로:도커경로
    도커경로는 root에 링크 /downfolder로 fix된거고 왼쪽을 바꾸시면 되어요.
    -v 원하시는나스경로:/downfolder

나스당 최근 글

나스당 목록 더 보기