|
|
|
@ -1291,7 +1291,8 @@ class BBCIE(BBCCoUkIE): # XXX: Do not subclass from concrete IE
|
|
|
|
|
**traverse_obj(model, {
|
|
|
|
|
'title': ('title', {str}),
|
|
|
|
|
'thumbnail': ('imageUrl', {lambda u: urljoin(url, u.replace('$recipe', 'raw'))}),
|
|
|
|
|
'description': ('synopses', ('long', 'medium', 'short'), {str}, any),
|
|
|
|
|
'description': (
|
|
|
|
|
'synopses', ('long', 'medium', 'short'), {str}, any),
|
|
|
|
|
'duration': ('versions', 0, 'duration', {int}),
|
|
|
|
|
'timestamp': ('versions', 0, 'availableFrom', {k_int_or_none}),
|
|
|
|
|
})
|
|
|
|
@ -1358,8 +1359,8 @@ class BBCIE(BBCCoUkIE): # XXX: Do not subclass from concrete IE
|
|
|
|
|
'description': strip_or_none(item_desc),
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
for resp in traverse_obj(initial_data, ('data', lambda _, v: v['name'])):
|
|
|
|
|
name = resp['name']
|
|
|
|
|
for resp in (initial_data.get('data') or {}).values():
|
|
|
|
|
name = resp.get('name')
|
|
|
|
|
if name == 'media-experience':
|
|
|
|
|
parse_media(try_get(resp, lambda x: x['data']['initialItem']['mediaItem'], dict))
|
|
|
|
|
elif name == 'article':
|
|
|
|
@ -1405,7 +1406,9 @@ class BBCIE(BBCCoUkIE): # XXX: Do not subclass from concrete IE
|
|
|
|
|
**traverse_obj(model, {
|
|
|
|
|
'title': ('title', {str}),
|
|
|
|
|
'thumbnail': ('imageUrl', {lambda u: urljoin(url, u.replace('$recipe', 'raw'))}),
|
|
|
|
|
'description': ('synopses', ('long', 'medium', 'short'), {str}, any),
|
|
|
|
|
'description': (
|
|
|
|
|
'synopses', ('long', 'medium', 'short'), {str}, any
|
|
|
|
|
),
|
|
|
|
|
'timestamp': ('firstPublished', {k_int_or_none}),
|
|
|
|
|
}),
|
|
|
|
|
}
|
|
|
|
|