1 from .common
import InfoExtractor
2 from ..utils
import ExtractorError
, int_or_none
, parse_iso8601
, traverse_obj
5 class TrtCocukVideoIE(InfoExtractor
):
6 _VALID_URL
= r
'https?://www\.trtcocuk\.net\.tr/video/(?P<id>[\w-]+)'
8 'url': 'https://www.trtcocuk.net.tr/video/kaptan-pengu-ve-arkadaslari-1',
13 'series': '"Kaptan Pengu ve Arkadaşları"',
15 'title': 'Kaptan Pengu ve Arkadaşları 1 Bölüm İzle TRT Çocuk',
16 'release_date': '20201209',
17 'release_timestamp': 1607513774,
20 'url': 'https://www.trtcocuk.net.tr/video/sef-rokanin-lezzet-dunyasi-17',
24 'series': '"Şef Roka\'nın Lezzet Dünyası"',
25 'title': 'Şef Roka\'nın Lezzet Dünyası 17 Bölüm İzle TRT Çocuk',
29 def _real_extract(self
, url
):
30 display_id
= self
._match
_id
(url
)
31 webpage
= self
._download
_webpage
(url
, display_id
)
32 nuxtjs_data
= self
._search
_nuxt
_data
(webpage
, display_id
)['data']
35 video_url
= self
._parse
_json
(nuxtjs_data
['video'], display_id
)
36 except ExtractorError
:
37 video_url
= nuxtjs_data
['video']
38 formats
, subtitles
= self
._extract
_m
3u8_formats
_and
_subtitles
(video_url
, display_id
)
41 'id': str(nuxtjs_data
['id']),
43 'subtitles': subtitles
,
44 'season_number': int_or_none(nuxtjs_data
.get('season')),
45 'release_timestamp': parse_iso8601(nuxtjs_data
.get('publishedDate')),
46 'series': traverse_obj(nuxtjs_data
, ('show', 0, 'title')),
47 'title': self
._html
_extract
_title
(webpage
), # TODO: get better title