MoonFM 介绍
MoonFM 是一款高颜值的播客全平台客户端,目前我把它作为听播客的主力,很早在 Mac 和 iPhone 上都购买了。
一些其他平台的介绍
- https://www.ifanr.com/app/1082864
- https://sspai.com/post/55719
- https://www.waerfa.com/moon-fm-review
目前同步的问题
不过同步的问题一直没有正视起来,因为订阅的播客变化没有那么频繁,之前只是通过导出导入 OPML 的方式来实现,但是像进度、收藏这些其实没法同步。
我们先来看下目前官方支持的同步策略,如下图
可以看到需要通过自己设置一个 Couchdb Database URL
填入,官方搭建的教程参见 这里
对于普通用户尤其没有编程相关经验的同学来说,确实比较麻烦,而且还需要一台自己的服务器,有没有一种相对简单,同时成本又低的方式来解决呢
经过一些探索,目前找到了基于 IBM 的 Cloudant 来解决这个问题
Cloudant 介绍
Cloudant 是 IBM 的一个 DBaaS 数据库即服务软件产品, 它是基于 Apache 的 CouchDb 项目和开源项目 BigCouch 项目的 NoSQL 分布式数据库。
重点:
- Cloudant 完全兼容 CouchDB 的 API,所以可以直接使用 Cloudant 提供的地址
- 目前 IBM 有免费的账号体验 (官方称为 Lite Account),且无需信用卡绑定及无时间限制
操作步骤
- 打开 官网 ,先注册个账号,注意密码需包含大小写和数字
- 登录后点击搜索,输入 Cloudant,进到详情页
- 选择价格套餐,这里我们选择 Lite 套餐,因为我已经申请过一个了,所以提示只能有一个轻量套餐
关于 Lite 套餐的一些限制,在补充中会详细说明
- 我们接着配置,服务名称随便取,资源组、标记都默认即可,这里比较重要的是
Available authentication methods
,注意这里需要选择第一个,因为 MoonFM 使用的是legacy credentials
的形式
OK,完成创建
- 点击
Launch Cloudant Dashboard
,我们进入 Cloudant 的 Dashboard 页面
先创建一个数据库,这里的名字需要记好
- 建完数据库后我们回到上一级页面,选择服务凭证,参考下图生成我们的服务凭证
点击查看凭证,其中的 url 字段就是我们所需要的
最后将 url 地址和前面我们创建的数据库的名字拼在一起即生成了最终地址
形式为 url 地址/数据库名
填入对应的客户端即可实现同步~
补充
轻量套餐服务删除的问题
目前轻量级套餐有一些限制如下
a. 每秒 20 次读
b. 每秒 10 次写
c. 每秒 5 次全局查询
d. 轻量套餐服务处于不活动状态达到 30 天后将被删除
对于日常的同步来说,abc 三点应该都不会超出,比较重点的是第4点,我们需要关注30天的限制
那么 MoonFM 日常使用时的同步机制是如何呢?
同步机制
目前和 MoonFM 作者高爷沟通,在如下情况下的变化都会发生同步
1 | 1. 收藏 |
所以如果你在 30 天内有通过 MoonFM 听过播客,基本就没有什么问题,即使超出30天,Cloudant 资源被删除,对于各个客户端来说数据也不会丢失,会在各个端都保存一份,只是服务端的这一份丢失了,如果想要同步,重复以上步骤重建即可。
同步后订阅播客重复问题
如果你之前在手机上和电脑上分别导入过相同的播客,但是可能地址不同,那么在同步后由于播客没有一个统一的 id 来判断是否同一个播客,MoonFM 通过判断 rss 地址是否一样,所以会出现重复,这种情况下只要删除重复的即可
总结
基于 Cloudant 的方案本质是一种在线托管,通过大厂提供的免费的资源来满足我们自己的需求,如果哪天这个方案不可用了,大家可以找寻更合适的在线方案或者自建。
如果有更好的方案,欢迎讨论沟通~