diff options
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 2 | ||||
| -rw-r--r-- | youtube_dl/extractor/viidea.py (renamed from youtube_dl/extractor/videolecturesnet.py) | 33 | 
2 files changed, 26 insertions, 9 deletions
| diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 94150a28f..0a90da73c 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -724,7 +724,6 @@ from .vh1 import VH1IE  from .vice import ViceIE  from .viddler import ViddlerIE  from .videodetective import VideoDetectiveIE -from .videolecturesnet import VideoLecturesNetIE  from .videofyme import VideofyMeIE  from .videomega import VideoMegaIE  from .videopremium import VideoPremiumIE @@ -734,6 +733,7 @@ from .vidme import VidmeIE  from .vidzi import VidziIE  from .vier import VierIE, VierVideosIE  from .viewster import ViewsterIE +from .viidea import ViideaIE  from .vimeo import (      VimeoIE,      VimeoAlbumIE, diff --git a/youtube_dl/extractor/videolecturesnet.py b/youtube_dl/extractor/viidea.py index 351706362..71fb298e6 100644 --- a/youtube_dl/extractor/videolecturesnet.py +++ b/youtube_dl/extractor/viidea.py @@ -15,9 +15,23 @@ from ..utils import (  ) -class VideoLecturesNetIE(InfoExtractor): -    _VALID_URL = r'http://(?:www\.)?videolectures\.net/(?P<id>[^/]+)(?:/video/(?P<part>\d+))?' -    IE_NAME = 'videolectures.net' +class ViideaIE(InfoExtractor): +    _VALID_URL = r'''(?x)http://(?:www\.)?(?: +            videolectures\.net| +            flexilearn\.viidea\.net| +            presentations\.ocwconsortium\.org| +            video\.travel-zoom\.si| +            video\.pomp-forum\.si| +            tv\.nil\.si| +            video\.hekovnik.com| +            video\.szko\.si| +            kpk\.viidea\.com| +            inside\.viidea\.net| +            video\.kiberpipa\.org| +            bvvideo\.si| +            kongres\.viidea\.net| +            edemokracija\.viidea\.com +        )(?:/lecture)?/(?P<id>[^/]+)(?:/video/(?P<part>\d+))?'''      _TESTS = [{          'url': 'http://videolectures.net/promogram_igor_mekjavic_eng/', @@ -87,7 +101,9 @@ class VideoLecturesNetIE(InfoExtractor):          lecture_id = str(cfg['obj_id']) -        lecture_data = self._download_json('%s/site/api/lecture/%s?format=json' % (self._proto_relative_url(cfg['livepipe'], 'http:'), lecture_id), lecture_id)['lecture'][0] +        base_url = self._proto_relative_url(cfg['livepipe'], 'http:') + +        lecture_data = self._download_json('%s/site/api/lecture/%s?format=json' % (base_url, lecture_id), lecture_id)['lecture'][0]          lecture_info = {              'id': lecture_id, @@ -104,7 +120,7 @@ class VideoLecturesNetIE(InfoExtractor):              if len(parts) == 1:                  part = str(parts[0])              if part: -                smil_url = 'http://videolectures.net/%s/video/%s/smil.xml' % (lecture_slug, part) +                smil_url = '%s/%s/video/%s/smil.xml' % (base_url, lecture_slug, part)                  smil = self._download_smil(smil_url, lecture_id)                  info = self._parse_smil(smil, smil_url, lecture_id)                  info['id'] = '%s_part%s' % (lecture_id, part) @@ -114,13 +130,14 @@ class VideoLecturesNetIE(InfoExtractor):                  return info              else:                  for part in parts: -                    entries.append(self.url_result('http://videolectures.net/%s/video/%s' % (lecture_slug, part), 'VideoLecturesNet')) +                    entries.append(self.url_result('%s/video/%s' % (base_url, lecture_id, part), 'Viidea'))                  lecture_info['_type'] = 'multi_video'          else:              # Probably a playlist +            playlist_webpage = self._download_webpage('%s/site/ajax/drilldown/?id=%s' % (base_url, lecture_id), lecture_id)              entries = [ -                self.url_result(compat_urlparse.urljoin(url, video_url), 'VideoLecturesNet') -                for _, video_url in re.findall(r'<a[^>]+href=(["\'])(.+?)\1[^>]+id=["\']lec=\d+', webpage)] +                self.url_result(compat_urlparse.urljoin(url, video_url), 'Viidea') +                for _, video_url in re.findall(r'<a[^>]+href=(["\'])(.+?)\1[^>]+id=["\']lec=\d+', playlist_webpage)]              lecture_info['_type'] = 'playlist'          lecture_info['entries'] = entries | 
