#!/usr/bin/env python # coding: utf-8 # # BBC Programme Info # # Throwaway script for grabbing and displaying BBC programme info based on series and programme PIDs. # In[53]: #http://lists.infradead.org/pipermail/get_iplayer/2017-July/010906.html import requests seriesids=['b08ff40m'] pids = ['b08gxndc','m00019my','b0bhwp6j','b0540h85','b098ht04','b08ffv2l'] t='' def printProg(j, prefix='', t=''): sbits = {'short_synopsis':'Short', 'medium_synopsis':'Medium', 'long_synopsis':'Long'} if 'parent' in j: t = t+'{}Parent name: {}\n'.format(prefix,j['parent']['programme']['title']) t = t+'{}Parent PID: {}\n'.format(prefix,j['parent']['programme']['pid']) t = t+'{}Parent link: https://www.bbc.co.uk/programmes/{}\n'.format(prefix,j['parent']['programme']['pid']) if 'display_title' in j and 'subtitle' in j['display_title']: t = t+ '{}Title: {} — {}\n'.format(prefix,j['display_title']['title'],j['display_title']['subtitle']) else: t = t+'{}Title: {}\n'.format(prefix,j['title']) if 'ownership' in j: t = t+ '{}Channel: {}\n'.format(prefix,j['ownership']['service']['title']) elif 'parent' in j: t = t+ '{}Channel: {}'.format(prefix,j['parent']['programme']['ownership']['service']['title']) for s in sbits: if s in j and j[s]: t = t+'{}{} synopsis: {}\n'.format(prefix, sbits[s],j[s]) t = t+'{}First broadcast date" {}\n'.format(prefix,j['first_broadcast_date']) t = t+'{}PID: {}\n'.format(prefix,j['pid']) t = t+'{}Link: https://www.bbc.co.uk/programmes/{}'.format(prefix,j['pid']) t=t+'\n' return t for seriesid in seriesids: series_url = 'https://www.bbc.co.uk/programmes/{}.json'.format(seriesid) series_data = requests.get( series_url ).json() print(printProg(series_data['programme'])) seriesprogrammes_url = "http://www.bbc.co.uk/programmes/{}/children.json".format(seriesid) seriesprogrammes_data = requests.get( seriesprogrammes_url ).json() for programme in seriesprogrammes_data['children']['programmes']: print(printProg(programme,'\t')) print('\n-------------------\n') for pid in pids: programme_url = 'https://www.bbc.co.uk/programmes/{}.json'.format(pid) programme_data = requests.get(programme_url).json() print(printProg(programme_data['programme'])) print('\n-------------------\n') # In[ ]: