diff options
| -rw-r--r-- | docs/supportedsites.md | 1 | ||||
| -rw-r--r-- | youtube_dl/extractor/common.py | 6 | ||||
| -rw-r--r-- | youtube_dl/extractor/cspan.py | 7 | ||||
| -rw-r--r-- | youtube_dl/extractor/instagram.py | 16 | ||||
| -rw-r--r-- | youtube_dl/extractor/spankbang.py | 4 | ||||
| -rw-r--r-- | youtube_dl/version.py | 2 | 
6 files changed, 31 insertions, 5 deletions
| diff --git a/docs/supportedsites.md b/docs/supportedsites.md index e86467cfa..eb68c23b5 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -180,6 +180,7 @@   - **ExpoTV**   - **ExtremeTube**   - **facebook** + - **facebook:post**   - **faz.net**   - **fc2**   - **Fczenit** diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 11191c173..33290fd74 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -825,6 +825,12 @@ class InfoExtractor(object):          if not formats:              raise ExtractorError('No video formats found') +        for f in formats: +            # Automatically determine tbr when missing based on abr and vbr (improves +            # formats sorting in some cases) +            if 'tbr' not in f and 'abr' in f and 'vbr' in f: +                f['tbr'] = f['abr'] + f['vbr'] +          def _formats_key(f):              # TODO remove the following workaround              from ..utils import determine_ext diff --git a/youtube_dl/extractor/cspan.py b/youtube_dl/extractor/cspan.py index f78cbbd7e..b78edf729 100644 --- a/youtube_dl/extractor/cspan.py +++ b/youtube_dl/extractor/cspan.py @@ -112,6 +112,13 @@ class CSpanIE(InfoExtractor):                      'height': int_or_none(get_text_attr(quality, 'height')),                      'tbr': int_or_none(get_text_attr(quality, 'bitrate')),                  }) +            if not formats: +                path = get_text_attr(f, 'path') +                if not path: +                    continue +                formats = self._extract_m3u8_formats( +                    path, video_id, 'mp4', entry_protocol='m3u8_native', +                    m3u8_id='hls') if determine_ext(path) == 'm3u8' else [{'url': path, }]              self._sort_formats(formats)              entries.append({                  'id': '%s_%d' % (video_id, partnum + 1), diff --git a/youtube_dl/extractor/instagram.py b/youtube_dl/extractor/instagram.py index e5e16ca3b..ed3e07118 100644 --- a/youtube_dl/extractor/instagram.py +++ b/youtube_dl/extractor/instagram.py @@ -22,6 +22,18 @@ class InstagramIE(InfoExtractor):              'description': 'md5:1f17f0ab29bd6fe2bfad705f58de3cb8',          }      }, { +        # missing description +        'url': 'https://www.instagram.com/p/BA-pQFBG8HZ/?taken-by=britneyspears', +        'info_dict': { +            'id': 'BA-pQFBG8HZ', +            'ext': 'mp4', +            'uploader_id': 'britneyspears', +            'title': 'Video by britneyspears', +        }, +        'params': { +            'skip_download': True, +        }, +    }, {          'url': 'https://instagram.com/p/-Cmh1cukG2/',          'only_matching': True,      }] @@ -32,8 +44,8 @@ class InstagramIE(InfoExtractor):          webpage = self._download_webpage(url, video_id)          uploader_id = self._search_regex(r'"owner":{"username":"(.+?)"',                                           webpage, 'uploader id', fatal=False) -        desc = self._search_regex(r'"caption":"(.*?)"', webpage, 'description', -                                  fatal=False) +        desc = self._search_regex( +            r'"caption":"(.+?)"', webpage, 'description', default=None)          return {              'id': video_id, diff --git a/youtube_dl/extractor/spankbang.py b/youtube_dl/extractor/spankbang.py index 7f060b15b..3cfa671ed 100644 --- a/youtube_dl/extractor/spankbang.py +++ b/youtube_dl/extractor/spankbang.py @@ -34,11 +34,11 @@ class SpankBangIE(InfoExtractor):              'ext': 'mp4',              'format_id': '%sp' % height,              'height': int(height), -        } for height in re.findall(r'<span[^>]+q_(\d+)p', webpage)] +        } for height in re.findall(r'<(?:span|li)[^>]+q_(\d+)p', webpage)]          self._sort_formats(formats)          title = self._html_search_regex( -            r'(?s)<h1>(.+?)</h1>', webpage, 'title') +            r'(?s)<h1[^>]*>(.+?)</h1>', webpage, 'title')          description = self._search_regex(              r'class="desc"[^>]*>([^<]+)',              webpage, 'description', default=None) diff --git a/youtube_dl/version.py b/youtube_dl/version.py index d5bf73815..4ac7f9e93 100644 --- a/youtube_dl/version.py +++ b/youtube_dl/version.py @@ -1,3 +1,3 @@  from __future__ import unicode_literals -__version__ = '2016.01.23' +__version__ = '2016.01.27' | 
