]>
Commit | Line | Data |
---|---|---|
1 | import re | |
2 | ||
3 | from .common import InfoExtractor | |
4 | ||
5 | ||
6 | class AtScaleConfEventIE(InfoExtractor): | |
7 | _VALID_URL = r'https?://(?:www\.)?atscaleconference\.com/events/(?P<id>[^/&$?]+)' | |
8 | ||
9 | _TESTS = [{ | |
10 | 'url': 'https://atscaleconference.com/events/data-scale-spring-2022/', | |
11 | 'playlist_mincount': 13, | |
12 | 'info_dict': { | |
13 | 'id': 'data-scale-spring-2022', | |
14 | 'title': 'Data @Scale Spring 2022', | |
15 | 'description': 'md5:7d7ca1c42ac9c6d8a785092a1aea4b55' | |
16 | }, | |
17 | }, { | |
18 | 'url': 'https://atscaleconference.com/events/video-scale-2021/', | |
19 | 'playlist_mincount': 14, | |
20 | 'info_dict': { | |
21 | 'id': 'video-scale-2021', | |
22 | 'title': 'Video @Scale 2021', | |
23 | 'description': 'md5:7d7ca1c42ac9c6d8a785092a1aea4b55' | |
24 | }, | |
25 | }] | |
26 | ||
27 | def _real_extract(self, url): | |
28 | id = self._match_id(url) | |
29 | webpage = self._download_webpage(url, id) | |
30 | ||
31 | return self.playlist_from_matches( | |
32 | re.findall(r'data-url\s*=\s*"(https?://(?:www\.)?atscaleconference\.com/videos/[^"]+)"', webpage), | |
33 | ie='Generic', playlist_id=id, | |
34 | title=self._og_search_title(webpage), description=self._og_search_description(webpage)) |