个人主页挪到了marcma.lofter.com(主要会记录对音乐、产品的一些想法),所以很久没在写东西了,这次主要总结一下利用简单的编程实现一个演出订阅的工具。
需求来源:
毕业的这一年,手头也稍微宽裕了一点,周末有机会都在上海看看演出。但大家有没有发现一个问题,听歌和看演出是相关性很强的两件事---你的喜好直接决定了你想看谁的,但是当前这两件事其实是两类平台在管:音乐流媒体(如用户比较活跃的网易云音乐)和票务平台(如秀动乐童等等)。于是我基于自己的需求,通过写了一点python脚本,给自己做了一个票务订阅的小工具。
主要结构如下:
网易云方面的api采用了github上一个广为流传的https://github.com/darknessomi/musicbox ,其实主要学习了一下网易云请求加解密的方法,有一些里面没提到的api,可以通过替换本地js进行debug的方法,看它提交参数有哪些,所以基本上页面所见即可获得。
为什么这边用了豆瓣是因为我解析过多个售票平台的页面,各有不同,而且最难的是,无论怎么搞都无法真的覆盖全部的演出,因为像newnoise这种都把票放在淘宝上卖。于是我干脆相信人民群众的力量,抓豆瓣上的演出信息,尽管因为是ugc会有重复,但在北上广演出信息的覆盖度还是很高的。抓取的过程就是很基本的request,用beautifulsoup解析啦。
匹配的方式,我也本着一切从简的方法,只要歌手的名称出现在演出信息中就算match,当然对一些特殊字符啊,大小写都做了一定处理。
最近又改进了一下,把用户id和演出id以及匹配信息都存在了数据库,那么就可以做增量的推荐。
周期性做的事情是这样的:
- update一些数据库中的豆瓣演出,按照城市抓取,全量删除,全量更新(因为演出会过时)
- 拿用户id去run一遍演出库,获得匹配的演出。
拿我朋友的id试一下,结果如下:
还根据出现在哪个歌单做了推荐优先级区分。
目标用户
目前有十几个朋友在我这订阅了,其他的收到不感兴趣反馈的原因主要是听歌但没有看演出的习惯或者喜欢看的比较明确自己随时在关注。所以我想这个功能可能更适合跟我一样把看演出当看电影,同时听歌类型比较广泛的人
产品瞎想
这样demo能用来做什么,发挥下想象力,第一种是作为推荐渠道,比如早期的一些淘宝导购平台,第二种是改进成音乐人的crm平台。
关于第一种,也想过为什么网易云自己不做,后来也猜测可能有两个原因:首先看网易云现在自己做的趋势是希望能把购票做到app里面,也就是不做渠道做票务平台,尽管这样获益是比较大的,但其实对接起来很慢覆盖的演出又少(一点也不互联网);其次可能是看不上这些长尾的量或无法从这种推荐中获益,也从一些侧面听到过独立音乐人抱怨在现在几个流行的给创作者的平台里面(包括新的碎乐等)网易云的体验其实并不大好。总之,不管原因如何目前在网易云既看不到像spotify那样歌手页面有完整的演出信息,也不会有小秘书提醒你“你喜欢的歌手xxx下周会在上海maolive演出(根据用户填的地域是可以做到城市级别的推荐的)”。
第二种crm是我前不久产生的一个yy,有个群里的一个音乐人聊到最近在考虑巡演,但是他很担心到时候根本没人来会亏钱。那么,有没有这样一个后台,能管理音乐人在各个平台的听众。即使没有官方的,但比如像网易云,第三方能不能通过大量的用户歌单的爬取,给音乐人出一个听众列表(不只是粉丝):用户id-城市-喜欢你歌曲的数量,这样是不是帮助他们做一些定向的宣传?
以上,是因为我自己对音乐的爱好所以对这类东西的价值产生了一些兴趣,也在很多地方看到16年音乐市场开始渐长,线下演出作为音乐消费的一种应该也能从中受惠。网易云相比其他平台积累了大量的用户喜好数据(尤其是歌单),以及用户语料(歌曲评论),在推荐系统、机器学习方面,应该是可以大搞特搞的。
总之,以上是实现这个demo的基本思路和自己在产品方向上的想法,因为自己是做产品的尤其对音乐产品非常感兴趣,之后也会下更大功夫去了解当前五花八门的音乐产品,有兴趣的同学可以相互交流下。