You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.3 KiB
47 lines
1.3 KiB
#!/usr/bin/env python |
|
from __future__ import unicode_literals |
|
|
|
import itertools |
|
import json |
|
import os |
|
import re |
|
import sys |
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) |
|
|
|
from youtube_dl.compat import ( |
|
compat_print, |
|
compat_urllib_request, |
|
) |
|
from youtube_dl.utils import format_bytes |
|
|
|
|
|
def format_size(bytes): |
|
return '%s (%d bytes)' % (format_bytes(bytes), bytes) |
|
|
|
|
|
total_bytes = 0 |
|
|
|
for page in itertools.count(1): |
|
releases = json.loads(compat_urllib_request.urlopen( |
|
'https://api.github.com/repos/ytdl-org/youtube-dl/releases?page=%s' % page |
|
).read().decode('utf-8')) |
|
|
|
if not releases: |
|
break |
|
|
|
for release in releases: |
|
compat_print(release['name']) |
|
for asset in release['assets']: |
|
asset_name = asset['name'] |
|
total_bytes += asset['download_count'] * asset['size'] |
|
if all(not re.match(p, asset_name) for p in ( |
|
r'^youtube-dl$', |
|
r'^youtube-dl-\d{4}\.\d{2}\.\d{2}(?:\.\d+)?\.tar\.gz$', |
|
r'^youtube-dl\.exe$')): |
|
continue |
|
compat_print( |
|
' %s size: %s downloads: %d' |
|
% (asset_name, format_size(asset['size']), asset['download_count'])) |
|
|
|
compat_print('total downloads traffic: %s' % format_size(total_bytes))
|
|
|