这个程序是一个用于下载B站充电视频的工具,依赖于用户提供的会员Cookies。如何获取B站cookie请参考本站cookie登录b站获取cookie登录billbill教程。
程序主要功能:加载和验证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 all(key in cookie for key in required_keys):
raise ValueError("Cookie缺少必要字段,需要包含:SESSDATA, bili_jct, DedeUserID")
return cookie
下面程序用来获取视频信息ÿ