iawia002 / lux

👾 Fast and simple video download library and CLI tool written in Go
MIT License
27.31k stars 2.95k forks source link

使用 annie 后 Wifi 自动断掉了 #766

Open HaloWang opened 4 years ago

HaloWang commented 4 years ago

annie -i -p -n 1 https://www.bilibili.com/video/BV1dE411u7ua annie -i -p https://www.bilibili.com/video/BV1dE411u7ua

都会导致网络自动断掉,WiFi 失去链接

zz5678 commented 4 years ago

呵呵,太神奇了,我也遭遇了这个bug,macos 10.15.6 开 annie 下载 wifi 就断掉。 尤其是 -F 用文件列表下载,单独下载情况稍好。 难道是 annie 同时请求太多套接字的问题???

zz5678 commented 4 years ago

刚刚重启了电脑,什么都没开,用 annie 下载,结果 wifi 又断掉了。 如下是wifi log https://gist.github.com/zz5678/0cff3abe413d013557755eef68629e85

zz5678 commented 4 years ago
cat download_list.txt | while read line
do
annie $line
done

按照推测去测试了,这样的方式annie不会造成wifi断连,而且跟踪了全程 annie 没有开超过 100 个端口。 用 -F 或者 -p 方式下载,wifi 断连时,annie 开端口都超过了130个 看来就是 annie 打开端口后没有关闭,再继续下一个 playlist 进行下载,端口策略导致的。 楼主用 -p 方式下载也是这个问题

golang 里面看来还有些什么深层次问题,能干掉 wifi 这不简单啊

zz5678 commented 4 years ago

@HaloWang 你不会也恰好是 macos 10.15 吧? 还是windows?

zz5678 commented 4 years ago

楼主你用这个脚本试试,应该可以下载,wifi 不会断了:

url="https://www.bilibili.com/video/BV1dE411u7ua?p="
for i in $(seq 1 81)
do
annie $url$i
done

直接复制,粘贴终端里就可以执行了

HaloWang commented 4 years ago

@zz5678 我恰好是 macOS 10.15.6 😂

HaloWang commented 4 years ago

Thank you, it works!

labulakalia commented 3 years ago

这个-p选项会同时启动大约超多的链接

for i in `seq 1 90`
do
sudo netstat -tn | grep tcp4|wc -l
sleep 1
sleep 1
done
      90
      92
     103
     192
     208
     208
     207
     207
     209
     210
     209
     206
     198
     194
     193
     146
     143
     143
     143
      88
      88
      91

大约到200多的时候wifi就会挂掉,所以应该是列表下载这里有bug

labulakalia commented 3 years ago

大概找到问题了,https://github.com/iawia002/annie/blob/master/extractors/bilibili/bilibili.go#L356 是这里造成了大概的请求然后导致wifi挂掉了。 这里会把每集的所有清晰度来请求一次,来获取当前清晰度的下载链接,一旦播放列表集数少时不会有什么影响,一旦多了,类似 https://www.bilibili.com/video/BV1js411b7vg 一共有89 个视频,然后每次请求 每个视频有两个清晰度,然后就会生成大量的链接。然后就会导致wifi挂掉。 @iawia002

zz5678 commented 3 years ago

是 golang 具备了如此简单就能干掉 mac os 协议栈的能力?还是mac这个版本有bug? 这个发现有点意思啊。 @iawia002 研究研究到底咋回事

cww0614 commented 3 years ago

按照 #832 修复之后似乎就不会有这么多连接了,应该能避免这个问题

jacobwwang commented 3 years ago

同样的 bug,macos 11.3.1 执行了 5 条 annie -F 命令(共 120 个链接) 电脑除了 wifi off,连 terminal 执行 lsof 命令都无反映,卡死了。