]> jfr.im git - yt-dlp.git/blame - devscripts/show-downloads-statistics.py
[skip travis] update gitignore
[yt-dlp.git] / devscripts / show-downloads-statistics.py
CommitLineData
bf3ae6a5
S
1#!/usr/bin/env python
2from __future__ import unicode_literals
3
7935926b 4import itertools
bf3ae6a5
S
5import json
6import os
7import re
8import sys
9
10sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
11
12from youtube_dl.compat import (
13 compat_print,
14 compat_urllib_request,
15)
16from youtube_dl.utils import format_bytes
17
18
19def format_size(bytes):
20 return '%s (%d bytes)' % (format_bytes(bytes), bytes)
21
22
23total_bytes = 0
24
7935926b
S
25for page in itertools.count(1):
26 releases = json.loads(compat_urllib_request.urlopen(
067aa17e 27 'https://api.github.com/repos/ytdl-org/youtube-dl/releases?page=%s' % page
7935926b
S
28 ).read().decode('utf-8'))
29
30 if not releases:
31 break
32
33 for release in releases:
34 compat_print(release['name'])
35 for asset in release['assets']:
36 asset_name = asset['name']
37 total_bytes += asset['download_count'] * asset['size']
38 if all(not re.match(p, asset_name) for p in (
39 r'^youtube-dl$',
40 r'^youtube-dl-\d{4}\.\d{2}\.\d{2}(?:\.\d+)?\.tar\.gz$',
41 r'^youtube-dl\.exe$')):
42 continue
43 compat_print(
44 ' %s size: %s downloads: %d'
45 % (asset_name, format_size(asset['size']), asset['download_count']))
bf3ae6a5
S
46
47compat_print('total downloads traffic: %s' % format_size(total_bytes))