既然决定将自己随身音频设备换成采用Android系统的Walkman播放器NW-A306,那么该如何充分利用这台智能音频设备呢?除了播放的我多年来下载/CD翻录的海量音乐文件,能不能也让「随时听播客」这件事也在这台随身播放器上实现?
相比于手机随时都处于「在线状态」,这台采用Android系统的随身播放器更接近iPodTouch的定位——更多的时候都是离线状态下使用。这使得我不得不调整我的播客订阅管理方案。
早在2020年时我就在另一篇文章中提到了我当时的解决方案:Airsonic,只不过这个方案一大缺陷在于Airsonic并非专门的播客订阅服务器,而是私有化的流媒体音乐服务的「衍生品」。
因此我很快转移到了专业的播客客户端——国人开发的泛用型播客客户端MoonFM。相比于Airsonic,MoonFM可以利用自己的服务器/NAS来搭建属于自己的播客订阅管理服务,并且支持播放进度同步,跨平台客户端支持等等。

但随着后期使用上深入,MoonFM的缺点也开始逐步显现。首先是并非所有客户端都免费下载。其次自建同步服务需要有较强的动手能力,需要对其采用的数据库服务进行一系列的配置操作,学习曲线较高。
最后,但也是最棘手的就是订阅刷新的逻辑,虽然MoonFM提供了多端同步功能,但刷新订阅其实是在客户端上完成的,因此如果将喜欢的节目下载到本地离线收听会非常耗时——需要等待所有的订阅更新完成后,再根据自己的喜好从订阅源下载节目到本地离线收听。显然这对于后面严重依赖离线收听的我而言,早已不能满足需求。

考虑到未来收听方式更像是传统的播客订阅方式,因此我更多的希望自己的播客订阅服务可以定时在服务端刷新,这样我打开客户端连接服务端是看到都是最近一次更新的节目列表,而这些节目已经预先下载到了本地服务端了,后面只需要选择喜欢的节目,然后从服务端下载到当前的客户端中即可。
这样一方面不再需要客户端刷新订阅节省刷新订阅的时间,另一方面由于节目已经同步更新下载到了服务器端,下载到客户端速度也就更快一些。这样我每次早上出门上班之前打开客户端,挑选几个节目将其离线下载到客户端中,路上就可以随时打开收听了。

在一阵子的寻找后,我终于找到了这个相当完善的开源项目:audiobookshelf,在经过近两个月的使用后,我全方位的替换掉了我之前的MoonFM,成为了我当下自部署的跨平台播客订阅服务解决方案。
▍audiobookshelf:开源免费的自部署跨平台播客订阅服务
audiobookshelf其实从名字上就可以看出来——专门为audiobook而生的自部署订阅管理服务,不过开发方对其的定义还包含了对播客订阅的管理。而单就功能上来说,audiobookshelf包含了订阅管理、多端播放进度同步,播客查找和添加等多个功能。
最重要的是无论是服务端还是客户端都是完全免费——服务端你可以轻松的部署到你的VPS或者自己的NAS上,而客户端包含了Android和iOS以及桌面端——服务端中已经包含了桌面客户端的所有功能,你可以将其添加为PWA客户端在桌面收听节目。

对比MoonFM,audiobookshelf最大的好处在于订阅更新工作完全可以交给服务端来完成,因此客户端应用只需要连接到服务端,看到都是最新一次更新的节目列表,并且这些更新的节目文件都已经下载到服务端了,你只需要挑选自己喜欢的节目下载到客户端即可。真正做到无需等待刷新,立刻就能听!
那么话不多说,下面我就基于群晖NAS(DS218+)教大家来部署和配置audiobookshelf服务。
配置audiobookshelf
安装audiobookshelf服务端
和其他服务一样,audiobookshelf官方提供了基于Docker的安装方式。首先在群晖里面打开FileStation,在docker文件夹下面先创建一个名为audiobookshelf的文件夹,这个文件夹未来是存储相关的配置信息的。

然后我在web文件夹下有创建了一个audiobooks文件夹,该文件夹未来用来存储下载下来的播客节目文件。再创建一个metadata文件夹,用来保存各种元数据文件等。

接下来我们需要获取自己这台群晖的PUID和PGID,这里我们可以运行一个计划任务来获取,首先进入到「控制面板-计划任务」,点击「新增-计划的任务-用户定义的脚本」。

在新的任务创建窗口中,在「常规」选项卡里面输入任务名称:「MyUIDandGID」,用户账号选择你当前的群晖登录账号。

切换到「计划」选项卡,在日期里面选择「在以下日期运行」,选择「当天日期」以及「不要重复」。

最后在「任务设置」选项卡里面,通知设置中勾选「通过电子邮件发送运行详情」,然后填上你的邮件地址;最后在用户定义的脚本这里填上「id」后点击确定,这个任务就创建好了。


接下来我们继续使用任务计划,创建一个新的计划——「新增」-「计划的任务」-「用户定义的脚本」。然后在新的任务创建窗口中,在常规选项卡中输入任务名称「InstallAudiobookshelf」,用户账号则选择root。

切换到「计划」选项卡,这里日期选择「在以下日期运行」,选择当天日期并且也是「不要重复」。

至于「任务设置」选项卡,在用户定义的脚本里面输入以下脚本,这里PUID和PGID需要改成刚才我们获取的本机数字。

dockerrun-d--name=audiobookshelf
-p13378:80
-ePUID=yourPUID
-ePGID=yourPGID
-v/volume1/docker/audiobookshelf:/config
-v/volume1/web/audiobooks:/audiobooks
-v/volume1/web/metadata:/metadata
--restartalways
advplyr/audiobookshelf
如果你希望知道脚本的运行情况,那么在「通知设置」里面勾选「通过电子邮件发送运行详情」并输入邮箱号,最后点击确认完成任务设置。

接下来我们还是回到「任务计划」页面,然后勾选「InstallAudiobookshelf」这个计划任务,点击运行来进行执行并等待安装完成。不一会儿如果Docker容器里面出现了一个名为audiobookshelf这个容器并已经运行,我们可以尝试打开网页浏览器,然后在地址栏输入:http://NAS的内网IP:13378
如果看到如下页面就表示安装成功了:

使用audiobookshelf管理你的播客订阅
安装成功后接下来自然就是进行配置了。我们需要根据网页上的提示,创建一个管理员的账户和密码,然后使用这个管理员账户和密码登录到服务端管理页面中。


然后我们要为此添加个媒体库,这里媒体类型选择「Podcast」,然后输入媒体库名称(比如就叫Podcast),然后点击「Create」完成媒体库的创建。

媒体库创建完成后,接下来就是为我们的媒体库添加播客了,这里我们就用系统的「查找」功能来添加。audiobookshelf的查找可以直接检索iTunesPodcast库,因此对于已经上架iTunesPodcast的播客节目可以直接搜索名字就可以订阅。
比如说我想订阅少数派的播客节目,则直接在查找里面输入「少数派」然后点击「提交」,然后结果列表中就会呈现相关的播客列表,然后点击其中的一个播客,就会可以弹出当前这个播客的相关详情页面。

在这个播客详情中你可以编辑作者、标题、流派等元数据,然后点击「提交」就会添加到你的audiobookshelf媒体库中,当然如果你希望后面服务端可以定时自动更新并下载播客到服务端中,那么在点击「提交」之前最好勾选上「自动下载剧集」。

而除了直接根据名称搜索来添加订阅之外,在「查找」页面中还可以直接粘贴播客的RSS订阅的地址来添加,当然如果你之前还使用了其他泛用型博客客户端,也可以导出此前的订阅OPML并在这里上传实现批量的添加。

随着播客节目的陆续添加,我们就可以在「媒体库」里面对播客进行管理了。将鼠标悬浮在播客界面的图标上,然后点击图标右上角的编辑来对节目下载更新进行二次调整。在弹出的编辑项中切换到「计划任务」选项卡,就可以设定当前这个播客的更新周期。
比如说我可以设置一次下载的节目数以及保存在服务器的节目数,这样好处在于可以有效的节约我的NAS的存储空间,同时也能保持当前这个播客节目尽可能都是最新的。同时还可以设置每天自动更新的时间和周期,这样每天打开audiobookshelf都可以随时听到新节目。

而点击「最新」页面,就可以看到当设置好周期更新后,最新更新的播客节目了,在网页端直接点击播放就可以直接收听了。

实现广域网直接访问audiobookshelf
既然是播客订阅管理平台,我们自然不会满足于仅仅在本地局域网内访问,而是希望也可以在广域网访问,这样可以随时随地打开收听下载节目了。

由于我家里的网络环境可以获得公网IP,因此我采用的是相对简单的DDNS来解决。打开群晖的「控制面板-外部访问」,在DDNS这里配置好相应的域名并确保网络状态是正常即可。

接着打开家里路由器的管理页面,在端口转发这里配置好对应的外部端口以及内部端口,然后测试使用浏览器访问http://你的DDNS域名:外部端口号这个地址,如果能打开管理界面就表示配置成功了。

当然如果你的家中网络环境受限,无法获得公网IP,也可以使用frp这样的内网穿透技术来实现,这里就不过多赘述了。
在各个平台上使用audiobookshelf聆听播客
在网页端配置完成之后,我们就可以使用audiobookshelf的移动客户端来访问你的播客订阅库并收听播客的,audiobookshelf提供了官方的Android客户端以及iOS客户端(未上架,需要通过testflight来加入测试),可以非常方便的进行播客的节目的聆听。
移动端audiobookshelf
第一次打开客户端需要填写你部署的audiobookshelf的地址,这里填写可以通过外网访问的地址,然后再输入你的账号和密码,就可以进入到你的订阅的播客库了。


如果你希望查看最新更新的播客订阅,则可以切换到Latest这个选项卡中,这里可以看到最新更新的节目列表,单个节目节目时长。而我往往每天早上就会直接切换到这个选项卡,看到感兴趣的节目就会直接点击下载,并且移动端的audiobookshelf是支持离线模式下使用,这和Spotify的离线模式非常类似,这里直接播放下载本地的节目即可。

而单就从播放而言,audiobookshelf的播放器做界面的还是相当全面的,支持倍数播放、快进10秒/快退10秒以及睡前定时关闭模式。同时支持跨终端的进度同步,即便是在离线模式下播放,只要终端联网并可以重新连接到服务端,就会此前的播放进度同步到服务端,这样你可以选择使用其他端继续收听。

目前audiobookshelf的Android已经上架GooglePlayStore,你可以直接免费使用,至于iOS端则尚未正式上架AppStore,不过开发者已经开启了Testflight测试,你可以通过加入测试的形式在iOS平台上使用。
https://testflight.apple.com/join/wiic7QIW
桌面端:PWA应用
audiobookshelf并没有提供专门的桌面端应用,不过考虑到器服务端就是桌面端,因此这里我就将其安装为PWA应用,这样在我的任何桌面设备都可以正常使用。

桌面端在使用上其实和移动端有一个「小小」的差别——由于桌面端是web应用,且直接和服务端通信,因此没有所谓的离线模式和下载的说法,所以桌面端就只能在线使用了。
当然还有一些折衷的解决方案,比如说在Windows11上使用WSA的方式运行Android端或者在Applesilicon处理器的Mac上直接运行iOS端,但操作上会比较复杂,这里就不过多讲述实操方法了。
▍结语
经过这样的一番操作,我终于实现了自部署播客订阅管理的再一次升级。这一次升级中无论是服务端还是客户端都是免费使用。不仅仅可以支持多终端跨平台基于NAS收听、管理以及更新订阅的播客,还支持移动端离线收听,进度同步等功能。
同时相比我此前的MoonFM方案还是Airsonic,其对技术要求也更低,几乎傻瓜式的操作也非常适合刚刚开始玩NAS的玩家。如果你和我和一样也使用NAS,也不妨可以尝试这个开源免费的播客订阅管理服务。
https://sspai.com/post/79917?utm_source=wechat&utm_medium=social
作者:化学心情下2
责编:广陵止息
未经允许不得转载:头条资讯网_今日热点_娱乐才是你关心的时事新闻 » 不花 1 分钱,我打造了专属的跨平台播客管理系统
头条资讯网_今日热点_娱乐才是你关心的时事新闻








