就是记录一下虾米音乐部分API模拟过程,如有不当之处请联系,
我以搜索接口为例 其余接口都是类似操作,

虾米音乐API加密解析

1 搜索接口解析



get请求:

https://www.xiami.com/api/search/searchSongs?_q=%7B%22key%22:%22%E5%9C%A8%E5%B8%8C%E6%9C%9B%E7%9A%84%E7%94%B0%E9%87%8E%E4%B8%8A%22,%22pagingVO%22:%7B%22page%22:2,%22pageSize%22:30%7D%7D&_s=c62d52691162ebcd68a92f3736763925

urldecode解析 https://www.xiami.com/api/search/searchSongs?_q={“key”:“在希望的田野上”,“pagingVO”:{“page”:2,“pageSize”:30}}&_s=c62d52691162ebcd68a92f3736763925

1.参数解析

 _q:{"key":"在希望的田野上","pagingVO":{"page":2,"pageSize":30}} _s: 加密参数 每次请求都不同

2.找到对应的js文件打断点 解析


3.分析:

e.params._s = a 很明显 来自上一行
var a = o()("".concat(r.split("_")[0], "_xmMain_").concat(e._url, "_").concat(t));
通过打断点得出:r: "586bfc6175409072c4dad86ef21c54e8_1593150105578"e._url: "/api/search/searchSongs"t: "{"key":"在希望的田野上","pagingVO":{"page":2,"pageSize":30}}"

其中r的值 是当前请求的cookie中的xm_sg_tk
其中断点进入函数 o()

其中就是md5 加密参数t
("".concat(r.split("_")[0], "_xmMain_").concat(e._url, "_").concat(t))

其中 t等于: e2xxxxxxxx49aab4a4464fd26b4ba_xmMain_/api/search/searchSongs_{"key":"在希望的田野上","pagingVO":{"page":1,"pageSize":30}}

贴上部分代码:

from hashlib import md5# 获取加密字符串_s
def _get_params__s(api,_q) -> str:''':param api: URL的地址     /api/search/searchSongs:param _q:  需要加密的参数     {"key":"在希望的田野上","pagingVO":{"page":2,"pageSize":30}}:param xm_sg_tk cookie xm_sg_tk去掉是时间戳得值     7f2df3233537f81aae848dc4f47bdeb8:return: 加密字符串'''xm_sg_tk = '7f2df3233537f81aae848dc4f47bdeb8' # cookie中xm_sg_tk去掉时间戳data = xm_sg_tk + "_xmMain_" + api + "_" + _qreturn md5(bytes(data, encoding="utf-8")).hexdigest()

2 其余接口

# 各个API接口地址
# 每日音乐推荐
APIDailySongs = "/api/recommend/getDailySongs"
# 排行榜音乐
APIBillboardDetail = "/api/billboard/getBillboardDetail"
# 所有排行榜
APIBillboardALL = "/api/billboard/getBillboards"
# 歌曲详情信息
APISongDetails = "/api/song/getPlayInfo"
# 搜索音乐接口
APISearch = "/api/search/searchSongs"

详细代码以及其他接口请见
github:虾米音乐模拟接口

虾米音乐API破解,python模拟接口相关推荐

  1. python中调用音乐_调用咪咕音乐api的python命令行音乐下载器

    说明: 1.调用咪咕音乐api进行音乐下载(暂不支持批量) 2.使用自行安装import的库 效果: 源码: [Python] 纯文本查看 复制代码import requestsimport urll ...

  2. 使用虾米音乐API 搜索音乐

    效果图   使用get方法访问相关页面 返回json数组 <?php /*** music search action* @name music_name* @page */$name=get_ ...

  3. html虾米音乐,最新虾米音乐API接口(附使用说明)

    不保证接口长期有效,只要官方没更换本接口就会一直有效 接口地址:xxx 接口说明:key=后面更改为你的歌曲名,可以是单纯的歌曲名,比如送别,但是这样搜索并不一定准确,加上歌手名字会更加准确,如朴树送 ...

  4. 网易云音乐API部署Vercel获取接口过程

    前提:部署自己的网易云接口主要用途在于在完成前端的仿网易云播放器的时候,根据自己部署的接口可以用于获取数据.大体流程是通过在github上fork别人的API接口项目,然后在Vercel部署即可获得自 ...

  5. android 百度音乐 api,[新]百度mp3接口(baidu mp3 api)

    做了一个demo,可以下载百度的flac格式音频,无需会员.源码:baidu-music-api-demo.tar.gz http://tingapi.ting.baidu.com/v1/restse ...

  6. 【QQ音乐Api】移花接木 打造自己的音乐电台

    为什么80%的码农都做不了架构师?>>>    最近突发奇想想做个在线音乐小网页.需求很简单,如下 搜索歌曲 或 歌手 在线播放音乐 借用qq 或者 百度的 音乐接口 需求明确那就直 ...

  7. 执行Python语言能不能破解通达信接口api股票数据?

    最近有很多投资用户在研究软件选股与自动交易,所以需要获取股票的每日数据,那么使用Python怎样破解通达信接口api股票数据呢?下面小编就简要介绍从通达信的交易软件中获取股票数据的过程,即使用Pyth ...

  8. python爬取虾米音乐_虾米音乐爬虫

    虾米音乐爬虫 这是前后端分析的网站,这种类型的web其实很好的,只要找对了API,成功发生请求,那么想要的数据就直接获取到了 请求分析,主要知道APi的地址,请求的参数,请求的方式,还有就是请求头需要 ...

  9. 『Python』网易云音乐API爬虫(音乐搜索音乐播放)

    前言 永远相信美好的事情即将发生 背景 一直想做一个在线的音乐播放器,这个想法最早可以追溯到做毕设的那会,那时候做了个在线的商城系统, 里面有个在线听歌的模块,其实就是调用大佬们封装好的API进行搜索 ...

最新文章

  1. OpenCV(六)形态学操作1--基础:膨胀与腐蚀(回调函数)
  2. 用java建一个类_利用JAVA创建一个类。
  3. 001-supervisor
  4. 使用vs测试时的问题
  5. 征战蓝桥 —— 2016年第七届 —— C/C++A组第8题——四平方和
  6. php测试代码执行时间,php debug记录程序执行时间和执行情况
  7. 如何去学会黑客技术,黑客电脑技术学习必备知识
  8. 设置UITableView Section的背景颜色和字体颜色
  9. C++ vector用法总结
  10. 生成微信二维码,微信扫码登录网站
  11. HTML5游戏引擎(八)-矢量绘图——绘制矩形-drawRect 绘制圆形-drawCircle 绘制直线-moveTo和 lineTo
  12. 解决win10网络共享自动关闭问题
  13. Unirech腾讯云代充-通过VNC 登录腾讯云国际版Windows云服务器实例教程
  14. UVA 12905 Volume of Revolution (几何,微积分)
  15. 路由器连接路由器怎么设置
  16. Excel 获取工龄公式
  17. logback 日志脱敏 隐藏PII信息
  18. 《士兵突击》哪些最精彩的话语
  19. 解决Setting property 'source' to 'org.eclipse.jst.jee.server的问题
  20. RGB-D立体视觉导航之图像预处理

热门文章

  1. 离线获取docker镜像
  2. 奥鹏作业福建师范大学2021年2月考试《大学英语(1)》作业惹6456
  3. Nacos中服务注册中心AP、CP模式实现,AP、CP模式切换
  4. python 交集 并集 实例
  5. 阿里云HaaS510入门文章合集
  6. JavaWeb过滤器(Filter)详解,是时候该把过滤器彻底搞懂了(万字说明)
  7. “《有话说》--崔永元” 笔记
  8. iOS开发-------基于WKWebView的原生与JavaScript数据交互
  9. Django编写个人博客(十)博客阅读排行
  10. 去除pdf水印图像的简单方法