程序概述
这是一个用于下载 B 站充电视频的工具,依赖于用户提供的会员 Cookies。
主要功能
- 加载和验证 Cookies:从文件中读取 Cookies,并验证其有效性。
- 获取视频信息:通过 B 站 API 获取视频的详细信息。
- 获取视频播放地址:通过 B 站 API 获取视频的实际播放地址。
- 下载视频:从播放地址下载视频文件,并显示下载进度。
代码实现
类定义和初始化
初始化时从 cookie_file 中加载 Cookies,并设置 HTTP 请求头。
class ChargeVideoDownloader:
def __init__(self, cookie_file):
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',
'Referer': 'https://www.bilibili.com/',
'Cookie': self._load_cookies(cookie_file)
}
加载和验证 Cookies
从文件中读取 Cookies,并检查是否包含必要的字段。
def _load_cookies(self, cookie_file):
"""从文件中加载 Cookies"""
with open(cookie_file, 'r') as f:
cookies = f.read().strip()
return self._validate_cookie(cookies)
def _validate_cookie(self, cookie):
"""验证 Cookie 有效性"""
required_keys = ['SESSDATA', 'bili_jct', 'DedeUserID']
if not (key cookie key required_keys):
ValueError()

