In [1]:
from npoapi import Media
import ijson
from datetime import datetime
import sys

client = Media(env="test").configured_login()

Receive (streamingly) the latest 100000 changes.


In [2]:
objects = ijson.items(client.changes(stream=True, limit=100000), 'changes.item')
data = {}

Now iterate those changes and collect all sort dates per broadcaster (this may take some time)


In [3]:
count = 0
print("Iterating all results, and collecting some data")
for o in objects:
    
    if count % 20000 == 0:
        sys.stdout.write("\n%05d" % count)
    if count % 1000 == 0:
        sys.stdout.write('.')
        sys.stdout.flush()
    count += 1
    if "media" in o:
        media = o["media"]
        for broadcaster in media["broadcasters"]:
            if "sortDate" in media:
                sortDate = datetime.fromtimestamp(media["sortDate"] / 1e3)
                bid = broadcaster["id"]
                if not bid in data:
                    data[bid] = []
                data[bid].append(sortDate)


Iterating all results, and collecting some data

00000....................
20000....................
40000....................
60000....................
80000....................

Now collect some information about the collected results and show it


In [4]:
sorted_by_value = sorted(data.items(), key=lambda kv: -1 * len(kv[1]))
for e in sorted_by_value:
    print("%-20s %d" % (e[0], len(e[1])))


NOS                  11279
AVTR                 6483
RTUT                 5175
VARA                 2806
NTR                  2321
L1                   2271
VPRO                 1996
OWST                 1989
KRNC                 1898
EO                   1869
ROFR                 1747
BNN                  1737
RTOO                 1624
FUNX                 1341
KRO                  1221
MAX                  1191
TROS                 1066
NCRV                 945
AVRO                 919
ROGE                 741
OFVL                 509
NPS                  465
RTNH                 365
RAD1                 334
WNL                  332
POWN                 278
RTDR                 255
VRT                  254
OBBT                 253
RTRM                 173
RAD6                 162
RAD3                 143
RAD2                 138
RAD4                 128
OZEE                 114
RTNO                 97
HUMA                 90
BVN                  76
TELE                 71
ZAPP                 70
IKON                 60
NPO                  51
JO                   30
RKK                  29
MO                   15
ZAPL                 14
BOS                  12
RAD5                 9
PP                   6
ZVK                  4
OHM                  4
RVU                  3
POGO                 1
LLNK                 1
NIO                  1
NED2                 1
NMO                  1

In [ ]:


In [ ]: