[viidea] add support for sites using viidea service
This commit is contained in:
		@@ -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,
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
		Reference in New Issue
	
	Block a user