mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-15 21:03:18 +00:00
[viidea] add support for sites using viidea service
This commit is contained in:
parent
ee4337d100
commit
a06bf87a2c
|
@ -724,7 +724,6 @@
|
||||||
from .vice import ViceIE
|
from .vice import ViceIE
|
||||||
from .viddler import ViddlerIE
|
from .viddler import ViddlerIE
|
||||||
from .videodetective import VideoDetectiveIE
|
from .videodetective import VideoDetectiveIE
|
||||||
from .videolecturesnet import VideoLecturesNetIE
|
|
||||||
from .videofyme import VideofyMeIE
|
from .videofyme import VideofyMeIE
|
||||||
from .videomega import VideoMegaIE
|
from .videomega import VideoMegaIE
|
||||||
from .videopremium import VideoPremiumIE
|
from .videopremium import VideoPremiumIE
|
||||||
|
@ -734,6 +733,7 @@
|
||||||
from .vidzi import VidziIE
|
from .vidzi import VidziIE
|
||||||
from .vier import VierIE, VierVideosIE
|
from .vier import VierIE, VierVideosIE
|
||||||
from .viewster import ViewsterIE
|
from .viewster import ViewsterIE
|
||||||
|
from .viidea import ViideaIE
|
||||||
from .vimeo import (
|
from .vimeo import (
|
||||||
VimeoIE,
|
VimeoIE,
|
||||||
VimeoAlbumIE,
|
VimeoAlbumIE,
|
||||||
|
|
|
@ -15,9 +15,23 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class VideoLecturesNetIE(InfoExtractor):
|
class ViideaIE(InfoExtractor):
|
||||||
_VALID_URL = r'http://(?:www\.)?videolectures\.net/(?P<id>[^/]+)(?:/video/(?P<part>\d+))?'
|
_VALID_URL = r'''(?x)http://(?:www\.)?(?:
|
||||||
IE_NAME = 'videolectures.net'
|
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 = [{
|
_TESTS = [{
|
||||||
'url': 'http://videolectures.net/promogram_igor_mekjavic_eng/',
|
'url': 'http://videolectures.net/promogram_igor_mekjavic_eng/',
|
||||||
|
@ -87,7 +101,9 @@ def _real_extract(self, url):
|
||||||
|
|
||||||
lecture_id = str(cfg['obj_id'])
|
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 = {
|
lecture_info = {
|
||||||
'id': lecture_id,
|
'id': lecture_id,
|
||||||
|
@ -104,7 +120,7 @@ def _real_extract(self, url):
|
||||||
if len(parts) == 1:
|
if len(parts) == 1:
|
||||||
part = str(parts[0])
|
part = str(parts[0])
|
||||||
if part:
|
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)
|
smil = self._download_smil(smil_url, lecture_id)
|
||||||
info = self._parse_smil(smil, smil_url, lecture_id)
|
info = self._parse_smil(smil, smil_url, lecture_id)
|
||||||
info['id'] = '%s_part%s' % (lecture_id, part)
|
info['id'] = '%s_part%s' % (lecture_id, part)
|
||||||
|
@ -114,13 +130,14 @@ def _real_extract(self, url):
|
||||||
return info
|
return info
|
||||||
else:
|
else:
|
||||||
for part in parts:
|
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'
|
lecture_info['_type'] = 'multi_video'
|
||||||
else:
|
else:
|
||||||
# Probably a playlist
|
# Probably a playlist
|
||||||
|
playlist_webpage = self._download_webpage('%s/site/ajax/drilldown/?id=%s' % (base_url, lecture_id), lecture_id)
|
||||||
entries = [
|
entries = [
|
||||||
self.url_result(compat_urlparse.urljoin(url, video_url), 'VideoLecturesNet')
|
self.url_result(compat_urlparse.urljoin(url, video_url), 'Viidea')
|
||||||
for _, video_url in re.findall(r'<a[^>]+href=(["\'])(.+?)\1[^>]+id=["\']lec=\d+', webpage)]
|
for _, video_url in re.findall(r'<a[^>]+href=(["\'])(.+?)\1[^>]+id=["\']lec=\d+', playlist_webpage)]
|
||||||
lecture_info['_type'] = 'playlist'
|
lecture_info['_type'] = 'playlist'
|
||||||
|
|
||||||
lecture_info['entries'] = entries
|
lecture_info['entries'] = entries
|
Loading…
Reference in a new issue