飞鱼秀和Azure

飞鱼秀中国国际广播电台轻松调频下的一档早间谈话节目,轻松风趣,音乐感人,以前在上海的时候听过。那么它和Azure这两个八竿子打不着的东西怎么关联起来的呢?

在美国开车时间比较长,听腻了电台播放的hip-hop音乐,于是又开始听飞鱼秀。但是一直找不到一个很好的听回放的方式,虽然有些app比如喜马拉雅也提供了回放和下载,但是那个app很难用,而且节目更新的不是很及时。轻松调频官方在iTunes Store提供了podcast,不过更新速度就不敢恭维了。作为一个software engineer,只好自己动手,丰衣足食。

首先在Azure部署一个WordPress的blog,作为podcast的host。选择Wordpress是因为它是目前最流行的,也是支持最全面、插件最多的blog平台,稍微定制一下就可以发布podcast。当然现在也有很多平台可以托管podcast,不用自己创建网站,但是考虑到GFW,毕竟很多听友都是在国内,类似Soundcloud, wordpress.com是没办法使用的。

然后要解决内容的更新问题。虽然每天到官方网站查看它的内容更新,然后再在播客上发布是可行的,但是我估计自己坚持不了一个星期。都说懒惰是程序员最好的朋友,于是我就写了一个很简单的spider来检查是否有新内容,如果发现更新,再调用wordpress的RPC API自动发布。最重要的一步来了,如何让这个spider能每天按时运行呢?这里就要介绍Azure Webjob了,它是一个类似CRON的服务,可以按照一定的时间或者手动的运行某一个程序。把这一切串联起来,一个简单的播客自动分发网站就成型了。对,我那个spider就叫autoposter :)

接下来就是统计功能了。作为一个服务提供者,总希望清楚的了解有多少用户在收听这个播客。Feedburner提供了很多的播客统计功能,但是它被GFW认证了,所以没法使用。同时,因为这个播客我并没有托管任何音频文件,只是转发到官方网站的下载链接,所以使用Google Analytics有些麻烦。后来研究了一下IIS的设置,想出了一个方法:采用URL Rewrite的方法,提供一个本地的mp3下载链接,然后在server端调用Google Analytics的API进行统计,记录之后,再跳转到官方网站的下载链接。这个方式有几个缺陷:

1. URL Rewrite之后没办法得到client side真实的IP, 所以在Google Analtycis所有的请求都来自Azure数据中心

2. Google Analytics的server side API比较陈旧,很多新功能是不支持的,而且获取的信息也是有限的

接下来,就是到iTunes Store提交podcast feed,让它收录这个播客,不然其他人订阅会比较麻烦。

发布之后,除了自己使用之外,确实有不少海外以及国内的用户订阅了这个播客。从Google Analytics的统计来看,每天的下载固定在2000左右。

之所以写这篇文章,原因是最近轻松调频调整了它的网站,不在官方网站提供任何节目的回放,而必须使用它的手机app。其实这也无可厚非,毕竟现在是移动互联网时代。但是试用了一下那个app,UI不敢恭维,随随便便就crash太让人奔溃了。于是在周末的时间,安装了那个app,启动fiddler,trace了一下它的request,拿到新的回放地址,更新了一下spider的抓取地址,于是播客更新又恢复正常了。现在podcast的下载每天平均在5000左右,相比以前上升了一倍。

飞鱼秀非官方podcast的地址: https://itunes.apple.com/cn/podcast/easyfm-fei-yu-xiu/id879952085?mt=2

 

 

关于Azure

不知不觉加入Azure team已经一年多了,对Azure从一个拗口的名字,到投身其中、为它的发展壮大添砖加瓦,所经历的甘苦只有自己清楚。

开通这个博客的目的,一方面是为了体验Azure所提供的服务,更好的从用户的角度来感受产品的细节,另一个方面也是因为看到知乎上的一个问题:用windows azure做app的后台是选择cloud service 还是 web sites呢? 现在Azure正式在国内开通服务,马上有越来越多的国内开发者开始使用Azure的各种服务,各种各样的问题也会接踵而至。关于Azure的英文资料,现在网络上已经有 ,第一首选当然是Azure的官方文档,但是中文的文档资料,目前相对缺乏。这个博客的目的,也是希望给中文开发者提供一些帮助。