import re
from .common import InfoExtractor
-from ..compat import compat_str
from ..utils import (
+ ISO639Utils,
+ OnDemandPagedList,
float_or_none,
int_or_none,
- ISO639Utils,
join_nonempty,
- OnDemandPagedList,
parse_duration,
str_or_none,
str_to_int,
return subtitles
def _parse_video_data(self, video_data):
- video_id = compat_str(video_data['id'])
+ video_id = str(video_data['id'])
title = video_data['title']
s3_extracted = False
})
s3_extracted = True
formats.append(f)
- self._sort_formats(formats)
return {
'id': video_id,
page += 1
query['page'] = page
for element_data in self._call_api(
- self._RESOURCE, display_id, query, 'Download Page %d' % page):
+ self._RESOURCE, display_id, query, f'Download Page {page}'):
yield self._process_data(element_data)
def _extract_playlist_entries(self, display_id, query):
class AdobeTVVideoIE(AdobeTVBaseIE):
IE_NAME = 'adobetv:video'
_VALID_URL = r'https?://video\.tv\.adobe\.com/v/(?P<id>\d+)'
+ _EMBED_REGEX = [r'<iframe[^>]+src=[\'"](?P<url>(?:https?:)?//video\.tv\.adobe\.com/v/\d+[^"]+)[\'"]']
_TEST = {
# From https://helpx.adobe.com/acrobat/how-to/new-experience-acrobat-dc.html?set=acrobat--get-started--essential-beginners
'width': int_or_none(source.get('width') or None),
'url': source_src,
})
- self._sort_formats(formats)
# For both metadata and downloaded files the duration varies among
# formats. I just pick the max one