- cfg_url = ('https://cdn-fck.%sflix.com/%sflix/%s%s.fid?key=%s&VID=%s&premium=1&vip=1&alpha'
- % (self._HOST, self._HOST, inputs['vkey'], self._VKEY_SUFFIX, inputs['nkey'], video_id))
-
- cfg_xml = self._download_xml(
- cfg_url, display_id, 'Downloading metadata',
- transform_source=fix_xml_ampersands, headers={'Referer': url})
-
- formats = []
-
- def extract_video_url(vl):
- # Any URL modification now results in HTTP Error 403: Forbidden
- return unescapeHTML(vl.text)
-
- video_link = cfg_xml.find('./videoLink')
- if video_link is not None:
- formats.append({
- 'url': extract_video_url(video_link),
- 'ext': xpath_text(cfg_xml, './videoConfig/type', 'type', default='flv'),
- })
-
- for item in cfg_xml.findall('./quality/item'):
- video_link = item.find('./videoLink')
- if video_link is None:
- continue
- res = item.find('res')
- format_id = None if res is None else res.text
- height = int_or_none(self._search_regex(
- r'^(\d+)[pP]', format_id, 'height', default=None))
- formats.append({
- 'url': self._proto_relative_url(extract_video_url(video_link), 'http:'),
- 'format_id': format_id,
- 'height': height,
+ if inputs.get('vkey') and inputs.get('nkey'):
+ cfg_url = f'https://www.{host}.com/cdn/cdn.php'
+ query.update({
+ 'file': inputs['vkey'],
+ 'key': inputs['nkey'],
+ 'VID': video_id,
+ 'premium': '1',
+ 'vip': '1',
+ 'alpha': '',
+ })
+
+ formats, json_ld = [], {}
+
+ # TNAFlix and MovieFap extraction
+ if cfg_url:
+ cfg_xml = self._download_xml(
+ cfg_url, display_id, 'Downloading metadata',
+ transform_source=fix_xml_ampersands, headers={'Referer': url}, query=query)
+
+ def extract_video_url(vl):
+ # Any URL modification now results in HTTP Error 403: Forbidden
+ return unescapeHTML(vl.text)
+
+ video_link = cfg_xml.find('./videoLink')
+ if video_link is not None:
+ formats.append({
+ 'url': extract_video_url(video_link),
+ 'ext': xpath_text(cfg_xml, './videoConfig/type', 'type', default='flv'),
+ })
+
+ for item in cfg_xml.findall('./quality/item'):
+ video_link = item.find('./videoLink')
+ if video_link is None:
+ continue
+ res = item.find('res')
+ format_id = None if res is None else res.text
+ height = int_or_none(self._search_regex(
+ r'^(\d+)[pP]', format_id, 'height', default=None))
+ formats.append({
+ 'url': self._proto_relative_url(extract_video_url(video_link), 'http:'),
+ 'format_id': format_id,
+ 'height': height,
+ })
+
+ thumbnails = self._extract_thumbnails(cfg_xml) or []
+ thumbnails.append({
+ 'url': self._proto_relative_url(xpath_text(cfg_xml, './startThumb', 'thumbnail'), 'http:')