nilaoda / BBDown

Bilibili Downloader. 一款命令行式哔哩哔哩下载器.
MIT License
9.55k stars 1.26k forks source link

API下载队列貌似失效 #804

Closed iusearch closed 9 months ago

iusearch commented 9 months ago

1. 你使用的BBDown版本是什么?(指明 Release / Actions / DotnetTool)

Action最新版

2. 你在什么系统使用本软件?(Win/Linux/Mac)

Linux

3. 你使用的完整命令是什么?

`BBDown serve`

4. 遇到了什么问题?

用脚本批量下载音频时,最后只下载了一个文件,其他疑似任务队列被覆盖,日志如下

info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 POST http://192.168.1.2:23333/add-task - application/json 336
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Http.Result.OkObjectResult[1]
      Setting HTTP status code 200.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 POST http://192.168.1.2:23333/add-task - 200 0 - 0.5239ms
[2023-12-25 03:38:05.149] - 共计3条音频流.
                            0. [M4A] [140 kbps] [~8.46 MB]
                            1. [M4A] [87 kbps] [~5.26 MB]
                            2. [M4A] [40 kbps] [~2.42 MB]
[2023-12-25 03:38:05.149] - 已选择的流:
                            [音频] [M4A] [140 kbps] [~8.46 MB]
[2023-12-25 03:38:05.149] - 尝试将音频流强制替换为upos-sz-mirrorcoso1.bilivideo.com……
[2023-12-25 03:38:05.150] - 开始下载P1音频...
                            [----------------------------------------]   0% |info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 POST http://192.168.1.2:23333/add-task - application/json 336
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Http.Result.OkObjectResult[1]
      Setting HTTP status code 200.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 POST http://192.168.1.2:23333/################------------------------]  40% \info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 POST http://192.168.1.2:23333/add-task - application/json 336
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Http.Result.OkObjectResult[1]
      Setting HTTP status code 200.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 P[2023-12-25 03:38:05.915] - 下载P1完毕                                       
[2023-12-25 03:38:05.915] - 开始合并音视频...
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 POST http://192.168.1.2:23333/add-task - application/json 336
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Http.Result.OkObjectResult[1]
      Setting HTTP status code 200.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 POST http://192.168.1.2:23333/add-task - 200 0 - 0.4616ms
[2023-12-25 03:38:06.308] - 清理临时文件...
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 POST http://192.168.1.2:23333/add-task - application/json 336
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Http.Result.OkObjectResult[1]
      Setting HTTP status code 200.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 POST http://192.168.1.2:23333/add-task - 200 0 - 0.6321ms
[2023-12-25 03:38:06.511] - 任务完成
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 GET http://192.168.1.2:23333/get-tasks/ - - -
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'HTTP: GET /get-tasks/'
info: Microsoft.AspNetCore.Http.Result.JsonResult[3]
      Writing value of type 'DownloadTaskCollection' as Json.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'HTTP: GET /get-tasks/'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 GET http://192.168.1.2:23333/get-tasks/ - 200 - application/json;+charset=utf-8 2.2945ms
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
      Request starting HTTP/1.1 POST http://192.168.1.2:23333/add-task - application/json 345
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
      Executing endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Http.Result.OkObjectResult[1]
      Setting HTTP status code 200.
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
      Executed endpoint 'HTTP: POST /add-task'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 POST http://192.168.1.2:23333/add-task - 200 0 - 0.5713ms

脚本为

import requests
import json

# API endpoint for adding tasks
api_endpoint = "http://192.168.1.2:23333/add-task"

def add_task(url):
    """
    Send a POST request to add a download task.
    """
    headers = {'Content-Type': 'application/json'}
    data = json.dumps({"Url": url, "AudioOnly": True, "FilePattern": "<bvid>-<pageNumber>-<audioCodecs>-<audioBandwidth>", "MultiThread": False, "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/120.0"})
    response = requests.post(api_endpoint, headers=headers, data=data)
    return response

def main():
    # Read URLs from file
    with open("test_bili_down.txt", "r") as file:
        urls = file.readlines()

    # Process each URL
    for url in urls:
        url = url.strip()  # Remove any whitespace
        response = add_task(url)
        if response.status_code == 200:
            print(f"Task for URL '{url}' added successfully.")
        else:
            print(f"Failed to add task for URL '{url}'. Error: {response.text}")

if __name__ == "__main__":
    main()
iusearch commented 9 months ago

没事了,是URL的问题,虽然不知道https://www.bilibili.com/list/3108694?tid=0&sort_field=pubtime&spm_id_from=333.999.0.0&oid=746965456&bvid=BV1DC4y1V7pi为什么不能被解析,不过这应该不属于这个主题下的错误。