如何将RSS中Mastodon嘟文URL转换为指定实例的本地链接?
问题
通过RSS获取Mastodon实例的嘟文时间线时,RSS条目链接指向的是嘟文的源实例而非自己的主实例,导致浏览互动不便——回复或关注用户时必须切换回主实例,但这些内容本就是主实例提供的。
尝试用模式匹配重写URL时发现,源实例的URL格式为:
<ORIG_INSTANCE_DOMAIN>/@<USER>/<NUMERIC_ID_X>
而主实例的目标URL格式为:
<YOUR_INSTANCE_DOMAIN>/@<USER>/@<ORIG_INSTANCE>/<NUMERIC_ID_Y>
由于NUMERIC_ID_X和NUMERIC_ID_Y数值不同,无法直接重写。请问该如何解决?是否有对应API?更理想的是,有没有非JSON的HTML API,能通过带参数的URL让实例返回嘟文线程的本地视图?
解决方案
1. 用搜索API映射本地ID
Mastodon自带搜索API,能通过源嘟文的URL查询到它在你主实例中的本地条目:
- 请求格式:
GET /api/v2/search?q=<源嘟文完整URL>&type=statuses - 返回的JSON数据里会包含该嘟文在主实例的
id,用这个ID就能直接拼接出主实例的目标URL。
2. 直接构造本地跳转URL(无需API)
这是最简便的非API方案,Mastodon支持一种特殊URL格式,能直接跳转到嘟文的本地视图:
- 构造格式:
https://<YOUR_INSTANCE_DOMAIN>/web/statuses/<源嘟文全局ID> - 这里的全局ID就是嘟文的ActivityPub标识符,通常是
https://<ORIG_INSTANCE_DOMAIN>/users/<USER>/statuses/<NUMERIC_ID_X>(和源URL对应) - 访问这个URL后,主实例会自动跳转到该嘟文的本地页面,不用处理ID映射。
3. 自定义RSS生成(进阶)
如果想一劳永逸,自己做个RSS生成工具:
- 调用Mastodon的时间线API(比如
GET /api/v1/timelines/home),拿到主实例的时间线数据,每条数据里都自带本地视图的url字段 - 基于这些数据生成自定义RSS feed,直接把链接指向主实例的本地页面。
内容的提问来源于stack exchange,提问作者Kaz
相关产品推荐
相关产品推荐

