weixin_39765057
2021-01-02 05:38 阅读 10

[BLCC]无法读取Bangumi字幕

  1. 脚本名称:Bilibili CC字幕工具
  1. 脚本使用环境:Windows 8 (Build 6.2.9200.0) Google Chrome 85.0.4183.102 Tampermonkey BETA 4.10.6120
  1. 问题详细描述:

B站在10月新番中试行了CC字幕取代原本的硬字幕,但脚本无法加载CC字幕并报错。补充如下: 1. 测试的番剧ss34488虽然没有“仅限港澳台”后缀,但关闭Bilibili 旧播放页的“解除限制”功能会出现“非常抱歉,根据版权方要求,您所在的地区无法观看本片 ~”提示,大概是有区域限制的。 2. 使用解除B站区域限制脚本在新版播放器中同样复现。 3. 控制台显示链接https://api.bilibili.com/x/player.so?id=cid:235524170&aid=797108991被404,个人猜测在区域限制视频里无法通过该链接获取CC字幕数据,但囿于没有港澳台节点所以未能测试在肉身满足区域限制要求后该API是否仍被404(感觉应该不会)。 4. 据萌战吧【整合楼】2020年10月番新番版权情报讨论专楼第831楼及楼中楼对话可知在Android端CC字幕正常但B站原生的网页端播放器还没有支持番剧CC字幕。 5. 个人重构旧版页面__INITIAL_STATE__数据时发现对于av页CC字幕数据可以在全局变量__INITIAL_STATE__.videoData.subtitle中读取,但是Bangumi页的__INITIAL_STATE__目前还没有(也不知道以后会不会有)。

综上,虽然这应该是个兼容问题,解除区域限制只代理了视频API,没兼顾到字幕等其他。 不知道是不是有其他备用API(不会404的)获取CC字幕?
没有的话看来只能等B站后续跟进,B站网页端之后肯定会提供Bangumi的CC字幕适配的(大概),恳请作者留意。

ps: 没有字幕看生肉实在难办,如果B站以后真不提供硬字幕的话

2020-09-21_173443 404

错误报告

<!--如果有控制台的错误报告,请把错误报告复制粘贴在下一行,不要删除前后的<>和相关代码-->
GET https://api.bilibili.com/x/player.so?id=cid:235524170&aid=797108991 404
setupData @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:918
tryInit @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:930
init @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:946
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:961
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:962
(anonymous) @ VM55:3
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:1
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:1
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:963
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:965
(anonymous) @ VM55:3
N @ VM55:2
(anonymous) @ VM55:3
Ka @ VM61:61
create @ VM61:73
L @ VM61:12
setTimeout (async)
(anonymous) @ VM55:3
H.<computed> @ VM55:9
eval @ VM61:12
runListeners @ VM61:12
eval @ VM61:74
Aa @ VM55:11
send @ content.js:7
(anonymous) @ content.js:28
processQueue @ content.js:3
f @ content.js:9
forcedLoad @ content.js:10
(anonymous) @ content.js:22
userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:865 CC字幕助手配置失败 无法读取本视频字幕配置
toast @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:865
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:942
Promise.catch (async)
tryInit @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:941
init @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:946
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:961
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:962
(anonymous) @ VM55:3
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:1
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:1
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:963
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:965
(anonymous) @ VM55:3
N @ VM55:2
(anonymous) @ VM55:3
Ka @ VM61:61
create @ VM61:73
L @ VM61:12
setTimeout (async)
(anonymous) @ VM55:3
H.<computed> @ VM55:9
eval @ VM61:12
runListeners @ VM61:12
eval @ VM61:74
Aa @ VM55:11
send @ content.js:7
(anonymous) @ content.js:28
processQueue @ content.js:3
f @ content.js:9
forcedLoad @ content.js:10
(anonymous) @ content.js:22
userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764 GET https://api.bilibili.com/x/player.so?id=cid:235524170&aid=797108991 404
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:311
dispatch @ jquery.min.js:3
i @ jquery.min.js:3
trigger @ jquery.min.js:3
(anonymous) @ jquery.min.js:3
each @ jquery.min.js:2
each @ jquery.min.js:2
trigger @ jquery.min.js:3
e.trigger @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:331
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:372
userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764 GET https://api.bilibili.com/x/player.so?id=cid:235524170&aid=797108991 404
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:311
dispatch @ jquery.min.js:3
i @ jquery.min.js:3
trigger @ jquery.min.js:3
(anonymous) @ jquery.min.js:3
each @ jquery.min.js:2
each @ jquery.min.js:2
trigger @ jquery.min.js:3
e.trigger @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:331
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:372
userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764 GET https://api.bilibili.com/x/player.so?id=cid:235524170&aid=797108991 404
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:311
dispatch @ jquery.min.js:3
i @ jquery.min.js:3
trigger @ jquery.min.js:3
(anonymous) @ jquery.min.js:3
each @ jquery.min.js:2
each @ jquery.min.js:2
trigger @ jquery.min.js:3
e.trigger @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:331
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:372
userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764 GET https://api.bilibili.com/x/player.so?id=cid:235524170&aid=797108991 404
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:311
dispatch @ jquery.min.js:3
i @ jquery.min.js:3
trigger @ jquery.min.js:3
(anonymous) @ jquery.min.js:3
each @ jquery.min.js:2
each @ jquery.min.js:2
trigger @ jquery.min.js:3
e.trigger @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:331
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:372
userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764 GET https://api.bilibili.com/x/web-show/res/loc?pf=0&id=160&aid=797108991&jsonp=jsonp net::ERR_BLOCKED_BY_CLIENT
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1654
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1645
b.UJ @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1024
b.finish @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1024
b.I @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1022
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
setTimeout (async)
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1017
error @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1027
o @ jquery.min.js:2
fireWith @ jquery.min.js:2
w @ jquery.min.js:4
d @ jquery.min.js:4
XMLHttpRequest.send (async)
XMLHttpRequest.send @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9764
send @ jquery.min.js:4
ajax @ jquery.min.js:4
unsafeWindow.$.ajax @ userscript.html?name=Bilibili%20%E6%97%A7%E6%92%AD%E6%94%BE%E9%A1%B5.user.js&id=d2c4ccd7-f6a3-4935-a161-09453e077402:9799
e.ajax @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:390
$.ajax @ comment.min.js:1
c.getData @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1026
b.load @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:1015
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:311
dispatch @ jquery.min.js:3
i @ jquery.min.js:3
trigger @ jquery.min.js:3
(anonymous) @ jquery.min.js:3
each @ jquery.min.js:2
each @ jquery.min.js:2
trigger @ jquery.min.js:3
e.trigger @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:331
(anonymous) @ bilibiliPlayer.min.js?lastModified=2019-10-31T07:38:36.004Z:372
userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:918 GET https://api.bilibili.com/x/player.so?id=cid:235524170&aid=797108991 404
setupData @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:918
tryInit @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:930
eval @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:952
MutationObserver.observe.childList @ userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:949
userscript.html?name=Bilibili%20CC%E5%AD%97%E5%B9%95%E5%B7%A5%E5%85%B7.user.js&id=90c2993a-5cf2-4e5f-bbe9-9f3d3efb398b:865 CC字幕助手配置失败 无法读取本视频字幕配置
</computed></computed>

该提问来源于开源项目:indefined/UserScripts

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

23条回答 默认 最新

  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    别的接口是有,因为目前使用没有问题所以懒得去动它,但我试了下在这个视频下也是404的,换了区域试似乎也不是区域限制的原因。__INITIAL_STATE__里的数据我也有注意到但是这里确实没什么用处。目前PC端的新版播放器也没有支持CC字幕所以我也不知道它究竟用的什么接口,手机端抓包的话我现在的条件搞起来很蛋疼,假使能顺利抓到手机端的字幕接口以现在脚本的结构应该也没办法解决新版字幕问题……总之我最近会多留意一下,如果PC端有番剧支持字幕了可以通知我会尽快测试

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    不是区域限制的话,的确只能等B站跟进了。
    我也会继续留意的

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    折腾了一上午终于抓到了移动端API!
    https://api.bilibili.com/x/v2/dm/view?aid=797108991&oid=235524170&type=1
    参照上述同一个视频的
    https://api.bilibili.com/x/player.so?id=cid:235524170&aid=797108991
    显然oid对应的就是cidtype没测试直接取1,返回值如下:

    
    {
        "code": 0,
        "data": {
            "closed": false,
            "dm_seg": {
                "page_size": 360000,
                "total": 1
            },
            "flag": {
                "rec_flag": 3,
                "rec_switch": 1,
                "rec_text": "开启后,全站视频将按等级等优化弹幕"
            },
            "subtitle": {
                "lan": "",
                "lan_doc": "",
                "subtitles": [{
                        "id": 32638712968904711,
                        "id_str": "32638712968904711",
                        "lan": "en",
                        "lan_doc": "英语",
                        "subtitle_url": "http://i0.hdslb.com/bfs/subtitle/590a6b525e79fd26d2dc2dbf9d649a1010f8995e.json"
                    }, {
                        "id": 32638713030246405,
                        "id_str": "32638713030246405",
                        "lan": "th",
                        "lan_doc": "泰语",
                        "subtitle_url": "http://i0.hdslb.com/bfs/subtitle/d9568ffc6b74eb3b1a1fae6f0e917665cdbbdfa2.json"
                    }, {
                        "id": 32638713107316739,
                        "id_str": "32638713107316739",
                        "lan": "zh-Hans",
                        "lan_doc": "中文(简体)",
                        "subtitle_url": "http://i0.hdslb.com/bfs/subtitle/ec90dc6464f91f273985985b455298a43cf4a457.json"
                    }, {
                        "id": 32638713168134149,
                        "id_str": "32638713168134149",
                        "lan": "zh-Hant",
                        "lan_doc": "中文(繁体)",
                        "subtitle_url": "http://i0.hdslb.com/bfs/subtitle/2a85bc55efe7d1dfab23fcf172cd66b2e34155b9.json"
                    }
                ]
            }
        },
        "message": "0",
        "ttl": 1
    }
    

    测试过没被404,希望能给作者提供帮助!

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    另附上原始抓包数据供参考:

    
    GET /x/v2/dm/view?aid=797108991&appkey=bb3101000e232e27&build=2040100&channel=master&lang=hans&locale=zh_CN&mobi_app=android_i&oid=235524170&plat=2&platform=android&ps=0&statistics=%7B%22appId%22%3A1%2C%22platform%22%3A3%2C%22version%22%3A%222.4.0%22%2C%22abtest%22%3A%22507%22%7D&ts=1600739562&type=1&sign=f8992e4fceab2d2f464a36796baf7b17 HTTP/1.1
    Accept: application/xhtml+xml,application/xml
    Accept-Encoding: gzip, deflate
    Connection: keep-alive
    env: prod
    APP-KEY: android_i
    User-Agent: Mozilla/5.0 BiliDroid/2.4.0 (bbcallen.com) os/android model/8681-M02 mobi_app/android_i build/2040100 channel/master innerVer/2040130 osVer/6.0 network/2
    Host: api.bilibili.com
    Cookie: bfe_id=74d2c8da80807a7b17efa7e7578c6f68
    
    HTTP/1.1 200 OK
    Date: Tue, 22 Sep 2020 01:52:43 GMT
    Content-Type: application/json; charset=utf-8
    Content-Length: 1001
    Connection: keep-alive
    Bili-Status-Code: 0
    Bili-Trace-Id: 18af4098a45f6958
    Expires: Tue, 22 Sep 2020 01:52:42 GMT
    Cache-Control: no-cache
    X-Cache-Webcdn: BYPASS from cn-hk-eq-w-02
    
    {
        "code": 0,
        "data": {
            "closed": false,
            "dm_seg": {
                "page_size": 360000,
                "total": 1
            },
            "flag": {
                "rec_flag": 3,
                "rec_switch": 1,
                "rec_text": "开启后,全站视频将按等级等优化弹幕"
            },
            "subtitle": {
                "lan": "",
                "lan_doc": "",
                "subtitles": [{
                        "id": 32638712968904711,
                        "id_str": "32638712968904711",
                        "lan": "en",
                        "lan_doc": "英语",
                        "subtitle_url": "http://i0.hdslb.com/bfs/subtitle/590a6b525e79fd26d2dc2dbf9d649a1010f8995e.json"
                    }, {
                        "id": 32638713030246405,
                        "id_str": "32638713030246405",
                        "lan": "th",
                        "lan_doc": "泰语",
                        "subtitle_url": "http://i0.hdslb.com/bfs/subtitle/d9568ffc6b74eb3b1a1fae6f0e917665cdbbdfa2.json"
                    }, {
                        "id": 32638713107316739,
                        "id_str": "32638713107316739",
                        "lan": "zh-Hans",
                        "lan_doc": "中文(简体)",
                        "subtitle_url": "http://i0.hdslb.com/bfs/subtitle/ec90dc6464f91f273985985b455298a43cf4a457.json"
                    }, {
                        "id": 32638713168134149,
                        "id_str": "32638713168134149",
                        "lan": "zh-Hant",
                        "lan_doc": "中文(繁体)",
                        "subtitle_url": "http://i0.hdslb.com/bfs/subtitle/2a85bc55efe7d1dfab23fcf172cd66b2e34155b9.json"
                    }
                ]
            }
        },
        "message": "0",
        "ttl": 1
    }
    
    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    感谢,我尝试兼容一下

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    怎么感觉被B站针对了啊……这个API不太好用,返回的数据缺项并且没有字幕时需要自己补全,本想自己尝试兼容一下新版页面能不能用,结果测试到一半视频不见了,换了个视频测结果测着测者原来的API就不404了,B站自己兼容了PC端的字幕[捂脸]

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    目前情况是什么都不用改已经能在限制区域的番剧用了,不限制区域的番剧以前本来就不会错误,当然那些番剧以前也没有过字幕。本想顺便把API改一下但是改了之后在普通视频反而更多问题,暂时就先不管它了,有什么新情况再处理

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    嗯,感谢!
    视频还真的不见了!
    本来就感觉B站肯定会跟进网页端的,只是碍于B站一直以来的更新速度捉急就开了这个issue,没想到这次动作这么快。
    抓那条API也只是临时起意想试下怎么在开着代理节点的情况下再启用代理抓包工具,没想到还真抓到了……

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    目前的情况是 https://www.bilibili.com/blackboard/topic/activity-aYilSDlte.html 中大部分番剧都可以正常获取字幕,唯独有几个包括上文作为例子的那个(one room)字幕API还是被404。
    这个情况不知道是临时的还是就那样了,毕竟同页面其他番剧都正常。

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    B站大概是不打算让网页端看这些视频的,前些日子测试中说的视频不见了,实际上是转成仅限APP观看了,那个新番登陆页面的番剧在那一天之内几乎大部分光速消失,然后又缓慢一个个吐出来变成了仅限APP观看,包括one room这些,不过你的区域限制似乎连APP限制一起解除掉了的样子。因为这些视频新版播放器是看不了的,无视新版播放器逻辑的话前些天你说的那个接口大概可以用一下吧,晚些时候我尝试改一下弹幕获取接口

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    这个话题暂时先开着吧,也不知道最近B站还会搞出什么新问题来,过段时间没问题的话再关

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    不是新版播放器看不了,只是我的“解除限制”就没去适配新版播放器,这个功能是我测试拦截xhr响应来的,没想过去完善。想来只要能获取到视频地址,新版播放器也是一样可以播放。
    今天贴吧看到帖子说新番港澳台全部变成仅限APP了,我就想看看B站怎么判断请求是否来自APP,却没想到那么简单——在视频API后面添加一个参数platform=android_i就行(我还以为是通过UA判断或者会使用麻烦的加密链接什么的),更巧的是biliplus开放的代理API基本上是会继承所有参数。那就什么都不用改,多加上这个参数就是了。对于正统的【解除B站区域限制】脚本,类似的操作也应该会生效(虽然我没试过,代码风格差异太大,知道思路也不知道怎么修改)

    至于没抓出来的弹幕接口不好用,我想是不是可以作为原接口被404的备用接口什么的,就像B站获取视频地址的API也有备用的。

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    哇!感谢更新!
    邮件延迟没想到已经修改完成了,太效率了!

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    那个接口不好用主要是因为返回内容可能会缺数据需要自己补充,不过总之随便补上去了,至于新版的解除APP区域限制并没有那么简单,因为不是重写页面需要欺骗原有播放器才比较坑爹,姑且用你的方法试了一下但是卡在拉取地址后面了甚至也没错误信息,搞不懂不管了反正也不怎么看

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    短路了一番对比了一下正常视频返回的数据原来使用android_i的接口也是缺参数……总之抄了一番你的代码勉强可以让解除区域限制的脚本也能解除APP限制了,现在又回到字幕脚本的问题了,这个脚本在APP限制的番剧的新版页面上并没有办法工作……草不想去兼容啊好蛋疼

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    接口缺数据的确难办,旧版接口一个个失效我也深受其苦。
    卡在拉取数据如果是指从biliplus拉取到了视频地址但播放器没反应的话,可能就是我也遇到过的,加上platform参数后,返回的dash下durationminBufferTime等三个值全部为0,正常网页端返回的肯定是不为0的,个人猜想这三个值可能涉及到视频帧率,DASH音视频分轨可能要凭这个确定视频时间戳。

    我用的办法简单粗暴:强制获取flv而不是DASH,flv肯定没这个问题。
    具体就是修改参数type=flv(默认应该是type=,即为空,添加重复的type参数大概不行只能修改),而修改参数可能匹配判断也麻烦,所以我是完全重构的avid, cid, pn, type, otype, platform…,加上解除区域限制那两个
    获取flv的方法应该不止一种,貌似只要参数中不带final(?)等那两个“f”开头的参数就行。

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    我是把fnval去掉了获取到了flv,主要逻辑理清了解除区域限制那边等我处理好一起反馈给原作者让他去改吧,主要问题在现在我这个脚本的问题,因为新版的播放器我基本没有动它的界面所以如果原始播放器自己读不到字幕我也没办法给它加,自己加又要去折腾一套界面完全没有干劲,但是原始播放器的字幕依赖的就是那个被404掉的接口……总之目前估计也不会有人遇到这个问题我先自己磨一磨吧

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    看来只能祈愿B站自己取消404,我基本不用新版播放器,旧版能用我就万分感谢了!

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    好了,今天测试了下所有番剧的字幕好像都解除了404,作者也不必再为新版播放器无法主动加载字幕的事而头疼了。
    解除那边好像也支持解除APP限制了,我测试了下字幕应该没问题。(不过不知道是不是我网络的问题还是解除没处优化好,除了播放器其他都加载不出来……)

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    本来就没有打算在这个脚本里添加对新版404字幕的支持,原先我是打算把字幕获取那个接口也在解除限制那里解决的,但是写起来太乱以及解除不完全所以懒得提PR给作者,现在APP限制已经有人提了PR,404不用管那我也省点事了。APP限制的网页加载不完全大概是因为返回的网页结构本来就缺失,我稍微试了下似乎不重写的话常用手段无法解决所以也懒得管它。不过那个解除APP限制的PR也真够暴力的无论有没有APP限制全都一视同仁,总之目前没有这个脚本什么事了

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    嗯,那这个issue算是结了。 只是还有个不知道是不是问题的现象:这些APP限制在旧版页面还是会偶发CC字幕载入错误,报错“无法读取'update'”之类的,图标显示出语言选项,切换语言报同样的错。刷新可解,复现几率很低。需要的话我之后附上报错数据。

    说起暴力,其实我也是那么做的_(:з」∠)_。因为当时好像也无从判断是一般区域限制,还是带APP限制的(毕竟当时网页端还是半残,字幕接口都404的),所以干脆通通获取flv得了。

    点赞 评论 复制链接分享
  • weixin_39681621 weixin_39681621 2021-01-02 05:38

    暂时先放着吧。有什么错误信息我尝试查一查

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 2021-01-02 05:38

    已确认是我的脚本的问题而与CC字幕脚本无关,因为错误总是伴随着播放器自己报错'paused',应该是我在模拟xhr响应以代理视频流获取的时候使播放器出错(偶发)连累到了CC字幕。
    看来模拟xhr响应并不是个完美的选择,不知道解除那边是用的什么办法…… 1 2

    点赞 评论 复制链接分享