Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

下载bilibili时,遇到奇怪的无动作,无流量,然后就出错,再无法运行了 #122

Closed
Justsoos opened this issue Apr 27, 2018 · 37 comments · Fixed by #146
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@Justsoos
Copy link

annie.exe -p "https://www.bilibili.com/bangumi/play/ss20611/?from=search&seid=14422128004608274375"

 Site:      哔哩哔哩 bilibili.com
 Title:     亿万富翁们的饕餮盛宴:第1集
 Type:      video
 Stream:
     [default]  -------------------
     Quality:         高清 1080P
     Size:            702.81 MiB (736947316 Bytes)
     # download with: annie -f default "URL"

 0 B / 702.81 MiB [-------------------------------------------------------------------------------------------------]   0.00%panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x38 pc=0x63bce9]

goroutine 33 [running]:
github.com/iawia002/annie/utils.FileSize(0xc04206f6e0, 0x2f, 0x70fd1c, 0x3)
        /Users/mac/iawia002/go/src/github.com/iawia002/annie/utils/utils.go:52 +0x59
github.com/iawia002/annie/downloader.FormatData.urlSave(0xc04223c500, 0xb, 0x10, 0x7156e0, 0xc, 0x2becec74, 0xc042322240, 0x11c, 0x45ef0d5, 0x70fd1c, ...)
        /Users/mac/iawia002/go/src/github.com/iawia002/annie/downloader/downloader.go:62 +0xbd
github.com/iawia002/annie/downloader.VideoData.Download.func1(0xc04201a500, 0xc04232d0e0, 0xc042322240, 0x11c, 0x45ef0d5, 0x70fd1c, 0x3, 0xc04200f200, 0x2e, 0xc04200fd40, ...)
        /Users/mac/iawia002/go/src/github.com/iawia002/annie/downloader/downloader.go:212 +0xf4
created by github.com/iawia002/annie/downloader.VideoData.Download
        /Users/mac/iawia002/go/src/github.com/iawia002/annie/downloader/downloader.go:210 +0x3d6

win10下运行 0.6.8,下载到第一集(显示)80%左右,网卡无流量,百分比不长,用 ctrl+c 退出后再运行,几分钟后再次进入无流量状态。

再ctrl+c,再运行就是上面出错,无法再继续下载了。
看样子是合并时候出的问题?下面是残留的文件 ……

-rw-r--r-- 1 Jerry 197121 702M 4月  28 02:51  亿万富翁们的饕餮盛宴:第1集.mp4
-rw-r--r-- 1 Jerry 197121  70M 4月  28 01:30 '亿万富翁们的饕餮盛宴:第1集[3].flv'
-rw-r--r-- 1 Jerry 197121    0 4月  28 03:00 '亿万富翁们的饕餮盛宴:第1集[9].flv.download'
-rw-r--r-- 1 Jerry 197121 3.3M 4月  28 02:58 '亿万富翁们的饕餮盛宴:第2集[0].flv.download'
-rw-r--r-- 1 Jerry 197121  58M 4月  28 02:56 '亿万富翁们的饕餮盛宴:第2集[1].flv'
-rw-r--r-- 1 Jerry 197121  51M 4月  28 02:57 '亿万富翁们的饕餮盛宴:第2集[10].flv'
-rw-r--r-- 1 Jerry 197121  54M 4月  28 02:55 '亿万富翁们的饕餮盛宴:第2集[2].flv'
-rw-r--r-- 1 Jerry 197121  43M 4月  28 02:54 '亿万富翁们的饕餮盛宴:第2集[3].flv'
-rw-r--r-- 1 Jerry 197121 889K 4月  28 02:58 '亿万富翁们的饕餮盛宴:第2集[4].flv.download'
-rw-r--r-- 1 Jerry 197121  14M 4月  28 02:58 '亿万富翁们的饕餮盛宴:第2集[5].flv.download'
-rw-r--r-- 1 Jerry 197121  88M 4月  28 02:54 '亿万富翁们的饕餮盛宴:第2集[6].flv'
-rw-r--r-- 1 Jerry 197121  63M 4月  28 02:56 '亿万富翁们的饕餮盛宴:第2集[7].flv'
-rw-r--r-- 1 Jerry 197121  64M 4月  28 02:54 '亿万富翁们的饕餮盛宴:第2集[8].flv'
-rw-r--r-- 1 Jerry 197121 3.8M 4月  28 02:58 '亿万富翁们的饕餮盛宴:第2集[9].flv.download'
@Justsoos
Copy link
Author

刚刚再次运行,又开始运行了。但这次看样子是在重新下载第一集 ……
而那个 “第1集.mp4”,我播放测试,看样子是已经合并完整的第一集……
目前是这样子的:

-rw-r--r-- 1 Jerry 197121 702M 4月  28 02:51  亿万富翁们的饕餮盛宴:第1集.mp4
-rw-r--r-- 1 Jerry 197121 4.2M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[0].flv.download'
-rw-r--r-- 1 Jerry 197121  23M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[1].flv.download'
-rw-r--r-- 1 Jerry 197121  35M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[2].flv.download'
-rw-r--r-- 1 Jerry 197121  67M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[3].flv.download'
-rw-r--r-- 1 Jerry 197121  23M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[4].flv.download'
-rw-r--r-- 1 Jerry 197121  59M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[5].flv.download'
-rw-r--r-- 1 Jerry 197121  12M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[6].flv.download'
-rw-r--r-- 1 Jerry 197121 9.6M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[7].flv.download'
-rw-r--r-- 1 Jerry 197121  16M 4月  28 03:12 '亿万富翁们的饕餮盛宴:第1集[8].flv.download'
-rw-r--r-- 1 Jerry 197121  35M 4月  28 03:15 '亿万富翁们的饕餮盛宴:第1集[9].flv.download'
-rw-r--r-- 1 Jerry 197121 3.3M 4月  28 02:58 '亿万富翁们的饕餮盛宴:第2集[0].flv.download'
-rw-r--r-- 1 Jerry 197121  58M 4月  28 02:56 '亿万富翁们的饕餮盛宴:第2集[1].flv'
-rw-r--r-- 1 Jerry 197121  51M 4月  28 02:57 '亿万富翁们的饕餮盛宴:第2集[10].flv'
-rw-r--r-- 1 Jerry 197121  54M 4月  28 02:55 '亿万富翁们的饕餮盛宴:第2集[2].flv'
-rw-r--r-- 1 Jerry 197121  43M 4月  28 02:54 '亿万富翁们的饕餮盛宴:第2集[3].flv'
-rw-r--r-- 1 Jerry 197121 889K 4月  28 02:58 '亿万富翁们的饕餮盛宴:第2集[4].flv.download'
-rw-r--r-- 1 Jerry 197121  14M 4月  28 02:58 '亿万富翁们的饕餮盛宴:第2集[5].flv.download'
-rw-r--r-- 1 Jerry 197121  88M 4月  28 02:54 '亿万富翁们的饕餮盛宴:第2集[6].flv'
-rw-r--r-- 1 Jerry 197121  63M 4月  28 02:56 '亿万富翁们的饕餮盛宴:第2集[7].flv'
-rw-r--r-- 1 Jerry 197121  64M 4月  28 02:54 '亿万富翁们的饕餮盛宴:第2集[8].flv'
-rw-r--r-- 1 Jerry 197121 3.8M 4月  28 02:58 '亿万富翁们的饕餮盛宴:第2集[9].flv.download'

@Justsoos
Copy link
Author

annie.exe -p "https://www.bilibili.com/bangumi/play/ss20611/?from=search&seid=14422128004608274375"

 Site:      哔哩哔哩 bilibili.com
 Title:     亿万富翁们的饕餮盛宴:第1集
 Type:      video
 Stream:
     [default]  -------------------
     Quality:         高清 1080P
     Size:            702.81 MiB (736947316 Bytes)
     # download with: annie -f default "URL"

 594.16 MiB / 702.81 MiB [==================================================================>------------]  84.54% 1.15 MiB/s

又一次进入无流量,无动作状态了……

@Justsoos
Copy link
Author

-rw-r--r-- 1 Jerry 197121 702M 4月 28 03:27 亿万富翁们的饕餮盛宴:第1集.mp4
目前已经开始下第二集,目前第一集 merge 成功,没有出现上面看到有两个第一集残余的现象:

-rw-r--r-- 1 Jerry 197121  70M 4月  28 01:30 '亿万富翁们的饕餮盛宴:第1集[3].flv'
-rw-r--r-- 1 Jerry 197121    0 4月  28 03:00 '亿万富翁们的饕餮盛宴:第1集[9].flv.download'

@iawia002 iawia002 added the bug Something isn't working label Apr 28, 2018
@iawia002
Copy link
Owner

iawia002 commented May 8, 2018

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x38 pc=0x63bce9]

这个错误我倒是从来没见过

@aizya
Copy link

aizya commented May 21, 2018

@iawia002 我刚才下载的时候,也碰到这样一个问题....

`
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x48eabc]

`
我对go不是很熟悉, 网上查的结果:

https://stackoverflow.com/questions/16280176/go-panic-runtime-error-invalid-memory-address-or-nil-pointer-dereference

请帮忙看看..谢谢

@aizya
Copy link

aizya commented May 21, 2018

报错信息...
`
goroutine 1 [running]:
panic(0x69de00, 0xc420010180)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/iawia002/annie/utils.FileSize(0xc420289600, 0x100, 0xf7, 0x6f01b3)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/utils/utils.go:52 +0x5c
github.com/iawia002/annie/downloader.FormatData.urlSave(0xc420939500, 0x1, 0x1, 0x6f237c, 0xc, 0xb279c7, 0xc420973b00, 0x204, 0xb279c7, 0x6ec3a0, ...)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/downloader/downloader.go:81 +0x321
github.com/iawia002/annie/downloader.VideoData.Download(0x6f814e, 0x19, 0xc420288f00, 0xf3, 0x6ed699, 0x5, 0xc4202cb050, 0x7ffd7c9f2a3b, 0x29)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/downloader/downloader.go:206 +0x1537
github.com/iawia002/annie/extractors/bilibili.bilibiliDownload(0x7ffd7c9f2a3b, 0x29, 0x0, 0xc420256750, 0x89, 0xc420446320, 0x8, 0xc420307f30, 0x8, 0x0, ...)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/extractors/bilibili/bilibili.go:241 +0x70b
github.com/iawia002/annie/extractors/bilibili.Download(0x7ffd7c9f2a3b, 0x29)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/extractors/bilibili/bilibili.go:174 +0x4bc
main.download(0x7ffd7c9f2a3b, 0x29)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/main.go:56 +0x9ab
main.main()
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/main.go:121 +0xeb

`

@iawia002
Copy link
Owner

@aizya 不是你发的那个地址的那种错误,报错是 FileSize 这个函数,现在还不知道为什么会报错

你下载的 URL 贴一下,我看我能不能复现,还有你是什么系统

@aizya
Copy link

aizya commented May 21, 2018

@iawia002
命令: annie -p https://www.bilibili.com/video/av23716841
系统: ubuntu16.04 LTS

@iawia002
Copy link
Owner

iawia002 commented May 21, 2018

$ annie https://www.bilibili.com/video/av23716841

 Site:      哔哩哔哩 bilibili.com
 Title:     第二季 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式  Part01  Chapter01-07 01.第1章 课程介绍与前置项目回顾-1 课程导学
 Type:      video
 Stream:
     [default]  -------------------
     Quality:         高清 1080P
     Size:            18.95 MiB (19871047 Bytes)
     # download with: annie -f default "URL"

 18.95 MiB / 18.95 MiB [=================================] 100.00% 3.57 MiB/s 5s
Merging video parts into 第二季 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式  Part01  Chapter01-07 01.第1章 课程介绍与前置项目回顾-1 课程导学.mp4

@aizya 你下其他的视频报错吗,其他网站的视频,B 站的其他视频

@aizya
Copy link

aizya commented May 21, 2018

@iawia002 它是下到一半的时候报的错...

@aizya
Copy link

aizya commented May 21, 2018

@iawia002
这是报错的信息

`
Site: 哔哩哔哩 bilibili.com
Title: 第二季 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式 Part01 Chapter01-07 04.第4章 Tomcat集群演进详解及环境搭建-05 Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点
Type: video
Stream:
[default] -------------------
Quality: 高清 1080P
Size: 11.15 MiB (11696583 Bytes)
# download with: annie -f default "URL"

0 B / 11.15 MiB [-----------------------------------------------------] 0.00%panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x48eabc]

goroutine 1 [running]:
panic(0x69de00, 0xc420010180)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/iawia002/annie/utils.FileSize(0xc4202abb00, 0x100, 0xf7, 0x6f01b3)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/utils/utils.go:52 +0x5c
github.com/iawia002/annie/downloader.FormatData.urlSave(0xc420373590, 0x1, 0x1, 0x6f237c, 0xc, 0xb279c7, 0xc420547d40, 0x205, 0xb279c7, 0x6ec3a0, ...)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/downloader/downloader.go:81 +0x321
github.com/iawia002/annie/downloader.VideoData.Download(0x6f814e, 0x19, 0xc4202ab500, 0xf3, 0x6ed699, 0x5, 0xc42000c870, 0x7ffd2c6f945d, 0x29)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/downloader/downloader.go:206 +0x1537
github.com/iawia002/annie/extractors/bilibili.bilibiliDownload(0x7ffd2c6f945d, 0x29, 0x0, 0xc4204ce2d0, 0x89, 0xc420446158, 0x8, 0xc4203c7c18, 0x8, 0x0, ...)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/extractors/bilibili/bilibili.go:241 +0x70b
github.com/iawia002/annie/extractors/bilibili.Download(0x7ffd2c6f945d, 0x29)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/extractors/bilibili/bilibili.go:174 +0x4bc
main.download(0x7ffd2c6f945d, 0x29)
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/main.go:56 +0x9ab
main.main()
/home/xiaoxiong/gocode/src/github.com/iawia002/annie/main.go:121 +0xeb

`

是下载到一半的时候....

@aizya
Copy link

aizya commented May 21, 2018

@iawia002 我下载其他的视频正常噢,偶然会出现...

@iawia002
Copy link
Owner

你们都是在那个地方报错,可能确实有什么隐含的问题

@iawia002 iawia002 added the help wanted Extra attention is needed label May 21, 2018
@iawia002
Copy link
Owner

file, err := os.Stat(filePath)
if err != nil && os.IsNotExist(err) {
	return 0, false
}
return file.Size(), true

我好像知道了,报错是在上面这段代码的最后一行,就是说可能 err 存在但是不是 NotExist 的情况,但是文件又是 nil

iawia002 added a commit that referenced this issue May 21, 2018
@iawia002
Copy link
Owner

@Justsoos @aizya 帮忙试一下 faf784c 这个 commit 能不能解决你们的问题

@aizya
Copy link

aizya commented May 21, 2018

@iawia002 哥,我怎么才能使用最新的annie? 卸载再装? 不是很熟....

@iawia002
Copy link
Owner

iawia002 commented May 21, 2018

你本来怎么装的?

我没发版本,我想验证了这个再发,go get 一下,README 那里有写

@aizya
Copy link

aizya commented May 21, 2018

@iawia002 如果是go get覆盖的话,那么问题好像还在....

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x48eabc]

goroutine 1 [running]:
panic(0x69de00, 0xc420010180)
	/usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/iawia002/annie/utils.FileSize(0xc4204ad800, 0x100, 0xf7, 0x6f01b3)
	/home/xiaoxiong/gocode/src/github.com/iawia002/annie/utils/utils.go:52 +0x5c
github.com/iawia002/annie/downloader.FormatData.urlSave(0xc4203689c0, 0x1, 0x1, 0x6f237c, 0xc, 0xb279c7, 0xc420906480, 0x205, 0xb279c7, 0x6ec3a0, ...)
	/home/xiaoxiong/gocode/src/github.com/iawia002/annie/downloader/downloader.go:81 +0x321
github.com/iawia002/annie/downloader.VideoData.Download(0x6f814e, 0x19, 0xc4204ad100, 0xf3, 0x6ed699, 0x5, 0xc42093d860, 0x7ffda251945d, 0x29)
	/home/xiaoxiong/gocode/src/github.com/iawia002/annie/downloader/downloader.go:206 +0x1537
github.com/iawia002/annie/extractors/bilibili.bilibiliDownload(0x7ffda251945d, 0x29, 0x0, 0xc4200ae360, 0x89, 0xc420434188, 0x8, 0xc42037b148, 0x8, 0x0, ...)
	/home/xiaoxiong/gocode/src/github.com/iawia002/annie/extractors/bilibili/bilibili.go:241 +0x70b
github.com/iawia002/annie/extractors/bilibili.Download(0x7ffda251945d, 0x29)
	/home/xiaoxiong/gocode/src/github.com/iawia002/annie/extractors/bilibili/bilibili.go:174 +0x4bc
main.download(0x7ffda251945d, 0x29)
	/home/xiaoxiong/gocode/src/github.com/iawia002/annie/main.go:56 +0x9ab
main.main()
	/home/xiaoxiong/gocode/src/github.com/iawia002/annie/main.go:121 +0xeb

@aizya
Copy link

aizya commented May 21, 2018

@iawia002 但是从日志看,,我的annie好像还是没有变....

@aizya
Copy link

aizya commented May 21, 2018

 2018-05-21 23:00:57 ⌚  xiong in ~/playground/videos/tomcat-redis
○ → go get github.com/iawia002/annie

 2018-05-21 23:01:17 ⌚  xiong in ~/playground/videos/tomcat-redis
○ → 

这个命令没有输出... 这样会覆盖使用最新的annie?

@iawia002
Copy link
Owner

go get -u github.com/iawia002/annie

@aizya
Copy link

aizya commented May 21, 2018

@iawia002

新的问题, 感觉有点眉目?

2018/05/21 23:06:23 Error while downloading: http://upos-hz-mirrorks3.acgvideo.com/upgcxcode/97/43/39624397/39624397-1-80.flv?e=ig8euxZM2rNcNbKa7bdVtWeBhbdVNEVEuCIv29hEn0lqXg8Y2ENvNCImNEVEUJ1miI7MT96fqj3E9r1qNCNEto8g2ENvN03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B599M=&deadline=1526922454&dynamic=1&gen=playurl&hfb=Yjk5ZmZjM2M1YzY4ZjAwYTMzMTIzYmIyNWY4ODJkNWI=&oi=1697406457&os=ks3&platform=pc&rate=47600&trid=4bf5857deeec412da3604bc37a3dc9b9&uipk=5&uipv=5&um_deadline=1526922454&um_sign=f12a643cd10f7bdf7fe7f214cbb0492e&upsig=2a4e76e861b24fb2489b1629a6245494, invalid argument


@iawia002
Copy link
Owner

🤯 这两个问题应该没有关联,那个改动不会影响下载,你再重试一下,我先确保这个问题解决了

@iawia002
Copy link
Owner

我好像知道这个问题的根源了,可能是文件名超长了,才导致了这个奇怪的错

@aizya
Copy link

aizya commented May 21, 2018

扎心了.... 我现在一直都是参数不合法... 之前那个问题估计解决了..

@iawia002
Copy link
Owner

😥 @aizya 哪个视频,具体的报错的那一 P,别发那整个列表的

@aizya
Copy link

aizya commented May 21, 2018

Site:      哔哩哔哩 bilibili.com
 Title:     第二季 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式  Part01  Chapter01-07 04.第4章 Tomcat集群演进详解及环境搭建-05 Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点
 Type:      video
 Stream:   
     [default]  -------------------
     Quality:         高清 1080P
     Size:            11.15 MiB (11696583 Bytes)
     # download with: annie -f default "URL"


@aizya
Copy link

aizya commented May 21, 2018

@iawia002 down这个的时候报错...是不是title过长?

@iawia002
Copy link
Owner

不确定,你试试 touch '第二季 Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式 Part01 Chapter01-07 04.第4章 Tomcat集群演进详解及环境搭建-05 Tomcat集群快速入门:Nginx负载均衡配置,常用策略,场景及特点.txt' 看报错不

@aizya
Copy link

aizya commented May 21, 2018

没有错噢... 先休息吧

@iawia002
Copy link
Owner

io.Copy(writer, res.Body) 这里报的错,感觉还是和文件名有关系。你空了再试试这个行不行:

annie -O "hello" https://www.bilibili.com/video/av23716841/?p=17

@Justsoos
Copy link
Author

估计和网络出错 -- 本地文件建立逻辑之间关联出错有关,与文件名长度无关,我那个错误也是第一次出,第二次重新开始就不再出现了。并不能随时重现的

@aizya
Copy link

aizya commented May 22, 2018

@iawia002 上面这个命令可行.. 有没有什么好的方式可以直接下载...

@aizya
Copy link

aizya commented May 22, 2018

@iawia002 能不能批量下载的时候不加主标题,子显示子标题,让它自己加去.感觉加完之后有点怪...太长了...

@iawia002
Copy link
Owner

@Justsoos 就是文件名过长导致文件建立之类的出错了,我强行加了很长的文件名:

2018/05/22 10:02:23 stat ... file name too long

@aizya 只有把文件名在最长处截断

@aizya
Copy link

aizya commented May 22, 2018

@iawia002 也可以..感谢..

@aizya
Copy link

aizya commented May 22, 2018

@iawia002 希望能尽快解决...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants