mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-06-28 01:18:30 +00:00
style: return info dict instead of dynamically filling
This commit is contained in:
parent
5f30070405
commit
45ca66f40d
@ -792,27 +792,28 @@ def _unmask_url(self, mask_url, vk_id):
|
|||||||
|
|
||||||
def _parse_track_meta(self, meta, track_id=None):
|
def _parse_track_meta(self, meta, track_id=None):
|
||||||
len_ = len(meta)
|
len_ = len(meta)
|
||||||
info = {}
|
|
||||||
|
|
||||||
info['id'] = f'{meta[1]}_{meta[0]}' \
|
# track title
|
||||||
if len_ >= 2 and meta[1] and meta[0] \
|
title = unescapeHTML(meta[3]) if len_ >= 3 else None
|
||||||
else track_id
|
# artists in one string, may include "feat."
|
||||||
|
artist = unescapeHTML(meta[4]) if len_ >= 4 else None
|
||||||
|
|
||||||
title = unescapeHTML(meta[3]) if len_ >= 3 else None # TODO: fallback
|
return {
|
||||||
artist = unescapeHTML(meta[4]) if len_ >= 4 else None # artists in one string, may include "feat."
|
'id': (f'{meta[1]}_{meta[0]}'
|
||||||
info['title'] = join_nonempty(artist, title, delim=' - ')
|
if len_ >= 2 and meta[1] and meta[0]
|
||||||
info['track'] = title
|
else track_id),
|
||||||
info['uploader'] = artist
|
|
||||||
|
|
||||||
# artists as list
|
'title': join_nonempty(artist, title, delim=' - '),
|
||||||
info['artists'] = (
|
'track': title,
|
||||||
# not htmlescaped unlike meta[4]
|
'uploader': artist,
|
||||||
traverse_obj((*meta[17], *meta[18]), (..., 'name'))
|
|
||||||
if len_ >= 18 else None
|
|
||||||
) or [artist]
|
|
||||||
|
|
||||||
info['duration'] = int_or_none(meta[5]) if len_ >= 5 else None
|
# ['Main Artist', 'Feat. Artist']
|
||||||
info['thumbnails'] = [{'url': meta[14]}] if len_ >= 14 else []
|
'artists': traverse_obj(
|
||||||
|
(*meta[17], *meta[18]) if len_ >= 18 else None,
|
||||||
|
(..., 'name'), default=[artist]),
|
||||||
|
|
||||||
|
'duration': int_or_none(meta[5]) if len_ >= 5 else None,
|
||||||
|
'thumbnails': [{'url': meta[14]}] if len_ >= 14 else [],
|
||||||
|
|
||||||
# meta[30] is 2 bits
|
# meta[30] is 2 bits
|
||||||
# most significant: isExplicit
|
# most significant: isExplicit
|
||||||
@ -822,10 +823,8 @@ def _parse_track_meta(self, meta, track_id=None):
|
|||||||
# 01 = marked by RKN as "foreign agent"
|
# 01 = marked by RKN as "foreign agent"
|
||||||
# 10 = explicit lyrics
|
# 10 = explicit lyrics
|
||||||
# 11 = both E lyrics and "foreign agent"
|
# 11 = both E lyrics and "foreign agent"
|
||||||
if len_ >= 30 and meta[30]:
|
'age_limit': 18 if len_ >= 30 and meta[30] else None,
|
||||||
info['age_limit'] = 18
|
}
|
||||||
|
|
||||||
return info
|
|
||||||
|
|
||||||
def _raise_if_blocked(self, meta, track_id):
|
def _raise_if_blocked(self, meta, track_id):
|
||||||
reason = traverse_obj(
|
reason = traverse_obj(
|
||||||
|
Loading…
Reference in New Issue
Block a user