[viidea] add support for sites using viidea service

pull/2/head
remitamine 9 years ago committed by Sergey M․
parent ee4337d100
commit a06bf87a2c

@ -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
Loading…
Cancel
Save