扩展阅读:
【还有该网址内容存在未知风险这种操作的么 -_-||】
研究B站已失效的视频
目录
1. 前言说明
2. 获取和研究网页源代码
3. 获取和研究 JSON 文件
4. 其他途径的尝试
5. 心得总结
一、前言说明
↶
- 前言部分:
最近打开自己的收藏夹,发现部分视频已经变成了已失效状态,o(╥﹏╥)o 。
但是,就算不给播放视频,至少把视频的标题放上去,连失效的视频是什么都没办法了解。最近几天的收藏还记得住,可是时间一长就完全不知道自己收藏的已失效视频是什么,多惨哪。所以,想用自己仅有一些掌握的能力看看能不能找到一些有用的信息。【PS.重要的视频还是预先缓存着。因为自己比较佛系,失效的视频对我不会产生太大的波澜。】 - 说明部分:
部分测试的需要(友情参与)
UP 主:oeasy
UID:2884629
【PS.sdl awsl】
二、获取和研究网页源代码
↶
- 先来到个人空间的收藏夹位置
- F12,并 F5 刷新页面
这里,我们已经获取到了所需的 HTML 源代码,接下来尝试寻找所需要的信息。 - 查找到下面这样的情况
上图中的data-aid
就是视频的 av 号 - 随便找一个 aid 号,将它的结点全点开
从 HTML 源代码中,就写着不少的信息。但是这是未失效的视频,并没有达到初衷,对我们来说没有用。因此,尝试查找已失效视频的相关源代码。 - 查找一个已失效视频的部分 HTML的源代码,并将它的结点全点开
通过源代码的对比,不难看出,这是就是一个失效的视频。
这个视频的封面的链接,也变成了已失效的封面。
现在从上面那段失效视频的 HTML 源代码中,我们勉强只能整理出一下信息:
项 | 值 |
---|---|
aid/av 号 | 54875782 |
视频时长 | 09: 01 |
播放数 | 89.1 万 |
收藏数 | 11.2万 |
UP主 | Powersee |
投稿日期 | 6-8 |
视频状态 | 已失效 |
收藏日期 | 6-11 |
但是,最重要的是,视频标题是什么,不知道标题,还是不清楚我收藏了什么。通过 UP 主的动态了解也是一种办法,但是不精准。由此可见,HTML 源代码已经没办法查到更多的信息,只好尝试别的方法。
三、获取和研究 JSON 文件
↶
- F12,选择 Network,并 F5 刷新,进行浏览器的抓包
- 尝试查找与收藏部分有关的内容
可以看出,这个请求链接返回的数据文件好像有我们想要的数据,并且更加内容详细。 - 如何轻松获取请求链接,并获得数据呢?
观察上述图片中的链接:https://api.bilibili.com/medialist/gateway/base/spaceDetail?media_id=64363929&pn=1&ps=20&keyword=&order=mtime&type=0&tid=0&jsonp=jsonp
里面有个 media_id ,并不知道从哪里出来的,但是如果知道 media_id 号,就可以返回想要的数据。
首先猜测是否与 uid 有关【猜测的理由是:uid 号可以唯一指定B站用户,而收藏夹是每个人独一无二的。不管怎么样,都无法避免使用 uid 号来区分互联网上的客户,通过 uid 号 B站的服务器才能准确地返回相应用户的数据】
uid 号目前是 2884629,而 media_id 是 64363929,两者并不一致。
因而,查找两者是否有联系,继续抓包测试。
经过测试可以抓到以下的内容,下面的链接请求后,可以返回收藏夹的一些信息,里面就有需要的 media_id 号
再观察一下请求的链接:https://api.bilibili.com/medialist/gateway/base/created?pn=1&ps=100&up_mid=2884629&is_space=0&jsonp=jsonp
链接中的 up_mid 参数,就是每个用户的 uid 号。
通过用户 uid 拼接上面的链接,就可以访问到指定 uid 用户的收藏夹的相关信息,再用其中返回的 media_id 号,对收藏夹具体信息的链接拼接,就能返回指定的收藏夹中视频具体的信息。 - 接下来要对返回的数据文件,进一步地分析来尝试获取有用的信息,先研究一个未失效视频的数据
从返回的数据结构来看,属于 JSON 数据。
将返回的数据格式化【JSON 格式化】,并从中截取一个未失效视频的相关数据:
{'attr': 0,
'cnt_info': {'coin': 86456, # 硬币数
'collect': 227945, # 收藏数
'danmaku': 3227, # 总弹幕数
'play': 1085684, # 播放数
'reply': 2825, # 回复量(评论量)
'share': 3182, # 分享
'thumb_down': 0,
'thumb_up': 96059}, # 赞数
'coin': {'coin_number': 0, 'max_num': 2}, # 最大投币量
'cover': 'http://i0.hdslb.com/bfs/archive/d5e0501fbb3264cc8466712bf2d27817fea9646e.jpg', # 封面
'ctime': 1565052384, # 视频更新的时间,unix时间戳
'dimension': {'height': 1080, 'rotate': 0, 'width': 1920},
'duration': 722, # 视频时长
'fav_state': 0,
'fav_time': 1565261009,
'id': 62421509, # av号
'intro': # 简介 '视频做的匆忙,难免有纰漏之处,欢迎批评指正,有什么问题也可以加群交流探讨。\nQ群:941763264',
'like_state': 0,
'link': 'bilibili://video/62421509',
'page': 1,
'pages': [{'dimension': {'height': 1080, 'rotate': 0, 'width': 1920},
'duration': 722,
'from': 'vupload',
'id': 108486609,
'metas': [{'quality': 15, 'size': 46063},
{'quality': 16, 'size': 46063},
{'quality': 32, 'size': 102054},
{'quality': 48, 'size': 131837},
{'quality': 64, 'size': 217610},
{'quality': 74, 'size': 316885},
{'quality': 80, 'size': 316885},
{'quality': 112, 'size': 614710},
{'quality': 116, 'size': 614710},
{'quality': 66, 'size': 180680}],
'page': 1,
'title': '十大良心网站推荐12345'}], # 标题
'pubtime': 1565052384, # 视频更新的时间
'tid': 122,
'title': '十大良心网站推荐',
'type': 2,
# Up主相关信息
'upper': {'face': 'http://i1.hdslb.com/bfs/face/1db648dd07a60357621c154fe4a28e5f141c8e22.jpg', # 头像
'followed': 0,
'mid': 290067690, # uid
'name': '文森特先生V', # id号
'vip_due_date': 1568131200000, VIP # 相关信息
'vip_pay_type': 0,
'vip_statue': 1,
'vip_type': 1}}
从上一段数据中,可以获取大量与视频有关的详细信息。
- 接下来尝试研究一个已失效视频的相关数据
{'attr': 1,
'cnt_info': {'coin': 46550,
'collect': 112515,
'danmaku': 1693,
'play': 890745,
'reply': 2542,
'share': 2626,
'thumb_down': 0,
'thumb_up': 41858},
'coin': {'coin_number': 0, 'max_num': 2},
'cover': 'http://i0.hdslb.com/bfs/archive/be27fd62c99036dce67efface486fb0a88ffed06.jpg',
'ctime': 1559964951,
'dimension': {'height': 1080, 'rotate': 0, 'width': 1920},
'duration': 541,
'fav_state': 0,
'fav_time': 1560201439,
'id': 54875782,
'intro': '软件下载地址:https://www.lanzous.com/b768687\n'
'\n'
'tracker 地址:https://github.com/ngosang/trackerslist',
'like_state': 0,
'link': 'bilibili://video/54875782',
'page': 1,
'pages': [{'dimension': {'height': 1080, 'rotate': 0, 'width': 1920},
'duration': 541,
'from': 'vupload',
'id': 95971248,
'metas': [{'quality': 15, 'size': 34515},
{'quality': 16, 'size': 34515},
{'quality': 32, 'size': 76470},
{'quality': 48, 'size': 98786},
{'quality': 64, 'size': 163057},
{'quality': 74, 'size': 237444},
{'quality': 80, 'size': 237444},
{'quality': 112, 'size': 460607},
{'quality': 116, 'size': 460607},
{'quality': 66, 'size': 135385}],
'page': 1, # 终于找到视频的标题
'title': '为什么你的BT种子文件下载不动?几个设置让它跑满带宽:tracker,DHT,端口映射'}],
'pubtime': 1559964950,
'tid': 122,
'title': '已失效视频', # 变成失效视频
'type': 2,
'upper': {'face': 'http://i0.hdslb.com/bfs/face/7606fa7cbf1c463aa1d373d97350b8d87fd66d98.jpg',
'followed': 0,
'mid': 254479550,
'name': 'Powersee',
'vip_due_date': 1554912000000,
'vip_pay_type': 0,
'vip_statue': 0,
'vip_type': 1}}
由此,终于找到了失效视频的标题,总算完成之前想要实现的目标 —— 确定已失效视频的标题。唯一可惜的是,视频的封面仍旧是失效的视频封面,但是能知道失效的视频的标题是什么某种程度上是可接受的。
四、其他途径的尝试
↶
- 首页- BiliPlus - ( ゜- ゜)つロ 乾杯~
这个网站很厉害,可以轻松查找出失效视频的相关信息,而且更加详细和用户友好。
测试失效视频 av 号:54875782
- Btools - 一个用户友好型的浏览器插件
- 功能介绍
- 增强评论功能
- 历史表情
- 评论搜索
- 增强B站收藏夹【原 “查看失效视频” 功能,B站更新了收藏夹,页面数据中及后台请求数据中删除了视频封面和标题,因此原功能失效。改为增强B站收藏夹,你依然可以用这个功能查看失效视频的简介、分P名以及UP主,可能会帮你想起这个失效视频。没失效的视频则可以快速的打开封面、打开UP主空间、跳转哔哩哔哩唧唧。】
- 直播助手
- 隐藏显示PK分数
- 隐藏迷你播放器
- 转发抽奖
- 获取专题文章中的URL
- 获取视频封面
- 微博评论自动加载功能
五、心得总结
↶
以上就是自己对B站个人收藏中已失效的视频的相关资料的搜寻和研究,后续如果发现别的方法,可能会继续补充。通过这些办法,我们就可以实现获取已失效的的视频的相关信息,帮助自己唤起那段丢失的记忆。总觉得视频失效,最可怜的是,放在收藏夹准备以后看的用户,结果就一遍都看不到了【虽然也不一定再回去看】。
偶遇的神奇网站:B站速刷网
点我回顶部 ☚
Fin.