youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

show-downloads-statistics.py (1349B)


      1 #!/usr/bin/env python
      2 from __future__ import unicode_literals
      3 
      4 import itertools
      5 import json
      6 import os
      7 import re
      8 import sys
      9 
     10 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
     11 
     12 from youtube_dl.compat import (
     13     compat_print,
     14     compat_urllib_request,
     15 )
     16 from youtube_dl.utils import format_bytes
     17 
     18 
     19 def format_size(bytes):
     20     return '%s (%d bytes)' % (format_bytes(bytes), bytes)
     21 
     22 
     23 total_bytes = 0
     24 
     25 for page in itertools.count(1):
     26     releases = json.loads(compat_urllib_request.urlopen(
     27         'https://api.github.com/repos/ytdl-org/youtube-dl/releases?page=%s' % page
     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']))
     46 
     47 compat_print('total downloads traffic: %s' % format_size(total_bytes))