1
0
Fork 0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-03-09 12:50:23 -05:00

traverse_obj rewrite

This commit is contained in:
v3DJG6GL 2025-03-05 12:54:41 +01:00 committed by GitHub
parent 0445a5fcc6
commit def349faf6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -260,20 +260,21 @@ def _extract_single(self, media_data):
self._merge_subtitles(subs, target=subtitles) self._merge_subtitles(subs, target=subtitles)
return { return {
'id': media_data['id'], 'id': traverse_obj(media_data, 'id'),
'title': media_data.get('name'), 'title': traverse_obj(media_data, 'name'),
'description': media_data.get('descriptionLong') or media_data.get('description'), 'description': traverse_obj(media_data, 'descriptionLong') or traverse_obj(media_data, 'description'),
'genres': media_data.get('contentTypes'), 'genres': traverse_obj(media_data, 'contentTypes'),
'creators': media_data.get('directors'), 'creators': traverse_obj(media_data, 'directors'),
'cast': media_data.get('mainCast'), 'cast': traverse_obj(media_data, 'mainCast'),
'location': media_data.get('productionCountries'), 'location': traverse_obj(media_data, 'productionCountries'),
'release_year': int_or_none(media_data.get('year')[:4]) if media_data.get('year') else None, 'release_year': int_or_none(traverse_obj(media_data, 'year', lambda x: x[:4])),
'thumbnails': thumbnails, 'thumbnails': thumbnails,
'duration': int_or_none(media_data.get('duration')), 'duration': int_or_none(traverse_obj(media_data, 'duration')),
'formats': formats, 'formats': formats,
'subtitles': subtitles, 'subtitles': subtitles,
'series': media_data.get('seriesName'), 'series': traverse_obj(media_data, 'seriesName'),
'season_number': int_or_none(media_data.get('seasonNumber')), 'season_number': int_or_none(traverse_obj(media_data, 'seasonNumber')),
'episode': media_data.get('name') if media_data.get('episodeNumber') else None, 'episode': traverse_obj(media_data, 'name') if traverse_obj(media_data, 'episodeNumber') else None,
'episode_number': int_or_none(media_data.get('episodeNumber')), 'episode_number': int_or_none(traverse_obj(media_data, 'episodeNumber')),
} }