Compare commits

...

3 Commits

Author SHA1 Message Date
c-basalt
642784566c
Update yt_dlp/extractor/weibo.py
Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
2023-09-18 16:25:57 -04:00
c-basalt
4ad3967297 fallback to None for empty tags list 2023-09-18 15:42:12 -04:00
c-basalt
a1ef7ef6c3 update playlist meta extraction 2023-09-18 15:32:47 -04:00

View File

@ -108,7 +108,7 @@ class WeiboBaseIE(InfoExtractor):
'like_count': ('attitudes_count', {int_or_none}),
'repost_count': ('reposts_count', {int_or_none}),
}, get_all=False),
'tags': traverse_obj(video_info, ('topic_struct', ..., 'topic_title', {str})),
'tags': traverse_obj(video_info, ('topic_struct', ..., 'topic_title', {str})) or None,
}
@ -219,7 +219,7 @@ class WeiboUserIE(WeiboBaseIE):
query={'uid': uid, 'cursor': cursor})['data']
def _entries(self, uid, first_page):
cursor = 0
cursor = 0
for page in itertools.count(1):
response = first_page if page == 1 else self._fetch_page(uid, cursor, page)
for video_info in traverse_obj(response, ('list', ..., {dict})):
@ -231,10 +231,11 @@ class WeiboUserIE(WeiboBaseIE):
def _real_extract(self, url):
uid = self._match_id(url)
first_page = self._fetch_page(uid)
uploader = traverse_obj(first_page, ('list', ..., 'user', 'screen_name', {str}), get_all=False)
metainfo = {
'title': f'{uploader}的视频',
'description': f'{uploader}的全部视频',
'uploader': uploader,
} if uploader else {}
return self.playlist_result(
self._entries(uid, first_page), uid, **traverse_obj(first_page, {
'title': ('uploader', {lambda i: f'{i}的视频' if i else None}),
'description': ('uploader', {lambda i: f'{i}的全部视频' if i else None}),
'uploader': 'uploader',
}))
return self.playlist_result(self._entries(uid, first_page), uid, **metainfo)