图源:《雷神》二木enmmm 115362902
2019年2月4日,一年一度的哔哩哔哩拜年祭如约而至。不得不说,今年的拜年祭在节目质量和形式上相较于前三年都有较大的提升。出于在电视上离线播放(即非网络电视,而是读取存储设备上的媒体文件)的需求,及家中的缓慢网速达不到 Bilibili 大会员 1080P+ 无卡顿播放的程度,我利用少量的空余时间对 Bilibili 高清视频的下载方式进行了简单实践,并在本文中进行简单总结。
ID
熟悉B站的用户应该都会了解到,B 站上的视频、音频、专栏文章、用户都是以唯一的 ID 进行标识的。以“【星尘原创】尘降【PV付/COP】”这个视频为例:其视频地址为:https://www.bilibili.com/video/av4402328
,该视频所对应的音频的地址为:https://www.bilibili.com/audio/au18065
,上传该视频的UP主的个人主页地址为:https://space.bilibili.com/396194
。由此我们可以获取到以下类型的唯一 ID:
- 视频 ID [Anime (Video) ID, aid/avid]:
4402328
- 音频 ID [Audio ID, auid]:
18065
- 用户 ID [User ID, uid]:
396194
中包含的“av”、“au”、“cv”等均是为了区分 ID 的类型所用。在 Ajax 请求过程中各 ID 的值均为数字,不包含字符。
在上述例子中没有包括的、实际应用的 ID 类型还有(不完全)[1]:
- 文章 ID [Content Viewing ID, cvid]
- 内容 ID [Content ID, cid]
- 通知 ID [Notification ID, nfid]
- 会员 ID [Member ID, mid]
- 标签 ID [Tag ID, tid]
- 顺序 ID [Order ID, oid]
- 分类 ID [Type ID, typeid]
- 直播间 ID [Room ID, roomid]
- 剧集 ID [Episode ID, epid]
在下载视频的时候,起到主要作用的是 aid 和 cid 这两个唯一 ID。aid 和 cid 的区别是:aid 既可以指单个视频,也可以指含有多个视频的播放列表,而 cid 是视频级唯一的。