You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求解YouTube订阅接口带_u后缀的SAPISIDHASH哈希算法

YouTube订阅接口SAPISIDHASH哈希算法推导

问题背景

开发YouTube频道订阅机器人时,使用通用SAPISIDHASH算法sha1(new Date().getTime() + ' ' + SAPISID + ' ' + origin)生成的哈希与实际请求不符:

  • 实际哈希末尾带有_u后缀
  • Authorization头中同时出现SAPISIDHASH和SAPISID3PHASH,且两者内容完全重复

从请求示例提取的关键信息

从提供的POST请求中拆解核心字段:

  • Authorization头:SAPISIDHASH 1737533199_99687cec7b36bd2ca2ed4cb15023490f1c468019_u SAPISID3PHASH 1737533199_99687cec7b36bd2ca2ed4cb15023490f1c468019_u
  • 时间戳:1737533199(秒级,而非通用算法的毫秒级)
  • Origin:https://www.youtube.com
  • 会话凭证:Cookie中的__Secure-3PSID(对应Authorization头里的SAPISID3PHASH字段)

正确的哈希生成规则

1. 字符串拼接格式

使用秒级Unix时间戳,拼接规则为:

{timestamp} {3PSID值} {origin}

参数说明:

  • timestamp:当前时间的秒级Unix时间戳(如请求中的1737533199)
  • 3PSID值:Cookie中的__Secure-3PSID内容
  • origin:请求的Origin头值(固定为https://www.youtube.com)

2. 哈希计算与后缀

对拼接后的字符串计算SHA1哈希,在结果末尾添加_u后缀。

3. Authorization头构造

由于使用的是__Secure-3PSID,Authorization头需同时声明SAPISIDHASH和SAPISID3PHASH,两者的哈希内容完全一致:

Authorization: SAPISIDHASH {timestamp}_{hash}_u SAPISID3PHASH {timestamp}_{hash}_u

验证匹配

以请求中的参数为例:

  • 拼接字符串:1737533199 {__Secure-3PSID值} https://www.youtube.com
  • SHA1哈希结果:99687cec7b36bd2ca2ed4cb15023490f1c468019
  • 最终哈希串:1737533199_99687cec7b36bd2ca2ed4cb15023490f1c468019_u
  • 生成的Authorization头与请求示例完全一致

内容的提问来源于stack exchange,提问作者yeah_well

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 20:32:01