1
0
mirror of https://codeberg.org/polarisfm/youtube-dl synced 2024-11-26 02:14:32 +01:00

Addressing code review feedback

This commit is contained in:
audrius 2020-03-10 16:54:20 -07:00
parent ce2f4bda41
commit edc81bf505

View File

@ -2,6 +2,7 @@
from __future__ import unicode_literals
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
unified_timestamp,
clean_html,
@ -17,7 +18,7 @@ class LRTIE(InfoExtractor):
# m3u8 download
'url': 'https://www.lrt.lt/mediateka/irasas/2000078895/loterija-keno-loto',
# md5 for first 10240 bytes of content
'md5': '8e6f0121ccacc17d91f98837c66853f0',
'md5': '484f5f30e3382a1aa444debc9e6256ae',
'info_dict': {
'id': '2000078895',
'ext': 'mp4',
@ -46,35 +47,31 @@ class LRTIE(InfoExtractor):
MEDIA_INFO_URL = 'https://www.lrt.lt/servisai/stream_url/vod/media_info/'
THUMBNAIL_URL = 'https://www.lrt.lt'
QUERY_URL = '/mediateka/irasas/'
TIMEZONE = '+02:00'
def _real_extract(self, url):
video_id = self._match_id(url)
media_info = self._download_json(self.MEDIA_INFO_URL, video_id, query={'url': self.QUERY_URL + video_id})
video_id = try_get(media_info, lambda x: x.get('id'), int)
if not video_id:
raise ExtractorError("Unable to fetch media info")
playlist_item = media_info.get('playlist_item', {})
file = playlist_item.get('file')
id = self._match_id(url)
media_info = self._download_json(self.MEDIA_INFO_URL, id, query={'url': self.QUERY_URL + id})
playlist_item = try_get(media_info, lambda x: x['playlist_item'], dict)
file = playlist_item['file'] # mandatory for lrt.lt extractor
if not file:
raise ExtractorError("Media info did not contain m3u8 file url")
raise ExtractorError("Media info from server did not contain m3u8 file url")
if ".m4a" in file:
# audio only content
formats = [{'url': file, 'vcodec': 'none', 'ext': 'm4a'}]
else:
formats = self._extract_m3u8_formats(file, video_id, 'mp4', entry_protocol='m3u8_native')
formats = self._extract_m3u8_formats(file, id, 'mp4', entry_protocol='m3u8_native')
# adjust media datetime to youtube_dl supported datetime format
timestamp = unified_timestamp(media_info.get('date').replace('.', '-') + '+02:00')
# extracting timestamp variable for clarity
timestamp = media_info.get('date', '').replace('.', '-') + self.TIMEZONE
return {
'id': str(video_id).decode('utf-8'),
'title': playlist_item.get('title', 'unknown title'),
'id': id,
'title': playlist_item.get('title') or id,
'formats': formats,
'thumbnail': self.THUMBNAIL_URL + playlist_item.get('image', '/images/default-img.svg'),
'description': clean_html(media_info.get('content', 'unknown description')),
'timestamp': timestamp,
'tags': [i['name'] for i in media_info.get('tags')] if media_info.get('tags') else [],
'description': clean_html(try_get(media_info, lambda x: x['content'], compat_str)),
'timestamp': unified_timestamp(timestamp) if timestamp != self.TIMEZONE else None,
'tags': [i.get('name') for i in media_info.get('tags', [{}]) if i.get('name')],
}