2

我正在使用grooveshark API,我想从url 中找到一个sondId。所以我有网址:

http://grooveshark.com/#!/s/T4+Song/2IsoC7?src=5

我在 url 中提取“id”:

2IsoC7

但是,与 ID 直接显示在 Url 中的专辑和播放列表不同:

http://grooveshark.com/#!/album/Sexplosive+Locomotive/3624474
http://grooveshark.com/album/Sexplosive+Locomotive/3624474
http://grooveshark.com/#!/playlist/Punish+Yourself/58054955
http://grooveshark.com/playlist/Punish+Yourself/58054955

我不知道如何找到 songId ...我尝试过 getSongIDFromTinysongBase62但不起作用。

如何使用grooveshark API 确定songID?谢谢 !

4

1 回答 1

3

官方 API 文档中未包含一些 Grooveshark 方法,但有一些 存储库记录了非官方 API 并包含这些方法。您正在寻找的方法是getSongFromToken.

它需要countrytoken作为参数(token"2IsoC7"你的情况下)。您还需要设置header.client"htmlshark".

这是一个示例 cURL 请求:

curl 'http://grooveshark.com/more.php?getSongFromToken' -H 'Content-Type: text/plain' --data-binary '{"header":{"client":"htmlshark","clientRevision":"20130520","uuid":"[YOUR-UUID]","session":"[YOUR-SESSION]","token":"[YOUR-SESSION-TOKEN]"},"method":"getSongFromToken","parameters":{"token":"fESpf","country":{"ID":223,"CC1":0,"CC2":0,"CC3":0,"CC4":1073741824,"DMA":534,"IPR":0}}}'

这应该给你一些看起来像这样的东西:

"header": { 
    "session":"[YOUR-SESSION]",
    "serviceVersion":"20100903",
    "prefetchEnabled":true
},
"result": {
    "SongID":"25134723",
    "Name":"T4 Song",
    "Flags":"0",
    "EstimateDuration":"227",
    "AlbumID":"3624474",
    "AlbumName":"Sexplosive Locomotive",
    "CoverArtFilename":"3624474.jpg",
    "ArtistName":"Punish Yourself",
    "ArtistID":"249162"
}

不幸的是,其中一些变量的命名有点糟糕。token里面header是你的会话令牌。tokeninside ofparameters是您正在查找的歌曲的 id。

希望有帮助!

于 2013-10-09T20:30:29.317 回答