「我是少数派,这是我的 2017」年度征文入围作品

本文是「我是少数派,这是我的 2017」征文活动的第 12 篇入围作品,想了解如何参与本次征文,赢取各种丰厚奖品,你可以 点此查看 活动规则和奖品清单。

本文仅代表作者本人观点,少数派仅对标题和排版略作调整。


想法的原点

在信息资讯过剩的时代,相信很多人都会面临文章太多读不完,播客、视频太多消化不完的问题,搭建一个高效自动化的信息输入系统是我在 2017 年完成的最有成就感的事,不仅提高了消费信息的效率,还极大缓解了焦虑。它可以实现一个微信公众号更新的文章自动添加到 Instapaper 并发送通知,也可以通过爬虫离线阅读一个博客的所有文章,甚至可以把博客所有内容做成电子书,还可以存放所有想要看的视频。

这个系统源于 Castro 这款软件的启发:

Castro截图
Castro截图

面对一个播客节目,有 4 个优先级选项,分别是

  • Add to Inbox:需要看具体节目决定要不要加入 Playlist
  • Queue Next:自动添加到 Playlist 的列表首位,无条件第一时间收听
  • Queue Last:自动添加到 Playlist 的列表末位,无条件收听,优先级较低
  • Archive:只做存档备份

由此我希望我的系统有如下功能:

  1. 有一个 reading list/playlist 存放着我要读/听/看的内容,这样任何时候你想读点/看点什么的时候,经过挑选的内容已经在列表里等着你了,拿起来就读,而不用先花时间挑选内容,也不用把时间浪费在刷各种 timeline 上
  2. 对信息源提供 2 种不同优先度的处理:每篇文章必读的信息源的内容自动加入 reading list,选读的信息源根据更新的具体内容手动决定
  3. 当有必读信息源内容更新时,发送通知,最喜欢的节目更新(比如 checked 或者爱否科技)了当然想第一时间知道

接下来介绍下用作 Playlist 和 Inbox 的工具。

自动化工具

Playlist

我用稍后阅读服务 Instapaper 作为 reading list/playlist 的工具,用于存放所有我觉得值得阅读的文章和值得看的视频。这里之所以选 Instapaper 而不是Pocket的原因是因为我比较喜欢 Instapaper 的 UI 以及文件夹的设计,Home 视图相当于 Instapaper 的 inbox,存放着所有等待被归类或者无法被归类的内容,其他文件夹放着对应内容,比如 Video 存放所有视频,作为视频的 Playlist,Longform 放着所有需要半个小时以上阅读时间的长文章。

左图为 Reeder,右图为 Instapaper
左图为 Reeder,右图为 Instapaper

在iOS端,我之前一直使用 Reeder 作为 Instapaper 的客户端,因为 Reeder 阅读界面文字和背景的配色对比度较低,更适合长时间阅读。但是换了 iPhone X 之后,我又换回了 Instapaper 的官方客户端,因为 Reeder 的全面屏优化不够好,在阅读界面的顶端和底端都有一条 bar,无法自动隐藏,给开发者邮件反馈也没有收到回复。

Mac 上的 Reeder
Mac 上的 Reeder

在 Mac 平台,似乎并没有比 Reeder 更好的 Instapaper 客户端。

Inbox

我用 RSS 作为 Inbox 的工具,用于收集所有信息源的更新,快速浏览内容,从中挑选值得阅读/观看的文章/视频,加入 playlist。App 方面我用的是 Reeder。Reeder 算是 RSS 类 App 的标杆,出色的稳定性、丰富的快捷键支持,可以接入多种 RSS 服务以及漂亮的UI都让它与众不同。更重要的是,支持 iOS 和 Mac 双平台。

下面介绍下如何针对文章、音频和视频搭建这套系统。核心是通过 RSS 搭建整套系统,对订阅方式不直接的信息源(如微信公众号和视频平台)进行处理,以及不能被订阅的信息源(如整个博客)进行额外处理。

文章自动化

RSS 订阅源

大部分的信息源都可以用 RSS 订阅,就连 Twitter 和微博都可以,只不过我觉得 Twitter 和微博的内容用 Tweetbot 和 Cosmos 来阅读体验更好。

订阅了所有信息源之后,对于选读信息源,通过在 Reeder 中快速浏览标题的方式筛选出值得进一步阅读的内容,一键添加到 Instapaper 中(在 Mac 上的 Reeder 中,快捷键 i )。

对于必读信息源,比如 aboveavalon 的文章我每篇必读,通过在 RSS 服务中添加规则来实现自动添加到 Playlist 和发送通知的功能,我使用的是 Inoreader,下面以 Inoreader 为例

Inoreader 的自动化规则
Inoreader 的自动化规则

1. 在Inoreader 中创建一个文件夹,我命名为 Notification,把所有必读的订阅源放入到这个文件夹中

2. 添加如下规则:

  • 把「Notification」中有文章更新作为触发器;
  • 执行:发送至 Instapaper,实现自动添加到 reading list;
  • 执行:发送邮件至个人邮箱,实现即时通知功能;
  • 还可以在此基础上添加关键词过滤,过滤掉自己不想要的内容。

至此,实现了对必读自动化添加到 reading list 并通知的功能。

这里吐槽下 Inoreader,之前免费用户是可以添加一条规则的,后来修改成了必须是入门级付费用户才可以添加一条规则,不得不订阅了 Inoreader。

微信公众号

对于微信公众号,转成 RSS 阅即可。只不过提供这种服务的网站命运有点像科学上网,一出名就死,之前的微广场和狗耳朵都已经挂掉了,目前我在用的是今天看啥(这是我的邀请链接,你和我各获得所付费金额的10% 作为奖励),还算稳定快速。

今天看啥
今天看啥

付费内容

2016 年算是知识付费的元年,各种付费内容兴起,对于类似于「得到」一样把内容限死在 App 里阅读的内容并没有什么好办法,但是对于邮件发送的会员通讯,只要设定自动转发到 Instapaper 邮箱,即可同时实现自动化添加至 reading list并通知的功能。

博客爬虫下载

博客比起 10 年前已经没落了很多,但是仍有一些非常值得阅读的博客,比如我很喜欢的物理研究者万维钢的博客学而时嘻之(后来意外发现万维钢也是中科大校友,顺便说下他后来到「得到」开的专栏水平并不如之前博客高,与其花钱读专栏,不如把之前的博客读一遍),再比如和菜头的槽边往事。前者有 100 多篇文章,后者有 5000 多篇文章,一篇一篇手动保存到 Instapaper 显然是不现实的,于是我通过 Python 爬虫来实现。可以把所有文章都保存到 Instapaper 里的一个文件夹,也可以把所有文章做成一本电子书,我在这里更推荐电子书,因为电子书阅读起来相对方便一些,也更清楚的知道阅读进度。

每个博客的架构不一样,Python 程序需要根据特定博客进行针对性调整,我以槽边往事为例,大概讲下博客爬虫大体思路

  1. 获取所有文章链接:槽边往事的每篇文章链接最后都是一个数字,通过遍历从第一篇到最后一篇,验证哪些数字对应的是真正的文章,并把所有有效链接保存到一个文档里
  2. 如果是希望添加到 Instapaper,把所有链接通过 Instapaper API 导入即可
  3. 如果是想要制作电子书,把所有链接做成一个 HTML 的 index 文件,然后需要用到 Calibre 这个电子书管理软件的 recipe 来自动抓取

过程中需要用 BeautifulSoup 或者 pyquery 库做 HTML 分析,也需要对 HTML 语言有略微的了解,具体技术细节可以参考如下两篇文章,如果有人真的很感兴趣我回头也可以专门写文章说明

左图为 Marvin 的 library 界面,右图为阅读界面
左图为 Marvin 的 library 界面,右图为阅读界面

电子书制作好之后就可以愉快地阅读了,这里我选择的 Epub 阅读器是 Marvin,原因在于几乎所有影响阅读的细节都可以在设置中调整,可以完全定制化成自己喜欢的样子,我喜欢模仿 Reeder 的样子把背景和字体的对比度降低,这样长时间阅读不会觉得刺眼和疲劳。而且阅读界面可以显示当前位置在一篇文章中的进度,也同时显示在整本书中的进度,非常方便消化上千篇文章。把整个博客数千篇文章保存成几本电子书的过程非常有满足感,有种整个博客尽在掌握的感觉。

音频自动化

播客

播客就如在开头举的例子一样,用 Castro 完成整个流程。通过针对不同播客的不同优先级的设定,让喜欢的播客节目在 Queue 中静静的躺着。

访谈节目视频

除了播客之外,可以用听觉带宽来处理掉的还有访谈节目的视频。很多访谈节目动辄几个小时,实在没有时间花几个小时坐在电脑前看完一场访谈。这里就要用到 Nplayer 这款支持在息屏状态下后台播放视频的 App 了。

Nplayer播放列表
Nplayer播放列表

有如下几种处理方式

  1. 如果你是 YouTube Red 会员,直接通过 YouTube 客户端下载视频再背景播放就可以了
  2. 如果不是,把视频下载下来导入 Nplayer 背景播放即可。这里推荐 Nplayer 是因为它可以倍速播放和背景播放,也因为它本来就是一款很优秀的视频播放器,详见 JailbreakHum 的 Best of 系列。
  3. 还可以通过 Nplayer 来下载 YouTube 的视频,离线保存到手机中,再背景播放即可,具体方法是在 Nplayer 的浏览器中播放 YouTube 的视频,然后到播放列表选最近播放,选中并长按出现下载按钮下载
  4. 也可以通过 Simple YouTube MP3 Button 这款油猴脚本来把 YouTube 影片以 MP3 音频文件格式下载到本地。

视频自动化

我经常看的视频网站是 Bilibili 和 YouTube,所以只要把 Bilibili 上自己喜欢的 Up 主以及 YouTube 上喜欢的频道通过 RSS 订阅即可实现自动添加到Instapaper和通知的功能,在 Instapaper 中我建了一个 Video 文件夹,用来作为视频的 playlist。

视频Playlist
视频Playlist

订阅 Bilibili 的方法参考 Minja 的 一键生成 Bilibili、知乎专栏以及更多网站源,RSS 还能这么订阅 即可。订阅 YouTube 频道的方式也类似,需要把频道 id 添加到https://www.youtube.com/feeds/videos.xml?channel\_id= 后面即可。

以 Marques Brownlee 的频道为例,频道主页是:

https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ

那么对应的 RSS 订阅地址是:

https://www.youtube.com/feeds/videos.xml?channel\_id=UCBJycsmduvYEL83R_U4JriQ

碎片化消化

现在 Instapaper 中有了一个保存着所有值得阅读文章的 reading list,一个保存着所有值得看的视频的 playlist,更新的优质内容也会被自动添加进去,这么多内容怎么消化掉呢?

我利用所有的碎片化时间和垃圾时间来阅读 Instapaper 里保存的文章,比如在通勤途中,在排队时,在任何需要等待的那几分钟里,都可以拿出来读完一篇 Instapaper 中的文章,再也不会觉得等待是一种浪费时间或者烦恼,每天都能利用碎片时间读完 5-10 篇文章。

利用可以一心二用的时间来听播客和访谈节目,比如做家务时,洗澡时,做饭时,也习惯了1.5倍速播放,一年下来听完了好几百个小时的播客节目。视频就和很多人一样,配饭食用。

这么做的好处在于几乎没花什么额外时间来消费内容,而且极大缓解了过多内容带来的焦虑感:我知道所有值得消费的内容都被保存在 Instapaper 的列表中,看完一篇 Archive 一篇,非常安心,有碎片化时间或者一心二用时间了就打开 Instapaper 进行阅读/看视频,再也不用对着 Safari 几十个打开的 Tab 感到焦虑,也极大的利用了垃圾时间和碎片化时间。

以上就是我的整个信息输入系统,playlist 的存在让人安心缓解焦虑,自动化添加到 playlist 节约了时间和注意力,即时通知可以让我第一时间阅读和收看最喜欢的内容。


在 今年的年度盘点活动 中,我们再次举办了年度征文活动,以 「我是少数派,这是我的 2017」 为题,回顾一下你在 2017 年的变化,将这些变化带来的思考分享给大家。

你仍然拥有两个月的充足时间,最开放的选题,最自由的投稿方式,以及,比去年更多的奖品。你可以 点此查看 活动规则和奖品清单。