lux icon indicating copy to clipboard operation
lux copied to clipboard

B站的1080P+视频,在登录大会员情况下,提示账号未登录

Open Fuxiao7 opened this issue 7 years ago • 16 comments

登录大会员,并选择1080P60的情况下,使用firefox的cookies.txt得到cookies.txt, 在cmd中输入annie -i -c ~/Desktop/cookies.txt https://www.bilibili.com/video/av21104784?p=2,出现了: Downloading [36mhttps://www.bilibili.com/video/av21104784?p=2[0m error: [31mcookie error: 账号未登录[0m

是不是我cookies的路径用错了?cookies.txt放在C:\Users\用户名\Desktop\ 下,cmd的当前目录也是这个。 搜索了一番,还是没有解决,请求帮助 m(_ _)m

Fuxiao7 avatar Nov 10 '18 09:11 Fuxiao7

这是你 cookie 的问题,cookie 过期了或者不对,你确认一下这个路径 ~/Desktop/cookies.txt 下的文件内容

iawia002 avatar Nov 10 '18 10:11 iawia002

呃..实在抱歉,我对代码完全是小白,我按您的回复,去搜索了下,下面是我的反馈,希望这些信息是有用的...

我从firefox的调试工具里,找到了视频第一段x-flv的Request Head,下面有一个 Age:249513 Connection:keep-alive 还有一个Date, 后面写着2018年11月7号15点38分56秒。 这个cookie好像是像您说的一样过期了? 如果是过期了的话,请问怎么解决呀

关于cookies.txt,您指的~/Desktop/cookies.txt这个路径,在Win10 的cmd里,是不是C:\Users\用户名\Desktop\cookies.txt 如果是这个的话,cookies.txt文件的开头是您之前在另一个issue里说的Netscape HTTP Cookie File 下面是一堆网站的地址,还有TURE, FALSE这些。网址和TURE之间,是用TAB缩进的。

希望上面这些没有给您造成困扰...

Fuxiao7 avatar Nov 10 '18 13:11 Fuxiao7

过期的意思就是登录过期了,你重新登录再下载 cookies 就行了,格式的话,用的工具下载的应该不会错的

windows 的路径就别写 ~/Desktop/cookies.txt 这种,这是 Linux 的格式,用 C:\Users\用户名\Desktop\cookies.txt 试试

iawia002 avatar Nov 10 '18 13:11 iawia002

感谢大大这么晚还回复!

重新登录了B站之后,用windows的格式试了下,出现了34行这个: 2018/11/10 22:08:15 net/http: invalid byte '"' in Cookie.Value; dropping invalid bytes 然后就是 Downloading [36mhttps://www.bilibili.com/video/av21104784?p=2[0m error: [31mcookie error: 账号未登录[0m

Fuxiao7 avatar Nov 10 '18 14:11 Fuxiao7

我不知道是 windows 路径的问题还是你 cookies 的问题,理论上来说用工具下载了 cookies,然后用 -c 参数指定路径就行了

iawia002 avatar Nov 10 '18 15:11 iawia002

你可以参考一下使用另一种格式的 cookie,不用文件,直接用 cookie 的字符串 #104 #37 https://github.com/iawia002/annie#cookies

iawia002 avatar Nov 10 '18 15:11 iawia002

抱歉这么晚才回复您。 我试了下#104里,pepapu这位试过并且有效的 【曼食慢语】我在这道甜点里藏了颗草莓少女心,切开看看吧 #夜深了,请放毒#

下面描述一下我的步骤: 1、登录B站(有大会员),打开该视频,调到1080P+; 2、在firefox中F12,点到“网络”; 3、刷新页面,此时视频扔在1080P+的清晰度; 4、在"网络"中,选了请求方法GET触发XHR类型plain的一条; 5、点击此条后,在出现的“请求头”中,复制了cookie一行; 6、在cookie的文本中,我找到了如buvid=XXXX格式的文本,很像您在README里写的name=value; 7、按照 annie -c "buvid=XXXX" -i https://www.bilibili.com/video/av21972738/这个格式,在cmd中执行; 8、执行结果为: Downloading [36mhttps://www.bilibili.com/video/av21972738[0m error: [31mcookie error: 账号未登录[0m; 9、在B站重新登录一次,重复上述步骤,依然出现步骤8中的情况。

我自己感觉,好像是复制cookie时,选择的条目错了。那一堆请求条目里,我不太清楚选哪个是对的,还请您教一下我,感谢!

Fuxiao7 avatar Nov 13 '18 15:11 Fuxiao7

点击此条后,在出现的“请求头”中,复制了cookie一行

不知道要哪个的话把这一行的内容全部复制下来就好,不用找那几个关键的

iawia002 avatar Nov 14 '18 01:11 iawia002

firefox的cookies.txt得到cookies.txt

firefox 的 cookies.txt 导出时会把 SESSDATA 给注释掉,去掉这行的注释就可以了

HttpOnly_.bilibili.com TRUE / FALSE 1549955131 SESSDATA xxxxxxx

Yinr avatar Jan 13 '19 10:01 Yinr

有什么办法让脚本登录B站账号,自动获取1080+,而不像现在一样,手动找

NoString avatar Feb 01 '19 11:02 NoString

有什么办法让脚本登录B站账号,自动获取1080+,而不像现在一样,手动找

默认就是按照大小排序了,不设定 -f 参数则下载文件大小最大的那个

Yinr avatar Feb 01 '19 23:02 Yinr

可以用Chrome的EditThisCookie扩展 安装完,在EditThisCookie扩展工具的选项中,最后一项“选择cookies的导出格式”这一项改成Semicolon separated name=value pairs. 回到B站的视频页面,点击地址栏右边 扩展工具栏的cookie图标,搜索🔍左边有导出到剪贴板。 黏贴到cookie.txt中,把前几行"//"开头的注释删掉,全文最后一个封号";"要不要删忘了,我是删了。 保存即可。 PS:我目前觉得这个最方便来着。

asdhubin avatar Feb 15 '19 14:02 asdhubin

Firefox 比较方便的是 Cookie Quick Manager,选上 Sub-domains 选项然后选相应域名后 save domain to file 就可以了

Yinr avatar Feb 21 '19 12:02 Yinr

直接使用这种格式 annie -c "buvid=XXXX" -i https://www.bilibili.com/video/av21972738/ 把网站中的cookies全部复制粘贴(https://blog.csdn.net/weixin_41493717/article/details/107971262 附上csdn上的一篇小教学) 到 buvid=XXXX 的位置,就好了,我最开始使用cookies.txt会显示账户未登录。 以上报错情况可能是读取cookies.txt时会在txt内容前加 / ,所以会出现读取cookies错误的情况(使用-d进入debug mode发现的问题),直接复制粘贴的方法就直接避开了这个小bug。 而且这个bug,有时出现又是不出现,就像最开始我使用annie https://www.bilibili.com/video/av21972738/ 时一直下载不下来,报错,后来在url用“”包起来以后就好了,后续使用不带“”的url也没有问题了,就,很神奇

Mikelee24 avatar Oct 15 '20 02:10 Mikelee24

谢谢 真的可以,而且必须加英文状态下的""不然就不行 DY UGALQJUXN7$} 6C}Z~N9

syayys avatar Jul 18 '23 16:07 syayys