|
|
|
@ -546,11 +546,29 @@ class NiconicoIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
webpage_url = get_video_info_web('watch_url') or url
|
|
|
|
|
|
|
|
|
|
# for channel movie and community movie
|
|
|
|
|
channel_id = try_get(
|
|
|
|
|
api_data,
|
|
|
|
|
(lambda x: x['channel']['globalId'],
|
|
|
|
|
lambda x: x['community']['globalId']))
|
|
|
|
|
channel = try_get(
|
|
|
|
|
api_data,
|
|
|
|
|
(lambda x: x['channel']['name'],
|
|
|
|
|
lambda x: x['community']['name']))
|
|
|
|
|
|
|
|
|
|
# Note: cannot use api_data.get('owner', {}) because owner may be set to "null"
|
|
|
|
|
# in the JSON, which will cause None to be returned instead of {}.
|
|
|
|
|
owner = try_get(api_data, lambda x: x.get('owner'), dict) or {}
|
|
|
|
|
uploader_id = get_video_info_web(['ch_id', 'user_id']) or owner.get('id')
|
|
|
|
|
uploader = get_video_info_web(['ch_name', 'user_nickname']) or owner.get('nickname')
|
|
|
|
|
uploader_id = (
|
|
|
|
|
get_video_info_web(['ch_id', 'user_id'])
|
|
|
|
|
or owner.get('id')
|
|
|
|
|
or channel_id
|
|
|
|
|
)
|
|
|
|
|
uploader = (
|
|
|
|
|
get_video_info_web(['ch_name', 'user_nickname'])
|
|
|
|
|
or owner.get('nickname')
|
|
|
|
|
or channel
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
'id': video_id,
|
|
|
|
@ -561,6 +579,8 @@ class NiconicoIE(InfoExtractor):
|
|
|
|
|
'uploader': uploader,
|
|
|
|
|
'timestamp': timestamp,
|
|
|
|
|
'uploader_id': uploader_id,
|
|
|
|
|
'channel': channel,
|
|
|
|
|
'channel_id': channel_id,
|
|
|
|
|
'view_count': view_count,
|
|
|
|
|
'comment_count': comment_count,
|
|
|
|
|
'duration': duration,
|
|
|
|
|