1 from .common
import InfoExtractor
8 class CrooksAndLiarsIE(InfoExtractor
):
9 _VALID_URL
= r
'https?://embed\.crooksandliars\.com/(?:embed|v)/(?P<id>[A-Za-z0-9]+)'
10 _EMBED_REGEX
= [r
'<(?:iframe[^>]+src|param[^>]+value)=(["\'])(?P
<url
>(?
:https?
:)?
//embed\
.crooksandliars\
.com
/(?
:embed|v
)/.+?
)\
1']
13 'url
': 'https
://embed
.crooksandliars
.com
/embed
/8RUoRhRi
',
17 'title
': 'Fox
& Friends Says Protecting Atheists From Discrimination Is Anti
-Christian
!',
18 'description
': 'md5
:e1a46ad1650e3a5ec7196d432799127f
',
19 'thumbnail
': r're
:^https?
://.*\
.jpg
',
20 'timestamp
': 1428207000,
21 'upload_date
': '20150405',
22 'uploader
': 'Heather
',
26 'url
': 'http
://embed
.crooksandliars
.com
/v
/MTE3MjUtMzQ2MzA
',
27 'only_matching
': True,
30 def _real_extract(self, url):
31 video_id = self._match_id(url)
33 webpage = self._download_webpage(
34 'http
://embed
.crooksandliars
.com
/embed
/%s' % video_id, video_id)
36 manifest = self._parse_json(
38 r'var\s
+manifest\s
*=\s
*({.+?}
)\n', webpage, 'manifest JSON
'),
41 quality = qualities(('webm_low
', 'mp4_low
', 'webm_high
', 'mp4_high
'))
45 'format_id
': item['type'],
46 'quality
': quality(item['type']),
47 } for item in manifest['flavors
'] if item['mime
'].startswith('video
/')]
48 self._sort_formats(formats)
53 'title
': manifest['title
'],
54 'description
': manifest.get('description
'),
55 'thumbnail
': self._proto_relative_url(manifest.get('poster
')),
56 'timestamp
': int_or_none(manifest.get('created
')),
57 'uploader
': manifest.get('author
'),
58 'duration
': int_or_none(manifest.get('duration
')),