AngelPlayer`s Diary

Project Output

Github Link : https://github.com/ssh5212/youtube-downloader

Youtube : https://www.youtube.com/watch?v=XLvv-DbW6r0&t=1s 

How to Use : https://angelplayer.tistory.com/355

Project Chit Chat : https://angelplayer.tistory.com/353

 

 

 

Error

-- error __init__() got an unexpected keyword argument 'outtmpl'

https://stackoverflow.com/questions/39665160/youtube-dl-python-script-postprocessing-error-ffmpeg-codecs-arent-being-recogn

https://python.tutorialink.com/hide-ffmpegs-console-window-when-running-youtubedl-in-gui-application/

mp3로 변환하는 방법을 올린 블로그를 참고했었는데, 해당 소스코드의 경우 이중 딕셔너리를 사용하였다. 이후 다른 레퍼런스를 참고하면서 새로 코드를 짜면서 해당 블로그의 코드는 사용하지 않았는데 ydl_opts은 모든 소스가 동일(한 줄 알아서)해서 그대로 사용하였다. 문제는 해당 소스코드의 경우 경로 지정이 따로 없어서 해당 부분을 직접 고쳐서 사용했는데 자꾸 에러가 발생하였다.

알고보니 이중 딕셔너리 내부에 넣는게 아니라 딕셔너리에  ydl_opts를 작성하는 것인데 필자가 제대로 코드를 뜯어보지 않아서 발생한 일이었다.

 

 

-- pyinstaller로 포팅된 exe 실행 시 폴더 미선택의 경우 다운로드를 이상한곳에 해버리는 현상

소스코드를 실행하는 경우 제대로 실행되지만 exe 파일은 제대로 기능하지 않는다.

원본이 정상적으로 작동하고, 다른 방법으로 경로 지정 하도록 코드 수정 후 다시 포팅을 진행하였으나 마찬가지 현상이 발생한다.

-> 현재 폴더 선택 버튼을 누르지 않으면 아예 다운로드가 진행되지 않도록 구현하고, 이를 수행하도록 유도하는 형태로 구현하였다.

-> import os를 이용해서 파일 위치를 지정(절대경로)하였으나, 파일 확인 시 Temp로 지정되는 것을 확인하였다. (포팅 시 파일들이 temp에 있으니 위치를 그쪽으로 잡는 것이 아닌가 예상한다.) 상대경로로 파일 위치를 변경하여 해결하였다.

 

 

-- pyinstaller 하나의 파일로 제작 시 Trojan:Win32/Wacatac.B!ml 오진 문제 발생 하는 경우

https://angelplayer.tistory.com/354

어처구니 없게도 pip로 설치한 pyinstaller 파일은 윈도우 디펜더가 트로이로 오진해버린다... 다른 백신은 프로그램을 정상으로 인식한다. (아니 그러면 파일을 다 만들고 깃허브에 올리기 전에 알려주던지.. 테스트 한창하는데 심각이라고 떠버리네..)

오진은 -F 옵션을 통해서 하나의 파일로 만드는 경우 일어나는데, 이를 해제하고 만들어보니 라이브러리를 많이 사용해서 그런지 엄청난 수의 파일이 생성된다. 사용자의 편의성을 위해서 해당 방법은 가장 뒤로 미루는 걸로 하고 다른 방법을 찾아보았다.

-> pyinstaller를 pip가 아닌 방법으로 설치하는 것으로 해결하였다.

 

 

 

Note & Chat

-- pyinstaller 명령어

$ pyinstaller -w -F --icon=./img/angelplayer.ico youtube_downloader.py

 

-- 노동요

The Kid LAROI, Justin Bieber - Stay

Harry Styles - Watermelon Sugar

Ed Sheeran - Bad Habits

The Chainsmokers & Coldplay - Something Just Like This

白上フブキ - シル・ヴ・プレジデント

 

 

 

Reference

-- FFmpeg

https://ffmpeg.org/

 

-- FFmpeg (github)

https://github.com/FFmpeg/FFmpeg

 

-- FFmpeg 설치 방법

https://angelplayer.tistory.com/351

 

-- tkinter bind

https://076923.github.io/posts/Python-tkinter-23/

 

-- [Python] Youtube 영상 다운로드(with youtube_dl)

https://blog.dslab.kr/2019-09-10-python-youtube_dl/

 

-- ffmpeg 라이센스 관련 문의드립니다

https://www.oss.kr/oss_license_qna/show/7b9312e8-556e-437c-8bea-f641117f0e4a

 

-- pyinstaller document

https://pyinstaller.org/en/stable/

 

-- [PyInstaller] 파이썬 프로그램 실행 파일로 만들어서 배포하는 방법 (ft. exe 파일 용량 줄이는 팁)

https://coding-kindergarten.tistory.com/84

 

-- --get-filename not getting the final filename (was: get filename not working?) { 파일명 불러오는 방법 참고 }

https://github.com/ytdl-org/youtube-dl/issues/5710

 

 

 

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band