Repository: yt-dlp
Issue: [BiliBili] better search for content of different categories on the site
Labels: site-enhancement,triage

### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

- [X] I understand that I will be **blocked** if I *intentionally* remove or skip any mandatory\* field

### Checklist

- [X] I'm requesting a site-specific feature
- [X] I've verified that I have **updated yt-dlp to nightly or master** ([update instructions](https://github.com/yt-dlp/yt-dlp#update-channels))
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've searched [known issues](https://github.com/yt-dlp/yt-dlp/issues/3766) and 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)
- [ ] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required

### Region

Mainland China (All), anywhere else (Most content except for Bangumis)

### Example URLs

`bilisearch:名侦探柯南`
(Solution 1)
`bilibangumisearch:名侦探柯南`
(Solution 2)
(This should download a Bangumi after the feature is implemented)
__THIS DOESN'T WORK OUTSIDE CHINA WITHOUT A VPN OR A GEO VERIFICATION PROXY__

`bilisearch:洛天依`
~~(This works well currently, if Solution 1 is taken, please add this to `_TESTS` to ensure the users are filtered)~~
#### Edit
I checked the `bilibili.py` and found that we have an `InfoExtractor` for downloading user pages: `BilibiliSpaceVideoIE` ([bilibili.py:983-1075](https://github.com/yt-dlp/yt-dlp/blob/a8520244b8642880e4d35925e9e49eff94d548de/yt_dlp/extractor/bilibili.py#L983-L1075)). So to some degree, this is the same as the first URL and this URL(`bilisearch:洛天依`) can be in `_TESTS` if Solution 1 is taken.
If Solution 2 is taken, please use `biliusersearch:洛天依` instead in `_TESTS`.

### Provide a description that is worded well enough to be understood

# [BiliBili] better search for content of different categories on the site
## What the problem is
The current `BiliBiliSearchIE` class ([bilibili.py:1492](https://github.com/yt-dlp/yt-dlp/blob/a8520244b8642880e4d35925e9e49eff94d548de/yt_dlp/extractor/bilibili.py#L1492)) searches for videos only because it has a fixed `search_type`(`video`) ([bilibili.py:1538](https://github.com/yt-dlp/yt-dlp/blob/a8520244b8642880e4d35925e9e49eff94d548de/yt_dlp/extractor/bilibili.py#L1538)). But apart from videos, there are several other `InfoExtractor` available under `bilibili.py`, like `BiliBiliBangumiIE`([bilibili.py:603](https://github.com/yt-dlp/yt-dlp/blob/a8520244b8642880e4d35925e9e49eff94d548de/yt_dlp/extractor/bilibili.py#L603)).

## How it could be fixed & How your proposed solution would look like
### Solution 1: Do universal searches through `https://api.bilibili.com/x/web-interface/search/all/v2` with filters by `result_type`

* This solution is a little bit complicated so allow me not to give very detailed implementing steps.

According to [this](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/search/search_request.md) __third-party__ documentation for BiliBili Search APIs ([link to G-Translated page](https://github-com.translate.goog/SocialSisterYi/bilibili-API-collect/blob/master/docs/search/search_request.md?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en)), it is possible to do universal search by using https://api.bilibili.com/x/web-interface/search/all/v2 (this is not the new link which requires __WBI signature__(See #10243 ) because the current code is also using the old link and the old link is still working when this issue is submitted).

But this may not be easy since not all results from the API are downloadable. However, the results returned from the API are classified by their `result_type`.  
Shown below is an empty result extracted from `.data.result`(`data` will be an array containing dictionaries of metadata if they are not empty):

```json
[
      {
        "result_type": "tips",
        "data": []
      },
      {
        "result_type": "brand_ad",
        "data": []
      },
      {
        "result_type": "esports",
        "data": []
      },
      {
        "result_type": "activity",
        "data": []
      },
      {
        "result_type": "web_game",
        "data": []
      },
      {
        "result_type": "card",
        "data": []
      },
      {
        "result_type": "media_bangumi",
        "data": []
      },
      {
        "result_type": "media_ft",
        "data": []
      },
      {
        "result_type": "bili_user",
        "data": []
      },
      {
        "result_type": "user",
        "data": []
      },
      {
        "result_type": "star",
        "data": []
      },
      {
        "result_type": "video",
        "data": []
      }
]
```
Some results like `brand_ad` can be ignored.
Merge these downloadable `data` arrays and put the videos after `media_bangumi`, etc. (like how the search webpage works).
Then use a `for` loop to iterate over the merged array and `yield` search results.
I mentioned that the current `BiliBiliSearchIE` supports search over multiple pages([bilibili.py:1533](https://github.com/yt-dlp/yt-dlp/blob/a8520244b8642880e4d35925e9e49eff94d548de/yt_dlp/extractor/bilibili.py#L1533)), this can also be done for universal search by passing the parameter `'page': page_num` to the API though this is not mentioned in the third party documentation.

### Solution 2: Add several other subclasses of `SearchInfoExtractor` for different downloadable content categories just like `BiliBiliSearchIE` (simple)

According to [this](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/search/search_request.md) __third-party__ documentation for BiliBili Search APIs ([link to G-Translated page](https://github-com.translate.goog/SocialSisterYi/bilibili-API-collect/blob/master/docs/search/search_request.md?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en)), it is possible to change type of content to search for by simply changing the parameter `search_type`.

1. Copy class `SearchInfoExtractor` ([bilibili.py:1492](https://github.com/yt-dlp/yt-dlp/blob/a8520244b8642880e4d35925e9e49eff94d548de/yt_dlp/extractor/bilibili.py#L1492)) and use a new name.
2. Change `IE_DESC`, `_MAX_RESULTS`, `_SEARCH_KEY`, `_TESTS` ([bilibili.py:1493-1522](https://github.com/yt-dlp/yt-dlp/blob/a8520244b8642880e4d35925e9e49eff94d548de/yt_dlp/extractor/bilibili.py#L1493-L1522)).
3. Change the parameter `search_type` inside the method `_search_results(self, query)` to something else ([bilibili.py:1538](https://github.com/yt-dlp/yt-dlp/blob/a8520244b8642880e4d35925e9e49eff94d548de/yt_dlp/extractor/bilibili.py#L1538)).
(You can refer to the sheet below for details on values)

| Parameter     | Type | Content                       | Is A Required Field | Notes on values                                                               |
| -------------- | ----- | ------------------------ | --------------------- | ------------------------------------------------------------ |
| `search_type` | str    | Type of target content | Yes                          | Videos: `video`<br/>Bangumis: `media_bangumi`<br/>Films and Televisions: `media_ft`<br/>Live rooms and Live users(combination of `live_room` and `live_user`): `live`<br/>Live rooms: `live_room`<br/>Live users(hosts): `live_user`<br/>Articles: `article`<br/>Topics: `topic`<br/>Users: `bili_user`<br/>Albums: `photo` |

(Extracted from [this](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/search/search_request.md) __third-party__ documentation for BiliBili Search APIs and translated on my own)

4. Change the `yield` line ([bilibili.py:1545](https://github.com/grqx/yt-dlp/blob/biliBangumiSearch/yt_dlp/extractor/bilibili.py#L1545)) if necessary (when the URL is not stored in `arcurl`, etc.).

* I created a fork of this repository to test Solution 2, see `BiliBiliBangumiSearchIE` ([bilibili.py:1548-1592](https://github.com/grqx/yt-dlp/blob/biliBangumiSearch/yt_dlp/extractor/bilibili.py#L1548-L1592)).
Diff file:
```diff
diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py
index c411efb5aa4..62597e2a7c9 100644
--- a/yt_dlp/extractor/_extractors.py
+++ b/yt_dlp/extractor/_extractors.py
@@ -245,6 +245,7 @@
     BilibiliAudioIE,
     BiliBiliBangumiIE,
     BiliBiliBangumiMediaIE,
+    BiliBiliBangumiSearchIE,
     BiliBiliBangumiSeasonIE,
     BilibiliCategoryIE,
     BilibiliCheeseIE,
diff --git a/yt_dlp/extractor/bilibili.py b/yt_dlp/extractor/bilibili.py
index 411b48c282d..13c07349d65 100644
--- a/yt_dlp/extractor/bilibili.py
+++ b/yt_dlp/extractor/bilibili.py
@@ -1545,6 +1545,51 @@ def _search_results(self, query):
                 yield self.url_result(video['arcurl'], 'BiliBili', str(video['aid']))
 
 
+class BiliBiliBangumiSearchIE(SearchInfoExtractor):
+    IE_DESC = 'Bilibili Bangumi search'
+    _MAX_RESULTS = 100000
+    _SEARCH_KEY = 'bilibangumisearch'
+    _TESTS = [{
+        'url': 'bilibangumisearch:翼神传说 间奏曲：她与她自己',
+        'info_dict': {
+            'id': '翼神传说 间奏曲：她与她自己',
+            'title': '翼神传说 间奏曲：她与她自己',
+        },
+        'playlist_count': 1,
+        'playlist': [{
+            'url': 'https://www.bilibili.com/bangumi/play/ep87395',
+            'info_dict': {
+                'id': '3960',
+                'ext': 'mp4',
+            },
+        }],
+        'skip': 'geo-restricted',
+    }]
+
+    def _search_results(self, query):
+        if not self._get_cookies('https://api.bilibili.com').get('buvid3'):
+            self._set_cookie('.bilibili.com', 'buvid3', f'{uuid.uuid4()}infoc')
+        for page_num in itertools.count(1):
+            videos = self._download_json(
+                'https://api.bilibili.com/x/web-interface/search/type', query,
+                note=f'Extracting results from page {page_num}', query={
+                    'Search_key': query,
+                    'keyword': query,
+                    'page': page_num,
+                    'context': '',
+                    'duration': 0,
+                    'tids_2': '',
+                    '__refresh__': 'true',
+                    'search_type': 'media_bangumi',
+                    'tids': 0,
+                    'highlight': 1,
+                })['data'].get('result')
+            if not videos:
+                break
+            for video in videos:
+                yield self.url_result(video['url'])
+
+
 class BilibiliAudioBaseIE(InfoExtractor):
     def _call_api(self, path, sid, query=None):
         if not query:
```

## Some other notes
* The __third-party__ documentation for BiliBili Search APIs is written by [SocialSisterYi](https://github.com/SocialSisterYi), under CC-BY-NC 4.0.
* My fork repository may not be up to date with the `master` branch of this repository when you see this issue.
* The Complete Verbose Output below shows the response of unmodified `yt-dlp`, I used `bilisearch` because the keyword `bilibangumisearch` is not yet implemented. they aren't done in one run due to network instability.
* I'm not very familiar with this repository, so don't know what should method `_search_results(self, query)` yield. In my branch, searching works well without yielding the last two elements (`'BiliBili'`, `str(video['aid'])`).
* I myself don't have a premium account on the site and isn't in China for the time being, so the `_TESTS` metadata might be incorrect in my branch due to geo-restriction. I DID try to apply a http&https proxy by passing two environment variables (in Linux). But it doesn't work when I'm running `hatch test`.
* I'm willing to help run some tests with my proxy if necessary.

### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [ ] If using API, add `'verbose': True` to `YoutubeDL` params instead
- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

```shell
[debug] Command-line config: ['-vU', '--geo-verification-proxy', '192.168.1.65:8080', '--test', 'bilisearch:名侦探柯南']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2024.05.27 from yt-dlp/yt-dlp (linux_exe)
[debug] Python 3.11.9 (CPython x86_64 64bit) - Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with (OpenSSL 3.1.4 24 Oct 2023)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, mutagen-1.47.0, requests-2.32.2, secretstorage-3.3.3, sqlite3-3.44.2, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2024.05.27 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2024.05.27 from yt-dlp/yt-dlp)
[BiliBiliSearch] Extracting URL: bilisearch:名侦探柯南
[download] Downloading playlist: 名侦探柯南
[BiliBiliSearch] 名侦探柯南: Extracting results from page 1
[BiliBiliSearch] Playlist 名侦探柯南: Downloading 1 items of 1
[download] Downloading item 1 of 1
[BiliBili] Extracting URL: http://www.bilibili.com/video/av788677130
[BiliBili] 788677130: Downloading webpage
[BiliBili] BV1Hy4y1F7xi: Extracting videos in anthology
[BiliBili] 788677130: Extracting chapters
[BiliBili] Format(s) 1080P 高码率, 1080P 高清, 720P 高清 are missing; you have to login or become premium member to download them. Use --cookies-from-browser or --cookies for the authentication. See  https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp  for how to manually pass cookies
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] BV1Hy4y1F7xi: Downloading 1 format(s): 30033+30280
[debug] Invoking http downloader on "https://cn-lnsy-cu-01-03.bilivideo.com/upgcxcode/38/54/1274435438/1274435438-1-30033.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1719104165&gen=playurlv2&os=bcache&oi=660317255&trid=000060a550be4a784118b43becaf66a1eba3u&mid=0&platform=pc&og=cos&upsig=f930e264eb9076298c3e15ec0ed81bc3&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&cdnid=3282&bvc=vod&nettype=0&orderid=0,3&buvid=4182dc4f-085d-44eb-8e75-c7d54e2bac75infoc&build=0&f=u_0_0&agrr=1&bw=17703&logo=80000000"
[download] Destination: 一口气看完一千部《名侦探柯南》满满的童年回忆！！还不点赞收藏起来？！ [BV1Hy4y1F7xi].f30033.mp4
[download] 100% of   10.00KiB in 00:00:00 at 13.84KiB/s
[debug] Invoking http downloader on "https://cn-lnsy-cu-01-03.bilivideo.com/upgcxcode/38/54/1274435438/1274435438-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1719104165&gen=playurlv2&os=bcache&oi=660317255&trid=000060a550be4a784118b43becaf66a1eba3u&mid=0&platform=pc&og=cos&upsig=7f52db616c6d59762b987d7d0af4ec73&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&cdnid=3282&bvc=vod&nettype=0&orderid=0,3&buvid=4182dc4f-085d-44eb-8e75-c7d54e2bac75infoc&build=0&f=u_0_0&agrr=1&bw=10028&logo=80000000"
[download] Destination: 一口气看完一千部《名侦探柯南》满满的童年回忆！！还不点赞收藏起来？！ [BV1Hy4y1F7xi].f30280.m4a
[download] 100% of   10.00KiB in 00:00:00 at 33.81KiB/s
[Merger] Merging formats into "一口气看完一千部《名侦探柯南》满满的童年回忆！！还不点赞收藏起来？！ [BV1Hy4y1F7xi].mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:一口气看完一千部《名侦探柯南》满满的童年回忆！！还不点赞收藏起来？！ [BV1Hy4y1F7xi].f30033.mp4' -i 'file:一口气看完一千部《名侦探柯南》满满的童年回忆！！还不点赞收藏起来？！ [BV1Hy4y1F7xi].f30280.m4a' -c copy -map 0:v:0 -map 1:a:0 -movflags +faststart 'file:一口气看完一千部《名侦探柯南》满满的童年回忆！！还不点赞收藏起来？！ [BV1Hy4y1F7xi].temp.mp4'
Deleting original file 一口气看完一千部《名侦探柯南》满满的童年回忆！！还不点赞收藏起来？！ [BV1Hy4y1F7xi].f30033.mp4 (pass -k to keep)
Deleting original file 一口气看完一千部《名侦探柯南》满满的童年回忆！！还不点赞收藏起来？！ [BV1Hy4y1F7xi].f30280.m4a (pass -k to keep)
[download] Finished downloading playlist: 名侦探柯南

# ----------------------------------------------------------------------------


[debug] Command-line config: ['-vU', '--geo-verification-proxy', '192.168.1.65:8080', '--test', 'bilisearch:洛天依']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2024.05.27 from yt-dlp/yt-dlp (linux_exe)
[debug] Python 3.11.9 (CPython x86_64 64bit) - Linux-5.15.153.1-microsoft-standard-WSL2-x86_64-with (OpenSSL 3.1.4 24 Oct 2023)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, mutagen-1.47.0, requests-2.32.2, secretstorage-3.3.3, sqlite3-3.44.2, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1820 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2024.05.27 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2024.05.27 from yt-dlp/yt-dlp)
[BiliBiliSearch] Extracting URL: bilisearch:洛天依
[download] Downloading playlist: 洛天依
[BiliBiliSearch] 洛天依: Extracting results from page 1
[BiliBiliSearch] Playlist 洛天依: Downloading 1 items of 1
[download] Downloading item 1 of 1
[BiliBili] Extracting URL: http://www.bilibili.com/video/av1355759945
[BiliBili] 1355759945: Downloading webpage
[BiliBili] BV15z42187FE: Extracting videos in anthology
[BiliBili] 1355759945: Extracting chapters
[BiliBili] Format(s) 1080P 高码率, 1080P 高清, 720P 高清 are missing; you have to login or become premium member to download them. Use --cookies-from-browser or --cookies for the authentication. See  https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp  for how to manually pass cookies
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] BV15z42187FE: Downloading 1 format(s): 100110+30280
[debug] Invoking http downloader on "https://xy39x171x66x24xy.mcdn.bilivideo.cn:8082/v1/resource/1590257771-1-100110.m4s?agrr=1&build=0&buvid=00d91c4f-7d38-4b15-9e8f-43b6fa184b7finfoc&bvc=vod&bw=39810&deadline=1719104204&e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M%3D&f=u_0_0&gen=playurlv2&logo=A0020000&mcdnid=50004879&mid=0&nbs=1&nettype=0&og=cos&oi=660317255&orderid=0%2C3&os=mcdn&platform=pc&sign=c3bc36&traceid=trCNHcZDMEHUbW_0_e_N&uipk=5&uparams=e%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%2Cog&upsig=986f7c1d04ce9e9dce452a5c1f37dcec"
[download] Destination: 超燃吉他show！直击洛天依生日会彩排现场 [BV15z42187FE].f100110.mp4
[download] 100% of   10.00KiB in 00:00:02 at 3.45KiB/s
[debug] Invoking http downloader on "https://xy120x203x169x198xy.mcdn.bilivideo.cn:8082/v1/resource/1590257771-1-30280.m4s?agrr=1&build=0&buvid=00d91c4f-7d38-4b15-9e8f-43b6fa184b7finfoc&bvc=vod&bw=11129&deadline=1719104204&e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M%3D&f=u_0_0&gen=playurlv2&logo=A0020000&mcdnid=50004879&mid=0&nbs=1&nettype=0&og=cos&oi=660317255&orderid=0%2C3&os=mcdn&platform=pc&sign=637280&traceid=trDAnTsmAYIUiL_0_e_N&uipk=5&uparams=e%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%2Cog&upsig=3815d6a3cc6ef734b378c9d00ad4b758"
[download] Destination: 超燃吉他show！直击洛天依生日会彩排现场 [BV15z42187FE].f30280.m4a
[download] 100% of   10.00KiB in 00:00:01 at 6.60KiB/s
[Merger] Merging formats into "超燃吉他show！直击洛天依生日会彩排现场 [BV15z42187FE].mp4"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:超燃吉他show！直击洛天依生日会彩排现场 [BV15z42187FE].f100110.mp4' -i 'file:超燃吉他show！直击洛天依生日会彩排现场 [BV15z42187FE].f30280.m4a' -c copy -map 0:v:0 -map 1:a:0 -movflags +faststart 'file:超燃吉他show！直击洛天依生日会彩排现场 [BV15z42187FE].temp.mp4'
Deleting original file 超燃吉他show！直击洛天依生日会彩排现场 [BV15z42187FE].f100110.mp4 (pass -k to keep)
Deleting original file 超燃吉他show！直击洛天依生日会彩排现场 [BV15z42187FE].f30280.m4a (pass -k to keep)
[download] Finished downloading playlist: 洛天依
```