2012-10-25 46 views
1

我正嘗試使用Spotify Web API在一個響應中返回多個特定結果。在Spotify高級搜索中對運營商進行分組

例如,也許我想要Spotify的詳細信息由邁克爾傑克遜的「顫慄」,和深紫色的「公路之星」。

因爲我還沒有Spotify uris我需要使用搜索方法。還有一個頁面描述了Spotify的高級搜索語法here。他們支持搜索特定字段,如曲目,藝術家和專輯。他們也支持基本的布爾運算符。

但是在頁面(或者互聯網上的其他地方,據我所知)描述了布爾運算符優先級如何工作,或者您可能會如何分組搜索條件。 (track:Thriller AND artist:「Michael Jackson」)或(軌道:「高速公路明星」和藝術家:「深紫色」)。

使用類似的標準在同一時間只在一個軌道上拉的作品:

http://ws.spotify.com/search/1/track?q=track:"thriller"+AND+artist:"michael+jackson"

我試圖跳到與括號,即使他們沒有在該文檔中提到的。沒有運氣:

ws.spotify.com/search/1/track?q=(track:"thriller"+AND+artist:"michael+jackson")+OR+(track:"highway+star"+AND +藝術家:「深+紫」)

然後我想我會嘗試玩優先。也許他們不只是從左到右進行處理 - 也許所有的ORs都被解析,然後AND::

ws.spotify.com/search/1/track?q=track:"thriller"+OR + track:「highway + star」+ AND +藝術家:「michael + jackson」+ OR +藝術家:「深+紫」

這似乎很有希望,並且返回了185個結果,但它不太正確。我看到其他樂隊名爲「Highway Star」的曲目。這似乎排除了「從左到右」,「或先和」和「先或先」的問題。這沒有任何意義 - 還剩下什麼?

有更多Spotify經驗的任何人都可以看出這樣的查詢應該如何工作嗎?

+0

這個問題在這裏已經有一段時間了,我也在Spotify IRC頻道詢問了它,沒有迴應。 Spotify員工是否不監控本網站?他們的行爲就像是他們的官方支持方式。不試圖挑釁,我很難相信來自Spotify的人不知道多個布爾連接在一起時的行爲。即使開發團隊中沒有人知道,也應該快速瀏覽一下相關的代碼...... –

回答

2

不幸的是,在Spotify的Web API中並沒有太多的支持(我已經嘗試過自己,結果和你一樣)。從它的外觀來看,API已經運行了幾年,所以我不會期望有太大的改變。

但是,我強烈建議您看看the Echo Nest API's改爲;他們相當支持powerful queries,並且在他們的API中有很多很棒的東西。 此外,他們還爲搜索結果(曲目,藝術家等)支持getting Spotify URI:s。這意味着你可以堅持使用EN API。

另外,回聲巢不斷增加更多的功能到他們的API,所以它真的成爲音樂的前往API(遠遠優於Last.fm和類似的)。

+0

謝謝,我熟悉Echo Nest,但這不是一個可行的解決方案。我們正在與另一個數據提供者合作,類似於Echo Nest(但它應該可能仍然是無名的),它不會爲其結果返回Spotify URI。但客戶想要「玩Spotify」鏈接。 –

+0

的選擇是: - 創建一個獨立的Spotify的號召每個軌道(標題+藝術家+專輯) - 做一個複雜的Spotify的通話覆蓋一次 所有曲目 - 使用其他服務(如回聲鳥巢) 第一個選項是不可行的,因爲它會錘擊Spotify服務器,並且肯定會遇到速率限制。最後一個不是一種選擇,因爲客戶特別想避免拉入更多的API(特別是Echo Nest的),原因是我不會介入。 –

+0

我們最終取消了該項目,部分原因是Spotify完全缺乏支持/響應。我覺得非常沮喪。顯然,在搜索中將一堆AND和OR連接在一起會產生SOMETHING。我們只需要Spotify的人員熟悉實際的代碼來告訴我們什麼。據我所知,該API是免費提供的,但爲了從他們在其網站上列出的每個支持頻道獲得零響應令人生氣。一個簡單的「我們不知道我們的頭頂,不想花十分鐘解決問題,所以你運氣不好」將是一個改進。 –