keep music hack!

反正有大把时光,所以又码出一个音乐网站。基于go语言和bootstrap框架,扔在ECS上,方便平时查查歌词听听曲儿什么的。说是『码』,本质是修改了村雨大大的作品,只是加了歌词栏,微调了下界面而已。之前折腾过几次类似的东西,比如用autoit搞得music manager,又或者修改基于android的quicklyrics,最后都成了半成品,或者自己都懒得用。。。这次正好看见高人已经造好轮子,自然摩拳擦掌跃跃欲试了~

借这次机会粗浅地学习了下bootstrap,还有go语言以及beego框架。不得不说现在的轮子真是越来越贴心,该有的功能都做了封装,文档也是漂漂亮亮,有条有理,做前端工作的猿们真是太幸福了~。Go语言挺好上手,据说性能也不错,只是不允许冗余变量和引用的规则有点让人不适,特别是调试的时候。这点非常符合『有且仅有一种写法』的编程风格。即便如此,Go拿来做web服务依然非常合适,热编译,灵活的html模板,卓越的性能以及简洁的语法都是优点,个人觉得比较适合做快速开发或者框架比较简单的WEB服务,尤其是搜索服务类的。相比PHP,Go的功能还是少了点,毕竟不是为web而生。比如常用的时间转换类函数,当然,这个也可以通过封装一些方法或者简单类实现。

Bootstrap太优秀了,所以根本不需要任何宣传推广。大家谈到前端框架,自然第一个会想到它。有了它,漂亮的界面和漂亮的网页源码便是可以兼得的。好东西都有一个共性:易于上手,内涵却深不可测,每个人理解的程度不一样,视角不一样,最后呈现的风格也各异。好东西就是让每个人都各取所需,调合出千般味道。单单掌握基本样式或者通用组件是不够的,学习的路上,形成自己的界面风格才是最重要的。

吸取先驱者的教训,所以决定不在网上散布安利了,只是在酷安上为了填坑留了个链接。后面也不准备大的调整,一切够用就好。最后,生命不息,折腾不止。

===
2018/3/30更新
不知不觉一年多过去了,音乐小助手还在,有段时间几乎就要忘了它。村雨大大已经删了原站点,连博客也无限种草的样子。。。网易修改了API,几乎所有的曲目都无法播放。原本也打算弃坑,最后还是没舍得,修修补补又可以愉快的听歌哈~ 顺手优化了歌词显示,还增加了神秘功能(不可描述)。现在每天都有几个IP的访问量,满足了~~

PS:偶然发现网易云悄悄上线了网页版电台FM,多年的怨念终于有了交代,开心。

===
2018/4/7更新
前几天发现,云音乐相关的请求全部响应超时。第一反应是服务器故障,几度测试之后幡然醒悟:ip被block掉了。百度了下发现很多人都中过招,大多反应使用登录api之后很大概率会被墙掉,和眼前的情形类似。指望解封不太可能,眼前有两条路:挂代理或者换vps。

于是发现了神器:IPProxy,测试链接设为云音乐首页,运行下来找到了几十个可用ip,算是找到了一个可行方案,接下来就是改进模拟请求的细节降低ban掉概率。首先想到的是重头开始抓包,然后悲剧的发现攻城狮们最近又大修了一次api。所幸搜到了大神的技术贴「网易云音乐PC客户端加密API逆向解析」。逆向的过程看的相当过瘾,最后给出的信息很有价值,值得一试,但看到几十万的围观人数,心里暗叫不好,感觉api随时都有可能再进化。无意中搜到一篇很新的文章——反爬虫一直是伪需求,深有感触,虽说没有作者那班激进。开放api有利有弊,很难做到利益,安全和顺应需求之间的平衡,前段时间脸书的大跟头就是前车之鉴。人人都恨爬虫,但人人都热衷于爬虫,也许情况并没有那么糟。毕竟谁也无法保证,假如博弈的一方完全退出事情一定会向着好的方向发展。看到大神贴出的最后一幅图,更多的是心酸。