GitHub Release でのダウンロード数を Python から取得する方法
Posted on 2024年03月31日 (日) in 一般
目次
はじめに
私は Yukis Army knife というソフトを作っているのですが、ある時「このソフトはどのくらいダウンロードされているんだろう?」と疑問に持ちました。
そこで Release ページからダウンロード数の取得方法を調べたので、Python で実際の取得方法を書こうと思います。
コード
import requests
ori_url=input("URLを入力してください: ")
url = ori_url.replace("github.com", "api.github.com/repos").replace("tag", "tags")
headers = {"Accept": "application/vnd.github.v3+json"}
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
data_list=[]
for asset in data['assets']:
data_list.append([asset['name'], asset['download_count']])
for i in data_list:
print(i)
else:
print(f"エラー: {response.status_code}")
簡単な概要
調べてみたら Release でのダウンロード数取得は GitHubAPI 経由でしか行えないようです。
そこで Release ページの URL から API に変換しデータを取得するコードが上のコードです。
ファイルを実行すると Release ページの URL の入力が求められ、入力して Enter を押すと各ファイルのダウンロード数が表示されます。
このままでも使えますが、少し書き直して GUI で使えるようにしても良いかもしれません。
注意点ですが、これは GitHub API を使っている都合上、同一 IP アドレスからのアクセスは一時間あたり 60 回まで制限されています。
またそうでなくても、GitHub API を使って過剰なアクセスをすることは規約から禁じられているため、データの加工などを行う際には一度 json として保存してから行ってください。
終わりに
今回は Release でのファイルダウンロード数の取得方法について書きました。
もしかしたら Flet を使ったソフトにして公開するかもしれません(Flet の練習も兼ねて)。