[kanal2]: inline internal methods

This commit is contained in:
Elan Ruusamäe 2018-12-18 11:19:18 +02:00
parent b1f933783b
commit 9bd56961b5

View File

@ -43,24 +43,7 @@ class Kanal2IE(InfoExtractor):
]
def _real_extract(self, url):
video_id = self._match_id(url)
playlist = self.get_playlist(video_id)
# return a dict, description from here:
# https://github.com/rg3/youtube-dl/blob/7f41a598b3fba1bcab2817de64a08941200aa3c8/youtube_dl/extractor/common.py#L94-L303
info = {
'id': video_id,
'title': self.get_title(playlist['info']),
'description': playlist['info'].get('description'),
'webpage_url': playlist['data'].get('url'),
'thumbnail': playlist['data'].get('image'),
'formats': self.get_formats(playlist, video_id),
'timestamp': self.get_timestamp(playlist['info']['subtitle']),
}
return info
def get_title(self, info):
def get_title(info):
title = info['title']
if info['subtitle']:
@ -68,7 +51,7 @@ class Kanal2IE(InfoExtractor):
return title
def get_timestamp(self, subtitle):
def get_timestamp(subtitle):
# Extract timestamp from:
# "subtitle": "Osa 53 (05.08.2016 20:00)",
match = self._search_regex(self.SUBTITLE_DATE_RE, subtitle, 'dateandtime', default=None)
@ -81,9 +64,9 @@ class Kanal2IE(InfoExtractor):
return int(unixtime)
def get_formats(self, playlist, video_id):
def get_formats(playlist, video_id):
formats = []
session = self.get_session(playlist['data']['path'], video_id)
session = get_session(playlist['data']['path'], video_id)
sid = session.get('session')
for stream in playlist['data']['streams']:
formats.append({
@ -96,7 +79,7 @@ class Kanal2IE(InfoExtractor):
return formats
def get_playlist(self, video_id):
def get_playlist(video_id):
url = 'https://kanal2.postimees.ee/player/playlist/%(video_id)s?type=episodes' % {'video_id': video_id}
headers = {
'X-Requested-With': 'XMLHttpRequest',
@ -104,7 +87,7 @@ class Kanal2IE(InfoExtractor):
return self._download_json(url, video_id, headers=headers)
def get_session(self, path, video_id):
def get_session(path, video_id):
url = 'https://sts.postimees.ee/session/register'
headers = {
'X-Original-URI': path,
@ -117,3 +100,20 @@ class Kanal2IE(InfoExtractor):
raise ExtractorError('%s: Unable to obtain session' % self.IE_NAME)
return session
video_id = self._match_id(url)
playlist = get_playlist(video_id)
# return a dict, description from here:
# https://github.com/rg3/youtube-dl/blob/7f41a598b3fba1bcab2817de64a08941200aa3c8/youtube_dl/extractor/common.py#L94-L303
info = {
'id': video_id,
'title': get_title(playlist['info']),
'description': playlist['info'].get('description'),
'webpage_url': playlist['data'].get('url'),
'thumbnail': playlist['data'].get('image'),
'formats': get_formats(playlist, video_id),
'timestamp': get_timestamp(playlist['info']['subtitle']),
}
return info