morny-book/inline/share-bili.md

97 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Bilibili 分享工具
这个内联查询可以解析 bilibili 的分享链接并将它重新格式化为标准的 AV/BV 视频号 & 视频链接。
你也可以通过它快速进行 av 号和 BV 号互转。
## 输入
<style>
.http { color: mediumseagreen; }
.domain { color: orange; }
.www { color: lightsalmon; }
.s { color: mediumorchid; }
.vpath { color: gray; }
.video { color: cornflowerblue; }
.para { color: tan; }
.u { text-decoration: underline; }
</style>
目前仅支持 *Bilibili 视频链接*或是 *Bilibili av/BV 号*作为输入。
- Bilibili 视频链接即类似于 <code><span class=http>https://</span><span class=www>www.</span><span class=domain>bilibili.com</span>/<span class=s>s/</span><span class=vpath>video/</span><span class=video>av10047324</span></code>
- 其中的 `https://`{.http} 也可以被替换为 `http://`{.http},或者,这部分也可以整个不存在。
- `www.`{.www} 同样可以不存在。
- 链接中 `s/`{.s} 部分是搜索引擎限定的链接格式,这一部分也可有可无。
- `video/`{.vpath} 是必须存在的,它标示着这是一个视频链接。
- `av100847723`{.video} 即是视频的av号或BV号。av/BV 都可以正常解析。
- 有时链接后面可能会有 `/?spm_id_fr...`{.para} 这种以 `?`{.para} 开头的一大段。这一部分也能正常识别并会作为无用信息被忽略。
- 也可以只有一个 av 号或是 BV 号 `BV1Xd4y1V75q`{.video}填进来也是可以正常识别的。
## 输出
所有输入的链接或是视频id都会被在内部被解析和转换然后 Bilibili 分享工具将会在内联查询选单中给出你所提供的视频解析后的 av 号和 BV 号,你可以选择它们中的一个来进行最后的输出。
不论选择了哪种格式,分享工具最终将会输出 `av10047324`{.video.u} 一个视频id文本附带有<small>被规范化的<code><span class=http>https://</span><span class=www>www.</span><span class=domain>bilibili.com</span>/<span class=vpath>video/</span><span class=video>av10047324</span></code></small>它的视频链接。文本和链接中的视频号都会是你所选择的那个格式。
最终你可以通过直接点击来打开视频或是复制文本来复制视频id或是复制链接来复制最终规范化后的视频链接。
---
## technic infomation
<style>
.param {
font-family: var(--font-monospace);
font-size: 0.8em;
color: steelblue;
font-style: italic;
}
</style>
链接或av/bv号解析 所使用的 正则表达式 : `^(?:(?:https?://)?(?:www\.)?bilibili\.com(?:/s)?/video/((?:av|AV)(\d+)|(?:bv|BV)([A-HJ-NP-Za-km-z1-9]+))/?(\?(?:p=(\d+))?.*)?|(?:av|AV)(\d+)|(?:bv|BV)([A-HJ-NP-Za-km-z1-9]+))$`{.regex}
<table>
<caption>av version</caption>
<thead><tr><th colspan=2>inline query node info</th></tr></thead>
<tr><td align=right><b>title</b></td><td>
[bilibili] Share video / av<span class=param>${av_id}</span>
</td></tr>
<tr><td align=right><b>id</b></td><td>
<code>[morny/share/bili/av]</code>
</td></tr>
<tr><td align=right><b>cache</b></td><td>
<u>default<small><code>300</code></small></u>
</td></tr>
<tr><td align=right><b>is_personal</b></td><td>
<u>default<small><code>false</code></small></u>
</td></tr>
</table>
<table>
<caption>bv version</caption>
<thead><tr><th colspan=2>inline query node info</th></tr></thead>
<tr><td align=right><b>title</b></td><td>
[bilibili] Share video / bv<span class=param>${bv_id}</span>
</td></tr>
<tr><td align=right><b>id</b></td><td>
<code>[morny/share/bili/bv]</code>
</td></tr>
<tr><td align=right><b>cache</b></td><td>
<u>default<small><code>300</code></small></u>
</td></tr>
<tr><td align=right><b>is_personal</b></td><td>
<u>default<small><code>false</code></small></u>
</td></tr>
</table>