虾米播放记录同步last.fm

用go写了个虾米同步lastfm的小工具。

原理特别简单,就是去爬虾米的最近播放页面,拿到的歌曲信息去调lastfm的API。

之前用的网页版的某个同步工具,会发生重复同步记录的问题,我也解决掉了。lastfm是有针对时间戳进行判重的,所以定时爬网页,并把计算的时间归整到分钟就好。

现在我自己能正常使用,但是自测时授权获得的key是不能用的,不知道是不是我的账号给同一个apikey授权太多次的原因,但我重新申请了一个apikey还是不能用。目前也找不到有人帮我测试orz,看来是没什么需求orz

这个小项目学习了些什么呢?

  • goroutine
  • channel
  • 怎么用channel停止goroutine
  • 怎么用键盘某些键停止goroutine
  • 怎样定时trigger goroutine
  • 某个很好用的爬虫包
  • test (当然我并没有cover全部
  • 怎么解析json
  • 怎么解析xml(结果没有用xml的返回结果了
  • 怎么读写json配置(没再用了
  • 怎么读写toml配置,某个好用的包
  • 怎么log输出到某文件
  • net/url 解析url,拼query等
  • net/http get、post请求

好啦,心头大事解决,终于可以正常scrobble,这几天一直在播放虾米收藏的专辑,把喜欢的音乐先同步过去。

TODO事项里,本来是要同步收藏的歌曲到lastfm的love的,但那个收藏页面访问不到,看来只好作罢。
MusicBrainz,昨天研究了一下,倒是可以拿到Key,但我怀疑官网那个服务器不能经常拿来访问,看起来是鼓励自己搭服务器的,我才不要啊orz
如果能解决正常退出进程,也许就不用前台跑,而是放在后台进程里跑了。唔,抽空学习慢慢来吧。

如果有需求并有兴趣帮我测一测授权问题的,请联系我,非常感谢!