转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]
背景介绍
在咪哒mini KTV中唱的歌,会自动录音并保存,然后可以在咪哒小程序上下载录音。
但是,在小程序上下载一首歌就要收1.99元,有一点点小贵。那么,如何免费下载呢?
下载步骤
1、电脑安装Fiddler、微信
2、运行Fiddler,相关配置教程网上搜索
3、微信打开咪哒小程序
4、启动Fiddler软件开始抓包;
5、切换一下小程序中歌曲列表的排序
6、切到Fiddler,找数据包,找到这一条
7、双击这条数据,在右下框中查看,可以发现歌曲的下载链接和信息
8、浏览器打开这个链接,就可以下载歌曲了
9、每首歌都可以这样操作。不过如果歌比较多,需要手动点下一页,然后再抓一次包。
自动脚本
1、你依旧需要完成前6步
2、记录下这两个内容:uid和token
3、脚本源码
import requests
from tqdm import tqdm
token = input(">> 输入token: ")
uid = input(">> 输入uid: ")
audio_folder = 'audio'
if not os.path.exists(audio_folder):
os.makedirs(audio_folder)
url = 'https://mk-gateway-pro.singworld.cn/mk-outside/api/record/getUnFreezeList'
headers = {'token': token, 'uid': uid}
data = {"reqUid":1010946254, "page":1,"rows":20, "overDue":3, "orderBy":"2", "unFreezingFlag":False}
response = requests.post(url, headers=headers, json=data)
total_pages = response.json()['data']['pages']
# 遍历所有页面
for page in range(1, total_pages + 1):
data['page'] = page
response = requests.post(url, headers=headers, json=data)
items = response.json()['data']['list']
print(f"下载第{page}/{total_pages}页...")
# 下载每个页面的音频文件
with tqdm(total=len(items), desc='Downloading', unit='file') as pbar:
for item in items:
audio_url = item['audioUrl']
file_name = f"{item['songName']}—{item['singerName']}.aac"
file_path = os.path.join(audio_folder, file_name)
audio_response = requests.get(audio_url)
# 保存音频文件
with open(file_path, 'wb') as file:
file.write(audio_response.content)
# 更新进度条描述和进度
pbar.set_description(f"Downloaded {file_path}")
pbar.update(1)
print("下载完成!")
5、如果运行源码,注意先装库
pip install pyinstaller tqdm requests
工具下载
我已经打包为exe放到了这里,可以去下载:
https://github.com/1061700625/small_tools_v2
small_tools_v2: 使用tkinter和Python制作的小工具集,非常方便自己扩展
使用示例
其他说明
对于音频格式问题,可以使用“格式工厂”来转换。