mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-06-12 13:54:28 +00:00
Closes #2623 Closes #2679 Closes #2821 Closes #3416 Closes #4828 Closes #4939 Closes #5421 Closes #7064 Closes #7264 Closes #7654 Closes #8075 Closes #8798 Closes #9313 Closes #9617 Closes #10162 Closes #10252 Closes #10264 Closes #15640 Authored by: doe1080, bashonly Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
import urllib.parse
|
|
|
|
from .common import InfoExtractor
|
|
from .slideslive import SlidesLiveIE
|
|
from ..utils import (
|
|
remove_start,
|
|
update_url_query,
|
|
url_or_none,
|
|
)
|
|
|
|
|
|
class VideoKenPlayerIE(InfoExtractor):
|
|
_VALID_URL = r'https?://player\.videoken\.com/embed/slideslive-(?P<id>\d+)'
|
|
_TESTS = [{
|
|
'url': 'https://player.videoken.com/embed/slideslive-38968434',
|
|
'info_dict': {
|
|
'id': '38968434',
|
|
'ext': 'mp4',
|
|
'title': 'Deep Learning with Label Differential Privacy',
|
|
'timestamp': 1643377020,
|
|
'upload_date': '20220128',
|
|
'thumbnail': r're:^https?://.*\.(?:jpg|png)',
|
|
'thumbnails': 'count:30',
|
|
'chapters': 'count:29',
|
|
},
|
|
'params': {
|
|
'skip_download': 'm3u8',
|
|
},
|
|
}]
|
|
|
|
def _create_slideslive_url(self, video_url, video_id, referer):
|
|
if not video_url and not video_id:
|
|
return
|
|
elif not video_url or 'embed/sign-in' in video_url:
|
|
video_url = f'https://slideslive.com/embed/{remove_start(video_id, "slideslive-")}'
|
|
if url_or_none(referer):
|
|
return update_url_query(video_url, {
|
|
'embed_parent_url': referer,
|
|
'embed_container_origin': f'https://{urllib.parse.urlparse(referer).hostname}',
|
|
})
|
|
return video_url
|
|
|
|
def _real_extract(self, url):
|
|
video_id = self._match_id(url)
|
|
return self.url_result(
|
|
self._create_slideslive_url(None, video_id, url), SlidesLiveIE, video_id)
|