分享一下我为了让这份感情修成正果做的一些努力。
异地最大的难点的就是没话聊,有话不想聊,互相想着对方又怕打扰对方,没有刺激和冲动。
1. loweve:一起看、一起玩、ai推荐
第一个想分享的是 loweve,一个为两个人做的小放映厅,后来又加上了双人游戏舱。
我们一个月至少会看两部电影。
这里会保存我们各自看过什么、想一起看什么、一起看过什么,以及两个人各自的评分和感想。
这些信息又回反哺回ai推荐更加适合两个人的作品。


实际使用中的观影时间线。左边是可以翻动的胶片,右边保留两个人的评分和感想。
一开始是我们一起聊,我充当打字员记录各自感悟。后面做了“点评室”功能,看完以后可以边聊边录音,把讨论转成文字、区分说话人,再整理成两个人各自的点评草稿。原始录音也会留下,草稿可以继续修改。
2. “一起看”:从同步进度,折腾到自建中转串流
片单有了,接下来就是最实际的问题:怎么让两个人舒服地看完同一部片?
这部分是我折腾得最久的一条线,大致经历了:
VideoTogether → SyncTV → VDO.Ninja → 自建中转串流,同时继续改 Emby 一起看插件。
有需求的佬友可以各自都试试,这里抛砖引玉。
最开始:VideoTogether,同步网页播放的进度
最先接触的是 VideoTogether。它提供的思路很直观:两个人在各自的设备上播放视频,让播放、暂停和进度同步起来。
对于异地一起看,这已经能省掉很多“你到几分几秒了”“等我一下”“三、二、一,开始”的操作。
不过,进度同步只是整个体验的一部分。两边能不能打开片源、各自缓冲快不快、手机操作顺不顺手,也都会影响能不能安心看下去。
然后:SyncTV
接着折腾了 SyncTV,把一起看的入口收拢到一个房间里,有播放列表,也有同步控制。
但是我感觉体验还是一般,看看b站视频这类的还行,受限于网页端转码等诸多限制。
再后来:VDO.Ninja,把“我这边正在看的画面”传过去
之后研究了 VDO.Ninja。它基于 WebRTC,可以在浏览器之间传输音视频,也能和 OBS 配合。
这个阶段让我开始沿着另一种方式想:由一端负责播放和采集,再把画面传给另一端。这样,对方接收的是已经播放出来的音视频。
需要面对的问题也随之变了:除了延迟和画质,还有上行带宽、网络丢包、连接稳定性,以及手机浏览器的播放体验。
现在:自建中转,保证串流链路稳定
目前自建串流这条线,大致是:
我这边的 OBS
↓
本地 goodpath 中转
↓
服务器上的 MediaMTX
↓
对方打开网页观看
网页有直播房间入口,也支持房间注册、管理和观看密码。

自建链路有超多的坑。
中间试过 SRT、自己写的 TCP 中继、WHIP,也遇到过晚高峰丢包。
另一条线:直接在 Emby 里一起看
自建串流之外,我也在已有的 WatchParty for Emby 开源插件基础上继续改,让一起看直接发生在自己的媒体库里。
两条路线适合不同的场景:串流由一端采集画面再传过去;Emby 插件则让各端播放同一个媒体条目,由主控同步播放、暂停、拖动和换集。

这个插件也遇到过相当多的问题,再次就不赘述了。
一般是先用这个,如果遇到同步出现bug,就直接用上面的自建链路我播放让她看直播。
3. douyin-chat-export:把聊过的日常保存下来
一起看、一起玩之外,异地生活里占比很大的一部分,其实就是聊天。
我们有不少日常留在抖音私信里。文字、表情包、语音、随手发的图片和视频,分散在很长的聊天记录中。于是又做了 douyin-chat-export,想把这些内容保存下来,之后还能方便地浏览和搜索。
这个项目借着chatlab项目的推广,有300多star。目前可靠性稳定性都不错了。

4. 记忆分身:记录留下来之后,再试着理解其中的表达和记忆
保存聊天记录之后,又有了一个新的念头:这些积累下来的对话,能不能让 AI 在表达习惯和记忆背景上,更接近一个具体的人?
于是做了 persona-studio,也就是“记忆分身”。
目前这条数据链是:
抖音聊天记录
↓
douyin-chat-export
↓
ChatLab
↓
记忆分身:人格档案、记忆检索、回复样本
↓
通过 AstrBot 接入聊天
这里没有重新训练一个模型。主要是在聊天记录的基础上,按月份整理经历和表达特点,形成有版本的人格档案;回复时,再取出和当前话题有关的记忆与说话样本。

表情包也接了进来。模型表达想传达的意思,再从聊天里积累的表情包中找合适的图。
5.Astrbot插件,THE DAY
每天 21:00 推送「历年今日」聊天回忆长图:从 douyin-chat-export 拉取历年同一天的消息,LLM 选出最值得重看的一段,渲染成聊天截图发到指定会话。

两个人的感情逐渐变淡的话,就多回忆一下热恋期的自己吧。
5. 最新的 NutriTrace:敦促她减肥
最近的新项目是 NutriTrace。
这次是基于 TraceApps/NutriTrace 做自部署和修改,主要围绕女朋友记录减脂饮食、在手机上顺手使用的需求。
仅仅是因为她不想给薄荷健康开会员。
这样也好,自部署的话可以每天将她吃饭的记录发到我俩的群里,我能时刻监督她 ^-^

基本上页面全都改完了,功能也做了大幅度精简
希望今后一直顺利