首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shazam检测API抛出HTTP 406不可接受

Shazam检测API抛出HTTP 406不可接受
EN

Stack Overflow用户
提问于 2020-09-25 23:04:14
回答 2查看 307关注 0票数 1

我正在尝试在this tutorial提供的一个单声道样本上测试Shazam API检测功能。

我的代码读取原始音频文件,并在向Shazam API发送POST请求的主体中将其作为base64明文发送。

音频文件可以通过this link下载

代码语言:javascript
复制
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")

你知道我哪里错了吗?

EN

回答 2

Stack Overflow用户

发布于 2020-09-30 20:42:40

我在这个API上也遇到了问题,我一直在到处寻找解决方案:

票数 0
EN

Stack Overflow用户

发布于 2020-11-04 22:58:07

it work on me

代码语言:javascript
复制
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)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64066701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档