diff options
| -rw-r--r-- | Makefile | 8 | ||||
| -rw-r--r-- | youtube_dl/extractor/livestream.py | 23 | ||||
| -rw-r--r-- | youtube_dl/extractor/shared.py | 4 | 
3 files changed, 23 insertions, 12 deletions
| @@ -6,10 +6,10 @@ clean:  cleanall: clean  	rm -f youtube-dl youtube-dl.exe -PREFIX=/usr/local -BINDIR=$(PREFIX)/bin -MANDIR=$(PREFIX)/man -PYTHON=/usr/bin/env python +PREFIX ?= /usr/local +BINDIR ?= $(PREFIX)/bin +MANDIR ?= $(PREFIX)/man +PYTHON ?= /usr/bin/env python  # set SYSCONFDIR to /etc if PREFIX=/usr or PREFIX=/usr/local  ifeq ($(PREFIX),/usr) diff --git a/youtube_dl/extractor/livestream.py b/youtube_dl/extractor/livestream.py index c0c2d9b09..281a0ce40 100644 --- a/youtube_dl/extractor/livestream.py +++ b/youtube_dl/extractor/livestream.py @@ -111,17 +111,28 @@ class LivestreamIE(InfoExtractor):          event_name = mobj.group('event_name')          webpage = self._download_webpage(url, video_id or event_name) -        if video_id is None: -            # This is an event page: +        og_video = self._og_search_video_url(webpage, 'player url', fatal=False, default=None) +        if og_video is None:              config_json = self._search_regex(                  r'window.config = ({.*?});', webpage, 'window config')              info = json.loads(config_json)['event'] + +            def is_relevant(vdata, vid): +                result = vdata['type'] == 'video' +                if video_id is not None: +                    result = result and compat_str(vdata['data']['id']) == vid +                return result +              videos = [self._extract_video_info(video_data['data']) -                for video_data in info['feed']['data'] -                if video_data['type'] == 'video'] -            return self.playlist_result(videos, info['id'], info['full_name']) +                      for video_data in info['feed']['data'] +                      if is_relevant(video_data, video_id)] +            if video_id is None: +                # This is an event page: +                return self.playlist_result(videos, info['id'], info['full_name']) +            else: +                if videos: +                    return videos[0]          else: -            og_video = self._og_search_video_url(webpage, 'player url')              query_str = compat_urllib_parse_urlparse(og_video).query              query = compat_urlparse.parse_qs(query_str)              api_url = query['play_url'][0].replace('.smil', '') diff --git a/youtube_dl/extractor/shared.py b/youtube_dl/extractor/shared.py index 8607482be..badba2ac6 100644 --- a/youtube_dl/extractor/shared.py +++ b/youtube_dl/extractor/shared.py @@ -17,11 +17,11 @@ class SharedIE(InfoExtractor):      _TEST = {          'url': 'http://shared.sx/0060718775', -        'md5': '53e1c58fc3e777ae1dfe9e57ba2f9c72', +        'md5': '106fefed92a8a2adb8c98e6a0652f49b',          'info_dict': {              'id': '0060718775',              'ext': 'mp4', -            'title': 'Big Buck Bunny Trailer', +            'title': 'Bmp4',          },      } | 
