diff --git a/youtube_dl/extractor/kankids.py b/youtube_dl/extractor/kankids.py index f6f5ae38c..38866dc6f 100644 --- a/youtube_dl/extractor/kankids.py +++ b/youtube_dl/extractor/kankids.py @@ -2,9 +2,10 @@ from __future__ import unicode_literals from .common import InfoExtractor +import re class KanKidsIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?kankids\.org\.il/content/kids/(?P[a-z]+)-main/p-(?P[0-9]+)/(?P\w+/)?$' + _VALID_URL = r'https?://(?:www\.)?kankids\.org\.il/content/kids/(?P[a-z]+)-main/p-(?P[0-9]+)/(?P\w+)?/?$' _TEST = { 'url': 'https://www.kankids.org.il/content/kids/hinuchit-main/p-12050/', 'md5': 'TODO: md5 sum of the first 10241 bytes of the video file (use --test)', @@ -22,17 +23,32 @@ class KanKidsIE(InfoExtractor): } def _real_extract(self, url): - a = super()._match_valid_url(url) - print(a.groupdict()) - video_id = self._match_id(url) - webpage = self._download_webpage(url, video_id) + m = super()._match_valid_url(url) + series_id = m.group('id') + category = m.group('category') + playlist_season = m.group('season') + + webpage = self._download_webpage(url, series_id) - # TODO more code goes here, for example ... - # title = self._html_search_regex(r'

(.+?)

', webpage, 'title') - title = 'hi' + series_title = self._html_search_regex(r'(?P<title>.+) \|', webpage, 'title') + + season = playlist_season if playlist_season else '(?P<season>\w+)' + playlist = set(re.findall( + r'href="/content/kids/' + # Content dir + category + r'-main/' + # Category + 'p-' + series_id + '/' + # Series + season + '/' + # Season + '(?P<id>[0-9]+)/"' + # Episode + '.+title="(?P<title>.+)"' # Title + , webpage)) + # , 'Episode list') + print('playlist:', playlist) + + for season, video_id, title in playlist if not playlist_season else map(lambda episode: (playlist_season,) + episode, playlist): + pass return { - 'id': video_id, + 'id': series_id, 'title': title, 'description': self._og_search_description(webpage), 'url': 'https://www.kankids.org.il/content/kids/hinuchit-main/p-12050/s1/89707/',