]>
Commit | Line | Data |
---|---|---|
c82a4a8f AG |
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', | |
add96eb9 | 15 | 'description': 'md5:7d7ca1c42ac9c6d8a785092a1aea4b55', |
c82a4a8f AG |
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', | |
add96eb9 | 23 | 'description': 'md5:7d7ca1c42ac9c6d8a785092a1aea4b55', |
c82a4a8f AG |
24 | }, |
25 | }] | |
26 | ||
27 | def _real_extract(self, url): | |
add96eb9 | 28 | playlist_id = self._match_id(url) |
29 | webpage = self._download_webpage(url, playlist_id) | |
c82a4a8f AG |
30 | |
31 | return self.playlist_from_matches( | |
32 | re.findall(r'data-url\s*=\s*"(https?://(?:www\.)?atscaleconference\.com/videos/[^"]+)"', webpage), | |
add96eb9 | 33 | ie='Generic', playlist_id=playlist_id, |
c82a4a8f | 34 | title=self._og_search_title(webpage), description=self._og_search_description(webpage)) |