b站投稿线路分析

bilibili投稿模式分主要为fetch和直传两种,线路概览:

  • bup(直传b站投稿系统,适合大陆地区
    • upos
      • bda2(百度)
      • qn(七牛)
      • ws(网宿)
  • bupfetch (传至合作方后由b站投稿系统拉取,适合港澳台和海外地区
    • kodo(七牛)
    • bos(百度)
    • gcs(谷歌)
    • cos(腾讯)

B 站在上传前会通过 probe 来返回几条线路,并发包测试从中选择响应时间较短的,但对与国外的机器实际上不太准确,所以建议还是在实际测试后手动选择一条线路,实际测试大部分国外机器在kodo线路3并发的情况下能达到60-90MiB/s的速度,理论上增加并发数能跑满带宽。

TIPS

用户等级大于 3 ,且粉丝数 > 1000 ,Web 端投稿不限制分 P 数量。B 站 Web 端将替换为合集

对于不满足条件的账号,多 P 投稿只能依靠 B 站的投稿客户端,但是投稿客户端使用的线路与 Web 端不同,质量低于 Web 端的线路,在国外机器会放大这一差距。所以本项目使用 client 的提交接口配合 Web 端的上传线路,弥补两者各自的不足。既可以多 P 上传,又提供了质量(速度和稳定性)较高的线路,且提供了 Web 端不具备的手动切换线路功能。

使用建议

国内VPS网络费用较高,建议使用国外VPS,根据机器的硬盘等资源设置合理并发量, 选择kodo线路较容易跑满带宽。

b站上传目前有两种模式,分别为bup和bupfetch模式。

  • bup:国内常用模式,视频直接上传到b站投稿系统。
  • bupfetch:目前见于国外网络环境,视频首先上传至第三方文件系统,上传结束后通知bilibili投稿系统,再由b站投稿系统从第三方系统拉取视频,以保证某些地区用户的上传体验。

bup模式支持的上传方式为upos,其线路有:

  • ws(网宿)
  • qn(七牛)
  • bda2(百度)

bupfetch模式支持的上传方式及线路有:

  1. kodo(七牛)
  2. gcs(谷歌)
  3. bos(百度)

国内基本选择upos模式的bda2线路。国外多为upos模式的ws和qn线路,也有bupfetch模式的kodo、gcs线路。bilibili采用客户端和服务器端线路探测相结合的方式,服务器会返回可选线路,客户端上传前会先发包测试选择一条延迟最低的线路,保证各个地区的上传质量。


登录有两种方案:

  • 操作浏览器模拟登录

  • 通过b站的OAuth2接口

对于滑动验证码可进行二值化、灰度处理找缺口计算移动像素,系统会上传分析你的拖动行为,模拟人操作轨迹,提供加速度、抖动等,如直接拖动到目标位置不能通过验证,提示:“拼图被怪物吃了”。滑动验证码系统会学习,需不断更新轨迹策略保证通过验证的成功率。
OAuth2接口要提供key,需逆向分析各端