-
Notifications
You must be signed in to change notification settings - Fork 141
bilibili 部分地址流还是会返回 466 错误 #89
Comments
奇怪的是,使用同样 api (?) 的 annie 没问题
|
lulu -d https://www.bilibili.com/video/av20523785 |
奇怪,466 错误是没加 Line 268 in 9254e49
Lulu/lulu/extractors/bilibili.py Line 144 in 9254e49
我一个都复现不了 |
重装几次测试了 lulu 0.5.0,上面是在这里加 loggin 的结果 Line 371 in 9254e49
|
这个页面就没问题。哈哈哈,太神奇了 |
好像发现了点什么,好用的都是单独一个文件下载,出问题的,都是多线程下载? |
这个没道理吧,难不成 B 站解析出来的 CDN 地址不一样,他们 CDN 的屏蔽规则不同? |
这几天工具多了,嘿嘿。看看把lulu -u 解析出来的 url 交给 annie 测试:
也同样是466. 另外发现 annie 一个bug,参数不是认 -r 后面,而是谁在前面认谁。 |
但同样环境,直接用 annie 下,是没问题的。
|
上面几个,都出现了同一个 cdn,可见并不太可能是 cdn 的 IP 黑名单问题。 |
好像 lulu 和 Annie 解析出来的地址后面的参数不一样? |
它们用的 api 不是完全一样,上次 lulu 的只能算小更新,Annie 用的是现在 B 站网页端用的 api |
这参数基本看不出来有啥不一样。 这是刚生成的两个。但奇怪的是,你那边 lulu 好用。 |
直接看我还以为少了参数,自从加了 headers,我从没遇到过这些问题 |
嘿嘿,开了个新centos7虚拟机,全新装 lulu 测试,
这个就没问题: |
我估计是 b 站技术对 cdn 部署问题引发 bug,因为上面用 annie 抓到的流地址,主机和参数格式,全都一样的,但 annie 的200,lulu 的就是466,说明是服务器上 xml 里存的 token 加密key就是错的。 |
我差点没看出问题来,你确定这是你拿到的 流 地址么??
这样的有很长参数 |
查到问题了,原来这个鬼在lulu 和you-get 取 api xml 地址机制里! 我直接从一个多次测算都是 466 的b 站页面,用 lulu 内提取 api 地址的 xml 里面,找没有
又从这个xml 里取了其他带 &hfb 参数的测,基本都是466错误。看来这个bug 就在lulu 的取地址机制里。 下面是 xml 内容:
you-get 没这个 466 问题。 |
试了 you-get 那边给出 api 下三个流地址链接,都可以正确下载,没有466。。。 { |
放两个链接,不知道你到时候还能用否,上面是 you-get 的,可用,下面是 lulu 生成的,466 错误
是这个屡次测试过不去的页面 |
我直接换成 Annie 那边的 api 算了 |
我还没测,但感觉目前这个API可能还是可用,但不知道哪个item是好的,以及选择标准。 |
因为有 expires 或者 ip 绑定,或者 token 失效,我这 466 错误的流链接不能发给你重现。 Lulu/lulu/extractors/bilibili.py Line 104 in 9254e49
取 xml 里地址来试试,看看是不是也一样 466,排除是只有我遇到的特例。 我就奇怪了,为啥我和你安装一样,我这里每次遇到某些页面,取出来的都不能用,而你的 lulu 取出的地址都能用??? 你不觉得这事儿太神奇,而不可能了么?? @iawia002 |
可能是我们 B 站返回的 CDN 都不一样?我再测试一下你的那几个 URL |
复现了一次 |
它的 API 有一个 URL 字段,还有 backup url 的字段,讲道理,URL 应该就是第一选择吧 |
哈哈,我说么,不可能是我这死活不行的。 |
我下载了 类似文件,每个链接有6个...
把其中 每个文件里内容,相当于 lulu 取到一个文件里的4分之一(改一下,是4分之一)。但没好用的。。。。一个466,全都466 现在lulu 这个 api 还是可用的,其中很大部分 |
哈哈,发现问题所在了。 我把每次访问 21 个 cdn 的 url 全都 requests.get ,并列表。如下: 然后,我加了个 time.sleep(2),到每个访问之间,试过几分钟后。有一部分200可用了。这保存到 second.txt |
你也可以来测测,看看你那 IP 被 b 站态度如何。 Lulu/lulu/extractors/bilibili.py Line 114 in 9254e49
执行: |
这真是一个挺变态的行为。。。用 前几天楼上 发现怎么都不会 466 的网址测: |
顺手测一下 you-get,对于这个 lulu 在我这频繁466 的页面:
全200,真是好成绩啊。 |
这的确不好办了。你有空也可以看看,是否现在这个 api 还能继续用。 |
you-get 全家桶测试:
一个 466 都没有! 我看,lulu 就换 you-get 现在这个 api 就行啊 |
全家桶,就是加了个遍历,把 xml 读出的全部 url 都测一遍。
|
you-get 那个 API 不对,只改了半截的,只拿得到一种清晰度的。V2 的清晰度不是以前那样 4-0 那样取的 |
哦,这我倒没测,只是用全家桶都试了一遍,b 站 api 背后逻辑的确难猜。可能是最近360周鸿祎搞的拖库副作用吧。 |
还有个折中,坑 b 站的方式,轮询 xml,把63个全家桶都测一遍,那个好用,那个就交给用户下载。哈哈哈,会把这 api 搞死 |
我空了直接把它改成 Annie 的 api 看看,不用 xml 了 |
|
我说朋友,你不上课或者上班之类的吗😂感觉你住 Github 上啊 |
我只是随便看一眼 git 提示,然后干别的去。哈哈 |
我这几天已经把golang 搞定了,开始改annie了,哈哈,你说我收获大不大? |
新 api 大致测了几个页面全家桶,都是 200,没一个 466 。 |
哎,我有点感觉心痒痒了,b 站这么多 cdn 全曝光,这不是给 多线程 下载最好礼物么? 哇哈哈~~ |
lulu 对分了片的视频支持多线程(-T),annie 也对分片的视频用 goroutine 来下载,我觉得可以跑满带宽 |
看来新 API 也不全覆盖?
The text was updated successfully, but these errors were encountered: