diff --git a/youtube_dl/extractor/mp4upload.py b/youtube_dl/extractor/mp4upload.py
index d03b4cc78..fc0d0daea 100644
--- a/youtube_dl/extractor/mp4upload.py
+++ b/youtube_dl/extractor/mp4upload.py
@@ -12,6 +12,7 @@ from ..utils import (
int_or_none,
float_or_none,
parse_filesize,
+ parse_resolution,
strip_or_none,
)
from .common import InfoExtractor
@@ -35,6 +36,7 @@ class Mp4UploadIE(InfoExtractor):
'acodec': 'ffaac',
'asr': 44100,
'abr': 96,
+ 'vbr': 266,
'upload_date': '20160702',
},
}, {
@@ -55,77 +57,86 @@ class Mp4UploadIE(InfoExtractor):
if not title:
raise ExtractorError('Title not found', expected=True, video_id=video_id)
- info_dict = {
- 'title': title,
- 'id': video_id,
- }
-
- embedpage = self._download_webpage(embed_url, video_id, note='Downloading embed webpage')
-
- # It contains only `source url` and `thumbnail`
- poor_info_dict = self._extract_jwplayer_data(
- decode_packed_codes(
- get_element_by_id('player', embedpage)
- ).replace('\\\'', '"'),
- video_id, base_url=embed_url, require_title=False
- )
- if not poor_info_dict:
+ try:
+ # It contains only `source url` and `thumbnail`
+ jw_dict = self._extract_jwplayer_data(
+ decode_packed_codes(
+ get_element_by_id(
+ 'player',
+ self._download_webpage(embed_url, video_id, note='Downloading embed webpage')
+ )
+ ).replace('\\\'', '"'),
+ video_id, base_url=embed_url, require_title=False
+ )
+ except TypeError:
+ jw_dict = None
+ if not jw_dict:
raise ExtractorError('I can\'t find player data', video_id=video_id)
- info_dict['thumbnail'] = poor_info_dict.get('thumbnail')
- _f = {
- 'url': poor_info_dict.get('formats', [{}])[0].get('url'),
- 'ext': poor_info_dict.get('formats', [{}])[0].get('ext'),
- 'format_id': '1',
- }
+ acodec = None
+ asr = None
+ abr = None
+ audio_raw = self._html_search_regex(
+ r'
Audio info:(.+?)',
+ webpage, 'audioinfo', fatal=False)
+ if audio_raw:
+ audmatch = re.search(r'(.+?), (\d+) kbps, (\d+) Hz', audio_raw)
+ if audmatch:
+ (acodec, abr, asr) = audmatch.groups()
- file_info = re.findall(
- r'>(?P