categories: A list of categories that the video falls in, for example
["Sports", "Berlin"]
tags: A list of tags assigned to the video, e.g. ["sweden", "pop music"]
+ cast: A list of the video cast
is_live: True, False, or None (=unknown). Whether this video is a
live stream that goes on instead of a fixed-length video.
was_live: True, False, or None (=unknown). Whether this video was
)
from .openload import PhantomJSwrapper
from ..utils import (
+ clean_html,
determine_ext,
ExtractorError,
int_or_none,
'age_limit': 18,
'tags': list,
'categories': list,
+ 'cast': list,
},
}, {
# non-ASCII title
r'(?s)<div[^>]+\bclass=["\'].*?\b%sWrapper[^>]*>(.+?)</div>'
% meta_key, webpage, meta_key, default=None)
if div:
- return re.findall(r'<a[^>]+\bhref=[^>]+>([^<]+)', div)
+ return [clean_html(x).strip() for x in re.findall(r'(?s)<a[^>]+\bhref=[^>]+>.+?</a>', div)]
info = self._search_json_ld(webpage, video_id, default={})
# description provided in JSON-LD is irrelevant
'age_limit': 18,
'tags': extract_list('tags'),
'categories': extract_list('categories'),
+ 'cast': extract_list('pornstars'),
'subtitles': subtitles,
}, info)