[viidea] add support for sites using viidea service

pull/8/head
remitamine 2015-11-06 21:23:41 +01:00 zatwierdzone przez Sergey M․
rodzic ee4337d100
commit a06bf87a2c
2 zmienionych plików z 26 dodań i 9 usunięć

Wyświetl plik

@ -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,

Wyświetl plik

@ -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