常见错误:

  1. AssertionError: No JS Interpreter found, can’t parse douyu live/video!
    解决方法:安装quickjs或nodejs
安装nodejs
sudo apt update && sudo apt install nodejs -y
安装quickjs
sudo apt install gcc -y
sudo apt install python3-dev -y
sudo pip3 install quickjs
  1. UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position 0-1: ordinal not in range(256)
    解决方法:将系统编码更改为utf-8,如zh_cn-utf-8或en_us-utf-8可以参考如何设置中文

  2. 录制B站提示TimeoutError: [Errno 110] Connection timed out 或者
    urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7fbe583f94c0>: Failed to establish a new connection: [Errno 110] Connection timed out
    解决方法:V0.1.10版本已经可以快速解决,只需修改配置文件中默认的biliplatform: web 更改为 biliplatform: h5

  3. 账号密码方式无法登录
    解决方法1:启用配置文件中的app_key和appsec,值的设置可以参考API 签名与鉴权
    解决方法2:使用biliup-rs获取cookie 和 token用于登录。

  4. 配置文件中填写cookie信息时需注意
    首先冒号“:”后面有一个空格不能删除,其次建议cookie信息全用英文的双引号包住如:SESSDATA: “your SESSDATA”

  5. 录制B站下载时download.py反复提示 FileNotFoundError:xxxxx

2022-02-09 20:16:44 download.py[line:68](Pid:86501 Tname:Asynchronous1_0) info 1part: test1644409003.mp4
2022-02-09 20:16:44 download.py[line:95](Pid:86501 Tname:Asynchronous1_0) info FileNotFoundError:test1644409003.mp4

解决方法:启用配置文件中的biliplatform将默认值web更改为H5,删除前面的“#”号即为启用。

  1. 上传B站后提示:转码失败:该视频画面过扁,请横向裁剪视频后重新上传。
    解决方法1:该问题出现在按时间分片的flv格式上,改用按文件大小分片即可。
    解决方法2:将保存格式更改为mp4,在配置文件添加format: mp4
    图片.png

  2. biliup如何设置一个直播间边录边传?
    修改代码文件/biliup/handler.py 内的modify模块,将限制下载代码进行注释(使用“#”),(pip快速安装的可以使用 echo n | pip3 uninstall biliup查看安装路径)修改成如下所示:

def modify(self, url):
        if not url:
            return logger.debug('无人直播')
        if self.url_status[url] == 1:
            return logger.debug('已开播正在下载')
        #if self.url_status[url] == 2:
        #    return logger.debug('正在上传稍后下载')
        name = self.inverted_index[url]
        logger.debug(f'{name}刚刚开播,去下载')
        self.url_status[url] = 1
        return Event(DOWNLOAD, args=(name, url))
  1. 什么是分区代码,哪里有分区代码可以参考
    分区代码既使用数字替代网页投稿时手动选择的中文分区,用于通过稿件avid/bvid判断所在的分区,或推荐分区视频等…
    分区代码可以参考:视频分区一览(分区代码)
  2. 使用pip安装quickjs出现如下报错
    7SR8JER0YENT_DIV5.png
    解决方法:安装python3-dev与gcc
    sudo apt install python3-dev gcc -y
  3. 如何升级biliup
    使用pip安装biliup升级方法:sudo pip3 install --upgrade biliup
    源码安装的则需下载新的源码包解压后将解压出来的新文件全部替换到旧版本中,然后在源码目录下执行一下安装命令 sudo pip3 install -e .
  4. biliup start 启动时提示如下错误
__init__.py14[error]Tname:MainThread Uncaught exception:
Traceback (most recent call last):
  File "/usr/local/bin/biliup", line 8, in <module>
    sys.exit(arg_parser())
  File "/usr/local/lib/python3.8/dist-packages/biliup/__main__.py", line 49, in arg_parser
    args.func()
  File "/usr/local/lib/python3.8/dist-packages/biliup/__main__.py", line 36, in <lambda>
    parser.set_defaults(func=lambda: asyncio.run(main(args)))
  File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.8/dist-packages/biliup/__main__.py", line 53, in main
    from .handler import CHECK_UPLOAD, CHECK, event_manager
  File "/usr/local/lib/python3.8/dist-packages/biliup/handler.py", line 4, in <module>
    from .downloader import download, check_url
  File "/usr/local/lib/python3.8/dist-packages/biliup/downloader.py", line 7, in <module>
    from .plugins import general, BatchCheckBase
  File "/usr/local/lib/python3.8/dist-packages/biliup/plugins/general.py", line 5, in <module>
    from ykdl.common import url_to_module
  File "/usr/local/lib/python3.8/dist-packages/ykdl/common.py", line 5, in <module>
    from .util.http import get_head_response
  File "/usr/local/lib/python3.8/dist-packages/ykdl/util/http.py", line 10, in <module>
    from types import NoneType
ImportError: cannot import name 'NoneType' from 'types' (/usr/lib/python3.8/types.py)

解决方法:降低“ykdl”版本,该问题出现在使用1.8.1版本中,使用1.8.0即可解决。

sudo pip3 install ykdl==1.8.0
  1. 配置多个直播间同时开播但只同时下载3个。
    修改config.yaml配置文件中的线程池数量,pool1_size与pool2_size,线程池1,负责download事件,线程池2,处理除download事件外所有其他事件。线程池必须>=直播间数量。
    image

待续…