音频 fm 下载链接中的 sign参数

两周没干活了,今天研究下下周报写啥,看看之前音频需求,喜马拉雅知道怎么搞知道了,又看看别的。

1.懒人听书需要登录,有cookie都是正常的请求。

2.荔枝fm,也都是正常请求,就是需要拼接下下载连接的日期,还是mp3格式的。

3.蜻蜓fm,那看半天,有一个302的跳转。跳转链接有一个sign参数。

第一步,抓包

抓包可以看到,第一个请求会302自动跳转。然后会请求下面 m4a的连接,点击后就可以手动下载音频。

第二部,查找关键词。

通过查找接口名称,找到一个结果,正常流程断点,结果打不上。

第三部,查找原因。

报错内容

无法加载webpack:///app/components/Player/Item.js 的内容(Fetch through target failed: Unsupported URL scheme; Fallback: HTTP 错误: 状态代码 404,net::ERR_UNKNOWN_URL_SCHEME)

断点位置不对,会停位置不对,我调试了好久。

百度查找了一下,没有一个靠谱的结果。

最后只能谷歌。说是site map映射问题,修改下浏览器设置就可以。

GitHub - JSREI/how-to-fix-could-not-load-content-for-webpack: Could not load content for webpack:///xxx.js 解决办法

在Chrome的设置中把开启JavaScript的source map支持关闭掉

设置好之后,可以打上断点了。

第四部,断点调试。

程序断点调试,可以看到e,t,a 这几个变量,e表示的作者id,t是文章id,a客户端类型。拼接成s ,s是url的前半部分,sign是是的md5,md5还有盐,"7l8CZ)SgZgM_bkrw"

const crypto = require('crypto');

function createHmacMd5Hash(data, secret) {
  const hmac = crypto.createHmac('md5', secret); // 使用MD5和密钥创建HMAC
  hmac.update(data); // 更新HMAC对象,添加数据
  return hmac.digest('hex').toString(); // 返回16进制的哈希值
}

// 使用示例
const data = "/audiostream/redirect/215341/27349509?access_token=&device_id=MOBILESITE&qingting_id=&t=1723013639184"; // 这里替换成您要哈希的数据
const secret = '7l8CZ)SgZgM_bkrw'; // 您的盐或密钥
const hashedData = createHmacMd5Hash(data, secret);
console.log('HMAC MD5 Hash:', hashedData);

还有复杂的网站一天搞不定只能慢慢调试了。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值