Youtube double language subtitle / Youtube 双语字幕. 如果不能自动加载,请关闭字幕再次打开即可。默认语言为浏览器首选语言。
< Feedback on Youtube double language subtitle / Youtube 双语字幕
作者:关于近期无法正常使用部分功能BUG的讨论
各位好,方才我更新了1.5版本,解决了无法验证身份导致网站正常功能收到影响的问题。确实是我的疏忽,没有仔细测试导致的,这里向大家说声抱歉。
回到问题本身,严格来说我的代码没有出现问题,问题出在我使用的xhr请求拦截库里:xhook。
先说一下这个脚本的原理:拦截字幕请求->发送新请求(目标语言)->合并两个请求并返回。
这样便得到了一个带有双行字幕的response,也就实现了功能。(更多细节可以查看脚本的github仓库:https://github.com/CoinkWang/Y2BDoubleSubs)
但在我使用xhook进行拦截时,对于一些fetch请求,xhook可能做了一些header过滤(feature or bug?)导致虽然cookie正确,但一些重要的验证头并没有被发送(其中就包含 youtube 作为身份验证的 authorization 头),于是乎,youtube 后端并不能验证身份,返回401,造成“明明我登陆了点赞了订阅了前端也响应了但是实际上统统没有成功”的结果。
我先是邮件联系了xhook的作者,目前没有得到回应。由于目前水平有限,没有从xhook的源码中发现什么端倪,于是我将依赖的xhook更换成了ajax-hook,重写了一遍逻辑,这次没有出现问题。
如果有前端朋友知道 xhook 发送请求的 header 莫名其妙少掉的原因,还请不吝赐教!
Yanıt göndermek için oturum açın.
作者:关于近期无法正常使用部分功能BUG的讨论
各位好,方才我更新了1.5版本,解决了无法验证身份导致网站正常功能收到影响的问题。确实是我的疏忽,没有仔细测试导致的,这里向大家说声抱歉。
回到问题本身,严格来说我的代码没有出现问题,问题出在我使用的xhr请求拦截库里:xhook。
先说一下这个脚本的原理:拦截字幕请求->发送新请求(目标语言)->合并两个请求并返回。
这样便得到了一个带有双行字幕的response,也就实现了功能。(更多细节可以查看脚本的github仓库:https://github.com/CoinkWang/Y2BDoubleSubs)
但在我使用xhook进行拦截时,对于一些fetch请求,xhook可能做了一些header过滤(feature or bug?)导致虽然cookie正确,但一些重要的验证头并没有被发送(其中就包含 youtube 作为身份验证的 authorization 头),于是乎,youtube 后端并不能验证身份,返回401,造成“明明我登陆了点赞了订阅了前端也响应了但是实际上统统没有成功”的结果。
我先是邮件联系了xhook的作者,目前没有得到回应。由于目前水平有限,没有从xhook的源码中发现什么端倪,于是我将依赖的xhook更换成了ajax-hook,重写了一遍逻辑,这次没有出现问题。
如果有前端朋友知道 xhook 发送请求的 header 莫名其妙少掉的原因,还请不吝赐教!