forecho 的独立博客

把生命浪费在美好的事物上

使用泛用型播客客户端订阅播客节目

2018年04月17日

引言

由于换了一家创业公司(等过一阵子有时间会细说这个事情),最近一个月会比较忙,都没时间写博客了,但是又不想停更,所以就有了这篇文章。

诞生记

我听播客已经有几年了,每次做饭、跑步、打扫家务或者上下班比较累的时候听播客真是一举两得的事情。近两年由于喜马拉雅FM、蜻蜓FM等一系列的国内播客平台的火爆,提高了国内播客节目的产出。

但是有些播主并不注重 Apple 的 Podcast,干脆就没去上架。一直喜欢使用 Overcast 听播客的我,自然是不能忍。想到得第一件事情当然是先搜索,在网上找找看有没有人做类似的工具,我肯定不是一个人有这个需求。果然被我找到了 https://miao.li/2016/podcast_beta_miao_li/ ,不过用了大半年,无法使用了。也没找到其他解决办法,最后只能自己再造轮子了。

GitHub 地址:https://github.com/forecho/Quicksilver ,选了一个非常中二的名字,其实就是漫威里面快银的名字。

实现思路

其实就是写爬虫,这几年自己做三立三没少用 Python 写爬虫,所以对我来说就是分分钟的事情。刚开始还想使用 Scrapy 来实现的,结果第一次用 Scrapy,卡住一个地方了,花了点时间也没找到解决思路,后来又换回我熟悉的方式了。

写喜马拉雅FM的时候,获取时间上被坑了,接口的创建时间是月日时分,类似这样:12月11日 17:00,没有年啊,坑爹。这个非常重要,因为播客客户端一般都是根据时间排序的。不过几天之后发现页面上有年月日,正好结合一下,算是可以满足了。

基本的实现思路就是,循环抓取到自己想要的数据,重组,生成符合 Podcast 规范的 RSS 即可。不需要保存到数据库,尽量保持简单。每天晚上自动定时更新文件。

代码开源

选择开源出于以下几点考虑:

  • 想吸点粉丝。
  • 这种实现方式不太稳定,只要官网数据结构有改动,我这边就可能用不了了。所以选择开源,就算我以后不维护了(这可能性比较小),其他人有这个需求也可以提供代码,帮助维护。
  • 我只有听喜马拉雅FM的需求,其他人有其他改进的需求可以贡献代码。

在几个社区宣传之后,Star 数量还算客观。在 V2EX 上宣传之后,当天就有人提交了蜻蜓FM的支持,效率就是这么高,感觉很开心。

最后

最后再说两句,如果你是程序员建议你学一下 Python,不需要学得有多精通,会用就行,Python 写小工具真是神奇。我写 Python 的过程基本上就是看廖雪峰的官方网站,教程写的简单实用。然后自己再多实践。

最后再贴几个链接:

扫码关注我的个人公众号