我正在尝试在this tutorial提供的一个单声道样本上测试Shazam API检测功能。
我的代码读取原始音频文件,并在向Shazam API发送POST请求的主体中将其作为base64明文发送。
音频文件可以通过this link下载
import requests
import base64
def shazam(payload):
url = "https://shazam.p.rapidapi.com/songs/detect"
payload = open(payload,"rb").read()
payload = base64.b64encode(payload)
payload = str(payload)
headers = {
'x-rapidapi-host': "shazam.p.rapidapi.com",
'x-rapidapi-key':str(open("./api.txt","r").read().strip()),
'content-type': "text/plain",
'accept': "text/plain"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
shazam("/home/samples/mono.raw")你知道我哪里错了吗?
发布于 2020-09-30 20:42:40
我在这个API上也遇到了问题,我一直在到处寻找解决方案:
发布于 2020-11-04 22:58:07
it work on me
from pydub import AudioSegment
import base64
import requests
import json
file_path="./test.raw"
url = "https://rapidapi.p.rapidapi.com/songs/detect"
encode_string = base64.b64encode(open(file_path, "rb").read())
payload=encode_string
print(type(payload))
headers = {
'content-type': "text/plain",
'x-rapidapi-key': "<<<you key>>>",
'x-rapidapi-host': "shazam.p.rapidapi.com"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(json.dumps(json.loads(response.text)))https://stackoverflow.com/questions/64066701
复制相似问题