Skip to content

CAU-OSS-2019/Youtube-mirror-team12

 
 

Repository files navigation

DDokDDok(똑똑)Build Status

DDokDDok이란?

  • Python 기반의 유튜브 API입니다.
  • Python 2.7+, Python 3.5+에서 동작하는것을 확인했습니다.
  • 독립적으로 실행할 수 있으나, 배포판에서는 통합 UI를 제공합니다.(javafx사용)

What this project does

  • 시청자가 입력한 !<명령> 에 반응하는 Chatbot입니다.
  • 비속어 필터링은 본 모듈에는 부착되어 있지 않으며, Java 통합 모듈에서만 동작합니다.
  • 기본적으로 !업타임 명령어가 탑재되어 있습니다.
  • 현재 !추가,!주사위, !업타임, !앵무새, 따라웃기, 채팅 로그 기능이 탑재되어 있습니다.

Dependency

  • Python 3.5+ 이상 사용자.
pip3 install oauth2client python-dateutil httplib2 google_auth_oauthlib google-api-python-client pickle-mixin
  • Python 2.7+ 이상 사용자.
pip install oauth2client python-dateutil httplib2 google_auth_oauthlib google-api-python-client pickle-mixin

Prerequisite

  • Youtube Chatbot을 사용하는 모든 사용자는 Youtube APIGoogle OAuth에 등록(사용 신청)되어 있어야 합니다.

API Key, OAuth2.0 ID

  • Google API Console에 접속해서 왼쪽 사이드 메뉴의 라이브러리를 선택합니다.
  • 라이브러리에서 Youtube Data API를 신청하고, 원래 메뉴로 돌아와 API Key를 발급받습니다.
  • 그 후, OAuth 2.0 클라이언트 ID를 발급받습니다.
  • OAuth의 어플리케이션은, 기타 어플리케이션을 사용합니다.
  • ID를 발급 받은 후, 화면 상단의 JSON 다운로드 버튼을 눌러 client_secrets.json파일로 저장합니다.

Release Version(Javafx)을 사용하시는 분께서는, 이 곳 까지만 진행하시면 됩니다.

OAuth2.0 Token 발급받기

  • repository에 있는 get_auth.py를 실행해줍니다. 이때, 위에서 발급받은 client_secrets.json이 같은 폴더에 있어야 합니다.
  • 브라우저가 실행되면, 로그인을 한 후 발급되는 API Key를 Console/Popup Window에 입력해 oauth_cred파일을 생성합니다.

실행하기

  • Token을 발급받았다면. 다음과 같은 명령어로 chatbot을 실행할 수 있습니다. python3 bot.py <BROADCAST_ID>
  • 본 bot에 대한 명령어와, 대응은 DDokDDokCommand.py에서 수정하실 수 있습니다. 기본적으로는 !업타임 명령어가 탑재되어있습니다.
  • 그 외, 함수화된 모듈을 사용하는 법은 Developement Reference Docs를 참고해주십시오. (* TODO *)

For Developer

  • 각 모듈에 대한 설명
  • get_auth_key.py모듈은 client_secrets.json파일의 정보를 기반으로, OAuth2.0 Key를 생성해줍니다. 왜냐하면, API를 Call할 때 마다 OAuth인증을 받기엔 번거로우므로, 파일로 저장해 3600초(1시간)동안 유효하게 하면 bot을 사용하는 동안은 직접적인 갱신 없이 사용 가능하기 때문입니다.
  • bot.py는 bot을 실제로 Youtube Streaming Livechat에 반응하게 하는 모듈입니다. python bot.py <BROADCAST_ID>형식으로 실행해야 합니다.
  • youtubechat은 YoutubeLiveStream Library가 제공하는 API들을 기능별로 세분화해서 함수화 해둔 라이브러리입니다. bot.py를 작동하는데 사용됩니다.

참고

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.8%
  • Dockerfile 2.2%