diff --git a/yt_dlp/extractor/tiktok.py b/yt_dlp/extractor/tiktok.py index b6c5471a84..b6683a2027 100644 --- a/yt_dlp/extractor/tiktok.py +++ b/yt_dlp/extractor/tiktok.py @@ -1074,9 +1074,12 @@ def _real_extract(self, url): fatal=False, impersonate=True) or '' detail = traverse_obj( self._get_universal_data(webpage, user_name), ('webapp.user-detail', {dict})) or {} - if detail.get('statusCode') == 10222: + video_count = traverse_obj(detail, ('userInfo', ('stats', 'statsV2'), 'videoCount', {int}, any)) + if not video_count and detail.get('statusCode') == 10222: self.raise_login_required( 'This user\'s account is private. Log into an account that has access') + elif video_count == 0: + raise ExtractorError('This account does not have any videos posted', expected=True) sec_uid = traverse_obj(detail, ('userInfo', 'user', 'secUid', {str})) if sec_uid: fail_early = not traverse_obj(detail, ('userInfo', 'itemList', ...))