[vimeo] Extract JSON LD (closes #16295)

This commit is contained in:
Sergey M․ 2018-04-28 02:48:20 +07:00
parent e7e4a6e0f9
commit ae1c585cee
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D

View file

@ -16,6 +16,7 @@ from ..utils import (
ExtractorError, ExtractorError,
InAdvancePagedList, InAdvancePagedList,
int_or_none, int_or_none,
merge_dicts,
NO_DEFAULT, NO_DEFAULT,
RegexNotFoundError, RegexNotFoundError,
sanitized_Request, sanitized_Request,
@ -639,16 +640,18 @@ class VimeoIE(VimeoBaseInfoExtractor):
'preference': 1, 'preference': 1,
}) })
info_dict = self._parse_config(config, video_id) info_dict_config = self._parse_config(config, video_id)
formats.extend(info_dict['formats']) formats.extend(info_dict_config['formats'])
self._vimeo_sort_formats(formats) self._vimeo_sort_formats(formats)
json_ld = self._search_json_ld(webpage, video_id, default={})
if not cc_license: if not cc_license:
cc_license = self._search_regex( cc_license = self._search_regex(
r'<link[^>]+rel=["\']license["\'][^>]+href=(["\'])(?P<license>(?:(?!\1).)+)\1', r'<link[^>]+rel=["\']license["\'][^>]+href=(["\'])(?P<license>(?:(?!\1).)+)\1',
webpage, 'license', default=None, group='license') webpage, 'license', default=None, group='license')
info_dict.update({ info_dict = {
'id': video_id, 'id': video_id,
'formats': formats, 'formats': formats,
'timestamp': unified_timestamp(timestamp), 'timestamp': unified_timestamp(timestamp),
@ -658,7 +661,9 @@ class VimeoIE(VimeoBaseInfoExtractor):
'like_count': like_count, 'like_count': like_count,
'comment_count': comment_count, 'comment_count': comment_count,
'license': cc_license, 'license': cc_license,
}) }
info_dict = merge_dicts(info_dict, info_dict_config, json_ld)
return info_dict return info_dict