我正在尝试使用 'leemm' 制作的 JavaScript 包装器来实现 Last.FM API,它似乎运行正常,通过测试返回信息。但是当我尝试使用“track.getInfo()”方法时,它开始抛出
error: {
code: '5',
message: "Invalid format - This service doesn't exist in that format"
},
text: undefined
}
“Mobb Deep”的“Survival of The Fittest”等歌曲。但它会正确返回其他歌曲的信息,例如“HUMBLE”。作者:“肯德里克·拉马尔”。
这是我的职责:
async function lastFMTest(){
const data = await lastfm.track.getInfo({
artist: 'Kendrick Lamar',
track: 'HUMBLE.',
username: 'NAG_Z',
autocorrect: '1'
});
console.log(data.track.name, data.track.userplaycount, data.track.toptags.tag[0].name);
}
我注意到 getInfo() 方法在崩溃于某一特定轨道之前会返回大量轨道的信息。我检查了非官方文档,它说:
所以我尝试插入一个Last.fm 错误代码 5:响应格式无效
除了记录的参数之外,还需要
format
参数,该参数的值可能为XML
或JSON
(不区分大小写)。请求其他格式的数据将发出此错误。有些方法确实支持这两种以上的格式,本文档中列出了这些方法的格式。
format
参数指定
'json'
这会导致同样的问题,
'XML'
破坏了该方法,尽管我确实希望我的数据以 JSON 格式返回,所以我真的不认为XML 是这样的方式去吧。 这很可能是由于我对 API 或 JavaScript 缺乏了解,因为我还是个新手,如果有人可以帮助我,我将不胜感激!
编辑:
format
参数,我尝试了“json”和“JSON”,但之后仍然不起作用。
单击“播放曲目”即可播放
https://www.last.fm/music/Kendrick+Lamar/_/HUMBLE.
单击“播放曲目”,显示“曲目不可用”。https://www.last.fm/music/Mobb+Deep/_/Survival+of+the+Fittest
那么也许last.fm 的leemm 包装器中发生了一些事情?如果我直接通过audioscrobbler
访问 api,我会得到响应然后我去专辑信息找到了几首歌曲
接下来的LP版本似乎根本就没有曲目了。
https://www.last.fm/music/Mobb+Deep/_/Survival+of+the+Fittest+(LP+版本)
以及 api 响应中的其他 url:https://www.last.fm/music/Mobb+Deep/_/Survival+Of+The+Fittest+(混音)+(扩展+版本)
https://www.last.fm/music/Mobb+Deep/_/Survival+Of+The+Fittest+(混音)+(器乐)
这个有曲目,播放时显示“曲目不可用”ghttps://www.last.fm/music/Mobb+Deep/_/Survival+Of+The+Fittest+(A+无伴奏合唱)