최근 파이썬에 대해 공부하면서 이 파이썬을 어디에 쓸 수 있는지 고민하게 되었다.

내가 지금 사용하는 print("Hello World")는 검정화면에 흰 글자만 나오고, 아주 못생겼다.

그래서 미니 프로젝트를 시작했다!

요새 대세인 Youtube 에서 파이썬을 사용하면 동영상 파일을 받을 수 있다는 것을 알게 되었다!

 

유튜브의 동영상은 게시자에 의해 관리되고 있지만, 게시자에 의도에 따라 동영상이 사라질 수 있다.

그리고 유튜브의 서버를 신뢰하지 못한다면 소장하고 싶은 동영상을 소장해 볼 수 있다.

당연히, 재배포 또는 재업로드를 하게 되면 저작권의 문제가 발생할 수 있으니 주의하자!

 

미니 프로젝트의 결과물을 내 개인 Github에 올렸다.

https://github.com/updaun/YoutubeDownloader.git

 

updaun/YoutubeDownloader

YoutubeDownloader. Contribute to updaun/YoutubeDownloader development by creating an account on GitHub.

github.com

깃허브에 보니 다른 좋은 소스도 있는 것 같긴 했다.. 하지만 내가 만들었다는데 의의를 두고...

아직 사용하기에는 불편한 부분이 있지만 점차 개선해야 겠다!

백신 프로그램이나 방화벽, 윈도우 자체 보안에서 막히는 부분이 있는 것 같다..

일단 소스를 다운로드 받아보자! 

해당 링크로 들어가면 깃허브가 나온다. 우측의 'Code' 버튼을 눌러보자.

"Download ZIP" 버튼을 눌러 다운로드하고 압축을 해제한다!

"youtube_downloader.bat" 를 실행하면 된다.

윈도우 보안에 막힌 경우 '추가 정보'를 눌러 실행을 누르면 된다.

아직 개발 스킬이 부족하여 이런 부분을 신경쓰지 못했다.. 

혹시 에러가 나면 맨 아래로 이동해서 조치사항을 확인하면 된다.

프로그램을 시작하면 다음과 같은 화면이 나오게 된다.

유튜브에서 소장하고 싶은 동영상에서 "SHARE" 버튼을 누르면 공유 링크가 보이는데 "COPY" 를 눌러서 경로를 복사한다.

입력창에 유튜브 동영상 공유 링크를 붙여넣기 한 후에 동영상 다운로드 버튼을 누르면 된다!

링크가 정상적이었다면, 다음과 같이 알림이 뜨고 다운로드가 된다!

실행 파일이 있는 폴더에 'Downloads'라는 폴더가 생기고, 그 안에 동영상이 저장된다!

 

[ 향후 조치 사항]

1. MP3 로도 추출이 가능한 것 같다. 버튼을 2개로 나눠 동영상 파일과 음원 파일로 나눠 봐야겠다!

2. 다운로드가 되는 과정을 퍼센트 상태바로 표현하면 답답함이 적을 것 같다.

3. exe 파일 생성시 윈도우 보안에서 차단되지 않는 방법에 대해서 알아봐야겠다!

4. pytube 라이브러리가 없을 시에 자동으로 설치하는 로직을 만들면 좋을 것 같다!

 

혹시 파이썬 및 GUI 프로그래밍에 관심이 있는 분이 이 글을 본다면,

소스 안에 주석을 열심히 써놓았으니 참고하면 좋겠다.

 

[ 에러 발생시 조치사항 ]

기본적으로 파이썬이 설치되어 있어야한다. 저자는 파이썬 3.7버전 3.8버전을 사용해서 개발했다.

 

1. ModuleNotFoundError : No module namd 'pytube'

pytube 라이브러리를 설치해야한다.

pip install pytube

 

 

전에 AI Speaker 제작 프로젝트에서 라즈베리파이에서 적용했던 구글 어시스턴트를 적용한 것을 생각해보니, 

Google에서 제공하는 API를 윈도우에 적용해봐야겠다는 생각을 하게 되었다.

그래서 유튜브 동영상을 참고하여 도전해 보았다!

동영상을 찍은 시점과 현재가 조금 달라서 조금 시간이 걸려서 이렇게 공유해보려 한다.

 

시작 전에 글쓴이는 현재 파이썬 버전 3.7.7버전을 사용하고 있고

가상환경에 다른 파이썬 버전이 설치되어있기 때문에

기본적인 파이썬 라이브러리 설치 명령어가 아닌

python -m pip install <library name> 

특정 버전의 파이썬에 설치하는 명령어를 사용하겠다.

py -3.7 -m pip install <library name> 

 

 

이제 시작합니다!

[ google assistant sdk 설치 ]

py -3.7 -m pip install google-assistant-sdk[sample]

[ oauth lib 설치 ]

py -3.7 -m pip install --upgrade google-auth-oauthlib[tool]

 

google cloud platform 으로 이동하세요!

저는 이미 프로젝트를 만들었기 때문에 프로젝트 이름을 클릭합니다.

NEW PROJECT 로 새로운 프로젝트를 생성합니다.

프로젝트의 이름을 설정합니다. 위치는 특별히 중요하지 않습니다.

잘 생성되었다면 알림을 확인할 수 있습니다.

전과 같이 프로젝트 이름을 클릭하여, 생성한 프로젝트를 선택합니다.

좌측의 메뉴에서 APIs & Services - Dashboard 클릭합니다. 

EBABLE APIS AND SERVICES 를 클릭합니다.

API Library 에서 Google Assistant API 를 검색합니다.

Google Assistant API 를 클릭합니다.

ENABLE 버튼을 눌러 활성화합니다.

활성화한 뒤, 다음 창에서 Credentials 메뉴를 클릭합니다.

CREATE CREDENTIALS을 클릭합니다.

OAuth client ID 를 클릭합니다.

CONFIGURE CONSENT SCREEN 을 클릭합니다.

External 을 선택하고 CREATE 버튼을 눌러 생성합니다.

앱 정보를 입력하는데, App name과 User support email은 필수사항으로 입력해야한다.

스크롤을 내려보면, 개발자 이메일 입력하는 곳이 나온다! 앱 접근을 할 때, 요청하고, 개발자는 승인해야한다.

이메일 입력 후, SAVE AND CONTINUE 버튼을 눌러 다음으로 넘어간다.

보안 증명 과정을 등록한다. ADD OR REMOVE SCOPES 버튼을 클릭한다.

꼭 필요한 절차인지는 모르겠는데 의식의 흐름대로 설정했다.

openid를 선택하고 스크롤을 내려 UPDATE 버튼을 누른다.

설정이 완료되면, Your non-sensitive scopes 에 openid가 등록된다.  

스크롤을 내려 SAVE AND CONTINUE 버튼을 눌러 다음 단계로 이동한다.

3번째 단계인 Test users 단계는 생략하였다. 왜냐하면 사용자 이름도 모르겠고,

주의 사항으로 한 번 추가를 하면 지울 수가 없어서 SAVE AND CONTINUE 버튼을 눌러 다음 단계로 이동했다.

마지막으로 요약이 나온다. 스크롤을 내려 BACK TO DASHBOARD 를 클릭한다.

이 부분이 중요한데, 이걸 못 찾아서 시간이 오래 걸렸다.

PUBLISH APP를 하지 않으면 다음과 같은 에러가 발생하고, OAuth 허용을 할 수 없다.

PUBLISH APP 버튼을 누른다.

CONFIRM 버튼을 눌러 확인한다.

Verification Status를 확인하고, Credentials 메뉴로 다시 이동한다.

OAuth 2.0 Client IDs 가 생성되어야 하기 때문에, CREATE CREDENTIALS 버튼을 누른다.

OAuth client ID 를 선택한다.

Application type을 windows에서 할 것이기 때문에 Desktop app으로 선택했다. 

client ID Name을 지정해준다. 각 Application type별로 여러개를 만들 수 있는 듯 하다.

이름을 지정하고 CREATE 버튼을 눌러 생성한다.

잘 생성되었다면, 다음과 같은 알림창이 나온다.

Credentials 메뉴에서 아이디 목록을 확인 할 수 있고 우측 다운로드 버튼을 눌러 JSON 파일을 다운로드 할 수 있다.

이제 Google Cloud Platform 설정은 모두 끝났다.

다운로드된 JSON 파일을 당신의 프로젝트 폴더로 위치시키고

커맨드 창에서 다음 명령어를 입력한다.

이 때, <Your client_secret_json_file_path> 대신 JSON 파일을 절대 경로를 입력한다.

보통 C:\Users 로 시작해 googleusercontent.com.json로 끝날 것이다.

다음 명령어를 메모장에 복사하여 편집하여 사용하기를 권장한다.

google-oauthlib-tool --client-secrets <Your client_secret_json_file_path> --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless

위의 명령어를 입력하면 커맨드창에서 다음과 같이 출력된다.

URL을 복사하여 web으로 열어준다.

계정을 선택하고, 로그인을 한 뒤 허용을 눌러준다.

그렇게 하면, Authorize Code가 나오는데, 이것을 복사하여 커맨트 창에 입력해준다.

[ 하드웨어 준비 ]

컴퓨터에 마이크와 스피커를 연결한다. 글쓴이는 이어폰을 연결하였다.

마이크와 스피커를 테스트 하기 위한 기본 예제를 실행시킨다.

py -3.7 -m googlesamples.assistant.grpc.audio_helpers

파이썬 모듈이 없다고 에러가 발생하였다. sounddevice 라이브러리를 설치한다.

py -3.7 -m pip install sounddevice

그 뒤, 다시 예제 명령어를 동작하니 내가 말한 음성이 녹음되었다가 내게 들렸다.

그 다음으로, 프로젝트 ID와 모델명을 등록한다.

googlesamples-assistant-devicetool --project-id <Your Project Name> register-model --manufacturer “Assistant SDK developer” --product-name “Assistant SDK light” --type LIGHT --model “<Your Model Name>”

이때, 프로젝트 이름은 하단의 표시된 부분이며, 모델명은 중복되지 않도록만 설정하면 된다. (예시, "updaun0418")

제대로 등록이 되면 다음과 같이 출력된다.

이제, 구글 어시스턴트를 실행해 보겠다!

[ 구글 어시스턴트 실행 명령어 ]

py -3.7 -m googlesamples.assistant.grpc.pushtotalk --device-model-id “updaun0418” --project-id Updaun-Blog-ILikeIt

역시 에러가 발생했다.

에러 1) ModuleNotFoundError : No module named 'pathlib2'

해결) 파이썬 라이브러리 설치(pathlib2)

py -3.7 -m pip install pathlib2

에러 2) ModuleNotFoundError : No module named 'grpc'

해결) 파이썬 라이브러리 설치(grpcio, grpcio-tools)

py -3.7 -m pip install grpcio
py -3.7 -m pip install grpcio-tools

 

 

 

에러 3) ModuleNotFoundError : No module named 'google.assistant'

해결) 파이썬 라이브러리 업그레이드 설치(google-assistant-sdk[samples])

py -3.7 -m pip install --upgrade google-assistant-sdk[samples]

 

 

[ 구글 어시스턴트 실행 결과창 ]

엔터를 누르고 구글 어시스턴트에게 질문을 한 뒤, 답변을 기다린다.

 드디어,, 끝이 났다. 휴... 성공!!

 

[ 한글 지원 구글 어시스턴트 명령어 ] 

py -3.7 -m googlesamples.assistant.grpc.pushtotalk --lang ko-KR

굳이 이 명령어를 하지 않아도 되는 것 같다. 

혹시나 한글지원이 안될 경우 사용하면 된다.

최근 얼굴 인식 스마트 도어 시스템을 제작하고 다양한 파이썬 라이브러리를 설치했다.

파이썬에서 기본적으로 모듈이 없을 때 나오는 에러이다.

다음 명령어를 사용하여 라이브러리를 설치할 수 있다.

pip install requests

하지만, 가상환경 등 다양한 버전의 python을 사용하고 있다면

해당하는 파이썬 버전에 설치하는 명령어를 사용해야 한다. (python 3.7에 설치하려면)

py -3.7 -m pip install requests

opencv 사용중 발생한 에러이다.

다음 에러는 이렇게 해결할 수 있다.

py -3.7 -m pip install opencv-contrib-python

그런데 opencv-contrib-python 설치 중 빨간색 에러가 발생했다.

친절하게 --user를 쓰라고 나와있는데, 한참 동안 검색을 해야했다.

역시 에러 메세지를 잘 봐야한다 ^^ 메떼지 메떼지를 잘봐야한다.

해결방법은! "--user" 를 추가한다!

py -3.7 -m pip install --user opencv-contrib-python

 

매일 글 하나씩 업데이트하기! 

 

 

[리드미 파일 생성]

echo "# <Title>" >> README.md

 

[깃 이그노어 파일 생성]

echo "/<ignore_directory_name>" >> .gitignore

 

[깃 초기 세팅, .git 폴더 생성]

git init

 

[계정 설정]

git config --global user.name "updaun"
git config --global user.email "updauney@daum.net"

 

[레파지토리 설정]

git remote add origin https://github.com/updaun/FaceRecognition_Rpi.git

 

[설정 확인]

git config --list

 

[현재 디렉토리에서 .gitignore에 명시한 파일을 제외한 모든 파일을 Staging area로 이동]

git add .

[커밋]

git commit -m "first commit"

 

[커밋 상태 확인]

git status -u

 

[브랜치 설정]

git branch -M master

 

[브랜치 확인]

git branch

 

[브랜치 변경]

git checkout master
git checkout <branch_name>

 

[푸시]

git push -u origin master

 

[브랜치로 푸시]

git push -u origin <branch name>

 

2021.06.22 내용 추가

* 비밀번호를 한 번 입력하면 그 뒤로는 입력 없이 Push

 

* 새로운 컴퓨터에서 push를 시도하다 에러 발생

- git bash를 관리자 권한으로 실행한 뒤 해당 명령어 입력 후 push를 시도해보자

[ auth reset ]

git config --system --unset credential.helper

[ auto auth ]

git config --global credential.helper store

* 설정 후 한 번 정도는 로그인 해야할 수 있음

 

2022.02.22 내용 추가

[add 취소]

git reset

 

[commit 취소]

git reset --hard HEAD~1

 

[강제 push]

git push origin master --force

 

2022.06.29 내용 추가

[commit 메세지 수정]

git commit --amend -m "[docs] update readme" -m "add images and link embedding"

[commit 날짜 변경]

git commit --amend --no-edit --date "Tue Jun 28 2022 23:59:15 GMT+0900"

 

'SW > git' 카테고리의 다른 글

[git]Logon failed, use ctrl+c to cancel basic credential prompt  (1) 2021.04.12

git에 push를 하는 중에 아이디랑 비밀번호를 입력하는 창이 나온다.

그런데 아무리 아이디랑 비밀번호를 입력해도 push 되지 않고, 다음과 같은 에러만 나오는 것이다.

[error]

Logon failed, use ctrl+c to cancel basic credential prompt.

 

[해결방법]

1. cmd 창을 관리자 권한으로 실행한다.

2. git windows os를 위해 을 업데이트 한다.

 

[명령어]

git update-git-for-windows

 

[결과]

처음에는 패스워드 두번 치는 것이 귀찮아서 방법을 찾았는데 업데이트 후에는 push할 때 화면이 바뀌었다.

업데이트하면서 바뀐 것같다. git에서 개선한 것 같다.

Authorize 버튼을 누르니 commit 되었다.

'SW > git' 카테고리의 다른 글

[git] git command  (1) 2021.04.12

+ Recent posts