【发布时间】:2014-02-15 07:39:28
【问题描述】:
在我未来的网站上,我尝试将作为字符串“Artist - TrackTitle”给出的曲目转换为相应的“spotify:track:trackCode”。
由于我在编写 PHP 方面比 javaScript 更快(请随意冷笑),所以我执行以下操作:
- 清除 Spotify 搜索发现混淆的一些内容的字符串,例如括号中的内容、“`”、“/”、“-”等符号。
- 将空格转换为 html 实体“%20”
- 检索 spotify xml 页面“http://ws.spotify.com/search/1/track?q=”的结果和附加的字符串。
- 如果有结果,则检索该页面中与正则表达式“(spotify:track:)(.*)(\">)”匹配的第一个匹配项
有趣的是,这仅适用于大约 80% 的所有字符串。尽管字符串的标准化程度相当高(它们来自无线电网站,瑞典语“Digilistan P3”),但有些搜索结果为 0。
可能的解决方案:
- A) 该曲目在 Spotify 上不可用。
- B) 曲目在 spotify 上可用,但 ws.spotify.com/search 上的搜索算法与桌面客户端不同。
- C) 搜索字符串没有为 url 版本或桌面客户端准备好
属于 B 组或 C 组的两首曲目(从不合适的字符中删除后):
- teddybears sthlm - 摇滚高中
- bomfunk mc´s - b-boys & flygirls
- 克里斯蒂娜·阿奎莱拉、mya、pink & lil´ kim - 女士果酱
- macklemore & ryan lewis 壮举。 wanz - 旧货店(我的意思是:真的吗?你在开玩笑吗?甚至 ws.spotify.com/search/1/track?q=macklemore%20&thrift%20shop 都不提供任何强> 结果!)
现在的问题
任何人都可以提出更好的转换或想法,以提高我在为曲目找到合适匹配方面的成功率吗?
当前算法can be found here。
【问题讨论】:
-
这并不能回答问题,但我最近看到了 echonest 的 api,它看起来非常好,而且可以让你不只与 Spotify 绑定。 developer.echonest.com/docs/v4#project-rosetta-stone
标签: php web-services api spotify