Repository: yt-dlp
Issue: Bilibili.tv captcha verification - add better error message
Labels: account-needed,site-bug

### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

- [X] I understand that I will be **blocked** if I remove or skip any mandatory\* field

### Checklist

- [X] I'm reporting a bug unrelated to a specific site
- [X] I've verified that I'm running yt-dlp version **2023.01.06** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [X] I've searched the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues **including closed ones**. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)

### Provide a description that is worded well enough to be understood

It seems bilibili.tv started to implement captcha verification for login page. I can download the video without account with yt-dlp but its limited to 480p. tried using my premium account but stuck at verification code. here the screenshot of captcha from bilibili.tv https://ibb.co/QdNZ7KK



### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

```shell
[debug] Command-line config: ['-vU', '-4', '--no-playlist', '-I', '1', 'https://www.bilibili.tv/id/play/2072378?p=1']
[debug] Home config "yt-dlp.conf": ['-u', 'PRIVATE', '-p', 'PRIVATE', '--all-subs', '--embed-subs', '--merge-output-format', 'mkv', '--embed-chapters', '--sub-format', 'ass']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2023.01.06 [6becd25] (zip)
[debug] Python 3.9.7 (CPython x86_64 64bit) - Linux-4.19.0-17-amd64-x86_64-with-glibc2.28 (OpenSSL 1.1.1d  10 Sep 2019, glibc 2.28)
[debug] exe versions: ffmpeg 4.1.6-1, ffprobe 4.1.6-1
[debug] Optional libraries: Crypto-3.10.4, mutagen-1.45.1, secretstorage-3.3.1, sqlite3-2.6.0, websockets-10.0
[debug] Loaded 1760 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2023.01.06, Current version: 2023.01.06
yt-dlp is up to date (2023.01.06)
[biliIntl:series] Downloading login key
[biliIntl:series] Logging in
ERROR: [biliIntl:series] 2072378: Unable to log in: biliIntl:series said: Please enter the verification code
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 677, in extract
    self.initialize()
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 583, in initialize
    self._perform_login(username, password)
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/bilibili.py", line 922, in _perform_login
    raise ExtractorError(f'Unable to log in: {self.IE_NAME} said: {login_post["message"]}', expected=True)
```