Skip to content
This repository has been archived by the owner on Dec 20, 2023. It is now read-only.

从协议启动哔哩

Richasy edited this page Apr 22, 2022 · 1 revision

应用从 2.2205.1.0 开始支持协议启动。协议名为 richasy-bili

关于协议调用

你可以把协议调用简单理解为通过一个链接来唤起应用,也就是应用开发领域所说的 deep link

以网址举例,一个网址 https://bilibili.com?from=app,其中 https 就是协议名称,bilibili.com 我们通常称其为域名,问号后面跟着的 from=app 我们称其为查询参数。协议 + 域名 + 查询参数 就构成了我们常见的链接形式。

所以对于哔哩的协议启动也是同理,只不过协议就不是 https 了,而是我们自己定义的 richasy-bili,域名也用来区分不同的功能,查询参数用来指定具体的内容。

所以如果你想要播放 aid 为 170001 的视频,你可以使用这样的协议调用链接:richasy-bili://play?video=170001

协议调用能做的事情和 从命令行启动哔哩 类似,参数也大致相仿。

域名类型 (Host)

域名 说明
play 表示播放视频,可以用查询参数指定具体要播放的内容,支持视频、PGC和直播
find 表示搜索内容,用查询参数指定关键词
navigate 表示页面导航,用查询参数指定具体导航的页面

播放内容

具体播放的内容由查询参数指定,比如播放 aid 为 170001 的视频,协议链接为 richasy-bili://play?video=170001

参数名 说明 示例
video 播放视频内容 支持 avid 和 bvid
  • richasy-bili://play?video=170001
  • richasy-bili://play?video=BV17x411w7KC
season 播放 PGC 内容(动漫/电影/电视剧等) 剧集 Id,链接中通常以 ss 作为前缀,比如 ss123456,和 episode 搭配使用可以指定具体播放哪一集 richasy-bili://play?season=39459
episode 播放 PGC 内容(动漫/电影/电视剧等) 单集 Id,链接中通常以 ep 作为前缀,比如 ep123456 richasy-bili://play?episode=423535
live 播放直播 直播间 Id richasy-bili://play?live=139

除了指定具体的播放内容,你还可以通过协议指定播放这些内容时播放器的状态(默认/全窗口/全屏/小窗置顶)

参数名 说明 示例
mode 指定播放模式,如需默认就不写该参数 可选值为 mini, screenwindow,分别表示 小窗模式, 全屏模式 和 全窗口模式 richasy-bili://play?video=170001&mode=window

搜索

搜索只需指定关键词即可,形如 richasy-bili://find?keyword=123,但需要注意的时,对于链接所不支持的特殊字符,需要自行转义处理

页面导航

导航只需指定页面 Id 即可,形如 richasy-bili://navigate?id=rank,页面 Id 列表在 从命令行启动哔哩 中。

关于执行顺序

从命令行启动哔哩 一样,应用遵循同一套命令优先级处理逻辑,比如对播放而言,你不能使用这个链接 richasy-bili://video=12345&season=54321 ,应用不能既播放视频又播放番剧。