PythonでYoutubeチャンネル登録者数の増減を定期的にLINEで通知する

これまでPythonを使ったことが一度もないPHPerな私が,Pythonでプログラムを作ってみた。指定したYoutubeチャンネルの登録者数をYoutube Data API v3で取得し,増減をLINE Notifyで自分のLINEに通知する。

GitHub: youtubechecker

使用した技術

できること

  • 複数のYoutubeチャンネルの指定
  • 1日一回,指定したYoutubeチャンネルの登録者数の増減をLINEで通知

使い方

Dockerで動くようにしてあるが,ライブラリが入った環境なら通常のPython3でも実行可能なはず。

設定ファイル

<LINE NOTIFY TOKEN>をLINE Notifyのアクセストークンに,<GCP KEY>をGoogle APIのAPIキーに変更

LINE_TOKEN=<LINE NOTIFY TOKEN>
YOUTUBE_KEY=<GCP KEY>

チェックしたいYoutubeチャンネルIDを記載

YoutubeChannelId1
YoutubeChannelId2
YoutubeChannelId3
...

チェック時刻や間隔の変更

youtubechecker.pyのmain()関数内にスケジュール実行している行があるのでそこを変更する

夜の9時に実行する場合

schedule.every().day.at("12:00").do(job)

6時間ごとに実行する場合

schedule.every(6).hours.do(job)

実行

Dockerで実行する場合

git cloneしてもいいし,ZIPをダウンロードしてもOK。「youtubechecker」ディレクトリに移動したらDocker-composeでコンテナ起動と実行を行う。

docker-compose up -d --build

Pythonで直接実行する場合

pip install -r requirements.txt
nohup python ./app/youtubechecker.py &

実行結果

Pythonを使ってみて

  • インデントがすごく大事
  • ForやIfブロックがかっこで囲まれていないのでどこまでかパッと見わかりづらい
  • コーディング規則が厳しい感じがする。(ちょっと窮屈)
  • その代わりソースはきれいなものができる
  • 必要なライブラリが何でもあるし,簡単に使えるのはすごい便利。(便利すぎて深いことを理解せずに使えてしまうのでそれはそれで一長一短かも)
  • データを処理するならPythonかな?スクレイピングにも強いらしいし。

Git

今回初めてGitを使ってみた。というよりGitHubにソースを上げたかったのでGitを使い始めたという感じ。これまでバージョン管理システムは使っていなかったのでこれも慣れないとなぁ。次回はHerokuでのデプロイに挑戦してみたい。

Comments