B站的1080P+视频,在登录大会员情况下,提示账号未登录
登录大会员,并选择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
这是你 cookie 的问题,cookie 过期了或者不对,你确认一下这个路径 ~/Desktop/cookies.txt 下的文件内容
呃..实在抱歉,我对代码完全是小白,我按您的回复,去搜索了下,下面是我的反馈,希望这些信息是有用的...
我从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缩进的。
希望上面这些没有给您造成困扰...
过期的意思就是登录过期了,你重新登录再下载 cookies 就行了,格式的话,用的工具下载的应该不会错的
windows 的路径就别写 ~/Desktop/cookies.txt 这种,这是 Linux 的格式,用 C:\Users\用户名\Desktop\cookies.txt 试试
感谢大大这么晚还回复!
重新登录了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
我不知道是 windows 路径的问题还是你 cookies 的问题,理论上来说用工具下载了 cookies,然后用 -c 参数指定路径就行了
你可以参考一下使用另一种格式的 cookie,不用文件,直接用 cookie 的字符串 #104 #37 https://github.com/iawia002/annie#cookies
抱歉这么晚才回复您。 我试了下#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时,选择的条目错了。那一堆请求条目里,我不太清楚选哪个是对的,还请您教一下我,感谢!
点击此条后,在出现的“请求头”中,复制了cookie一行
不知道要哪个的话把这一行的内容全部复制下来就好,不用找那几个关键的
firefox的cookies.txt得到cookies.txt
firefox 的 cookies.txt 导出时会把 SESSDATA 给注释掉,去掉这行的注释就可以了
HttpOnly_.bilibili.com TRUE / FALSE 1549955131 SESSDATA
xxxxxxx
有什么办法让脚本登录B站账号,自动获取1080+,而不像现在一样,手动找
可以用Chrome的EditThisCookie扩展 安装完,在EditThisCookie扩展工具的选项中,最后一项“选择cookies的导出格式”这一项改成Semicolon separated name=value pairs. 回到B站的视频页面,点击地址栏右边 扩展工具栏的cookie图标,搜索🔍左边有导出到剪贴板。 黏贴到cookie.txt中,把前几行"//"开头的注释删掉,全文最后一个封号";"要不要删忘了,我是删了。 保存即可。 PS:我目前觉得这个最方便来着。
Firefox 比较方便的是 Cookie Quick Manager,选上 Sub-domains 选项然后选相应域名后 save domain to file 就可以了
直接使用这种格式 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也没有问题了,就,很神奇
谢谢 真的可以,而且必须加英文状态下的""不然就不行