diff --git a/CHANGELOG.md b/CHANGELOG.md index 31f544b..613510a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ - 🔧已修复的问题 - ⚠️需要手动操作的更新信息 +## 0.4.16 +- 更新时间:2023.03.23 +- 🔧修复B站自定义API不生效的问题。[@xxxxuanran](https://github.com/xxxxuanran) +- 🔧修复部分config示例的错误。[@haha114514](https://github.com/haha114514) + ## 0.4.15 - 更新时间:2023.03.21 - 🔧修复上一版本关于b站下载部分的优化相关的问题。[@xxxxuanran](https://github.com/xxxxuanran) diff --git a/biliup/__init__.py b/biliup/__init__.py index fdd18e5..13489bc 100644 --- a/biliup/__init__.py +++ b/biliup/__init__.py @@ -1,7 +1,7 @@ import logging import sys -__version__ = "0.4.15" +__version__ = "0.4.16" LOG_CONF = { 'version': 1, diff --git a/biliup/plugins/bilibili.py b/biliup/plugins/bilibili.py index dcbcd77..515cd54 100644 --- a/biliup/plugins/bilibili.py +++ b/biliup/plugins/bilibili.py @@ -14,7 +14,6 @@ class Bilibili(DownloadBase): def __init__(self, fname, url, suffix='flv'): super().__init__(fname, url, suffix) self.fake_headers['Referer'] = 'https://live.bilibili.com' - self.customAPI_use_cookie = config.get('user', {}).get('customAPI_use_cookie', False) self.use_live_cover = config.get('use_live_cover', False) self.bilibili_danmaku = config.get('bilibili_danmaku', False) if config.get('user', {}).get('bili_cookie') is not None: @@ -62,7 +61,7 @@ class Bilibili(DownloadBase): except: logger.error(f"获取直播封面失败") # 当 Cookie 存在,并且自定义APi使用Cookie开关关闭时,仅使用官方 Api - isallow = True if s.headers.get('cookie') is not None and self.customAPI_use_cookie else False + isallow = True if s.headers.get('cookie') is None else config.get('user', {}).get('customAPI_use_cookie', False) play_info = get_play_info(s, isallow, official_api_host, params) if play_info['code'] != 0: logger.debug(play_info['message']) @@ -96,22 +95,22 @@ class Bilibili(DownloadBase): import random i = len(cn01_domains) while i: # 测试节点是否可用 + host = cn01_domains.pop(random.choice(range(i))) i-=1 - host = cn01_domains[i] try: if s.get(f"https://{host}{stream_url['base_url']}{stream_url['extra']}", stream=True).status_code == 200: # 如果响应状态码是 200,跳出循环 + stream_url['host'] = "https://" + host + logger.debug(f"节点 {host} 可用,替换为该节点") break except requests.exceptions.ConnectionError: # 如果发生连接异常,继续下一次循环 logger.debug(f"节点 {host} 无法访问,尝试下一个节点。") continue else: logger.error(f"配置文件中的cn-gotcha01节点均不可用") - logger.debug(f"节点 {host} 可用,替换为该节点") - stream_url['host'] = "https://" + host # 强制去除 hls_ts 的 _bluray 文件名 if force_source: - stream_url['base_url'] = re.sub(r'_bluray(?=\.m3u8)?', "", stream_url['base_url'], 1) + stream_url['base_url'] = re.sub(r'_bluray(?=\.m3u8)', "", stream_url['base_url'], 1) self.raw_stream_url = stream_url['host'] + stream_url['base_url'] + stream_url['extra'] # 强制替换ov05 302redirect之后的真实地址为指定的域名或ip达到自选ov05节点的目的 if ov05_ip and "ov-gotcha05" in stream_url['host']: diff --git a/public/config.toml b/public/config.toml index 609a82f..8f19f43 100644 --- a/public/config.toml +++ b/public/config.toml @@ -83,10 +83,9 @@ check_sourcecode = 15 #bili_force_ov05_ip = "163.171.197.234" ### 强制替换cn-gotcha01(叔叔自建,理论上最稳定)为指定的自选域名组(可多个域名,请用逗号分隔) ### 完整CDN列表请参考 https://rec.danmuji.org/dev/bilibili-cdn/ 中"B站视频云"的部分 -### 此功能需要设置bili_perfCDN为cn-gotcha01,并且设置bili_protocol为hls。 ### 此功能目前会和stream-gears冲突导致很多分段,请考虑使用ffmpeg录制 ### 如果海外机器需要使用此功能,需要在bili_liveapi中指定国内的反代API来获取cn-gotcha01的节点信息。 -### 海外机的玩法:配合一个国内的机器(例如便宜的腾讯云,阿里云等等)自建反代api.live.bilibili.com +### 海外机的玩法:配合一个国内的机器(例如便宜的腾讯云,阿里云等等)自建反代api.live.bilibili.com。或者使用https://docs.qq.com/doc/DV2dvbXBrckNscU9x 此处提供的公用反代API ### 如果海外机到联通或者移动网络线路还不错,就可以参考***完整CDN列表***选取一些联通或者移动的节点并填入下面 ### 每次会随机返回填入的其中一个线路,并且会自动判断所填入的节点是否可用 #bili_force_cn01 = true @@ -160,7 +159,7 @@ tags = [ "biliup", "视频标签" ] #------哔哩哔哩获取直播流用COOKIE------# ### 可参照https://github.com/BililiveRecorder/BililiveRecorder/issues/263. ### 也可使用biliup-rs来获取以下项目. -#bili_cookie: 'SESSDATA=none;bili_jct=none;DedeUserID__ckMd5=none;DedeUserID=none;access_token=none;' +#bili_cookie = 'SESSDATA=none;bili_jct=none;DedeUserID__ckMd5=none;DedeUserID=none;access_token=none;' ### 重要!!! ###是否将cookie传入第三方API。将Cookie传入未知的第三方API有几率泄露帐号登录信息。 ###在开启了自定义Cookie(bili_cookie)又同时设置了第三方API(bili_liveapi)的情况下,如果打开了允许第三方API使用Cookie,那么就使用第三方API,如果没有允许(默认),那么设置的第三方API就不生效 diff --git a/public/config.yaml b/public/config.yaml index fb96ad2..7221962 100644 --- a/public/config.yaml +++ b/public/config.yaml @@ -81,10 +81,9 @@ check_sourcecode: 15 #bili_force_ov05_ip: '163.171.197.234' ### 强制替换cn-gotcha01(叔叔自建,理论上最稳定)为指定的自选域名组(可多个域名,请用逗号分隔) ### 完整CDN列表请参考 https://rec.danmuji.org/dev/bilibili-cdn/ 中"B站视频云"的部分 -### 此功能需要设置bili_protocol为hls。 ### 此功能目前会和stream-gears冲突导致很多分段,请考虑使用ffmpeg录制 ### 如果海外机器需要使用此功能,需要在bili_liveapi中指定国内的反代API来获取cn-gotcha01的节点信息。 -### 海外机的玩法:配合一个国内的机器(例如便宜的腾讯云,阿里云等等)自建反代api.live.bilibili.com +### 海外机的玩法:配合一个国内的机器(例如便宜的腾讯云,阿里云等等)自建反代api.live.bilibili.com。或者使用https://docs.qq.com/doc/DV2dvbXBrckNscU9x 此处提供的公用反代API。 ### 如果海外机到联通或者移动网络线路还不错,就可以参考***完整CDN列表***选取一些联通或者移动的节点并填入下面 ### 每次会随机返回填入的其中一个线路,并且会自动判断所填入的节点是否可用 #bili_force_cn01_domains: 'cn-jxnc-cm-01-16.bilivideo.com,cn-gddg-cm-01-06.bilivideo.com,cn-fjqz-cm-01-06.bilivideo.com,cn-jssz-cm-01-02.bilivideo.com,cn-gddg-ct-01-12.bilivideo.com'