]>
jfr.im git - yt-dlp.git/blob - yt_dlp/extractor/cloudycdn.py
1 from .common
import InfoExtractor
8 from ..utils
.traversal
import traverse_obj
11 class CloudyCDNIE(InfoExtractor
):
12 _VALID_URL
= r
'(?:https?:)?//embed\.cloudycdn\.services/(?P<site_id>[^/?#]+)/media/(?P<id>[\w-]+)'
13 _EMBED_REGEX
= [rf
'<iframe[^>]+\bsrc=[\'"](?P<url>{_VALID_URL})']
15 'url': 'https://embed.cloudycdn.services/ltv/media/46k_d23-6000-105?',
16 'md5': '64f72a360ca530d5ed89c77646c9eee5',
18 'id': '46k_d23-6000-105',
20 'timestamp': 1700589151,
22 'upload_date': '20231121',
23 'title': 'D23-6000-105_cetstud',
24 'thumbnail': 'https://store.cloudycdn.services/tmsp00060/assets/media/660858/placeholder1700589200.jpg',
27 'url': 'https://embed.cloudycdn.services/izm/media/26e_lv-8-5-1',
28 'md5': '798828a479151e2444d8dcfbec76e482',
33 'timestamp': 1669767167,
34 'thumbnail': 'https://store.cloudycdn.services/tmsp00120/assets/media/488306/placeholder1679423604.jpg',
36 'upload_date': '20221130',
40 'url': 'https://www.tavaklase.lv/video/es-esmu-mina-um-2/',
41 'md5': '63074e8e6c84ac2a01f2fb8bf03b8f43',
45 'upload_date': '20230223',
47 'thumbnail': 'https://store.cloudycdn.services/tmsp00120/assets/media/518407/placeholder1678748124.jpg',
48 'timestamp': 1677181513,
53 def _real_extract(self
, url
):
54 site_id
, video_id
= self
._match
_valid
_url
(url
).group('site_id', 'id')
56 data
= self
._download
_json
(
57 f
'https://player.cloudycdn.services/player/{site_id}/media/{video_id}/',
58 video_id
, data
=urlencode_postdata({
63 formats
, subtitles
= [], {}
64 for m3u8_url
in traverse_obj(data
, ('source', 'sources', ..., 'src', {url_or_none}
)):
65 fmts
, subs
= self
._extract
_m
3u8_formats
_and
_subtitles
(m3u8_url
, video_id
, fatal
=False)
67 self
._merge
_subtitles
(subs
, target
=subtitles
)
72 'subtitles': subtitles
,
73 **traverse_obj(data
, {
74 'title': ('name', {str}
),
75 'duration': ('duration', {int_or_none}
),
76 'timestamp': ('upload_date', {parse_iso8601}
),
77 'thumbnail': ('source', 'poster', {url_or_none}
),