17 lines
11 KiB
JavaScript
17 lines
11 KiB
JavaScript
import{_ as d,c as s,a as e,o as a}from"./app-Dgsdh8A6.js";const o={};function n(l,t){return a(),s("div",null,t[0]||(t[0]=[e(`<h1 id="b23-tv-短链" tabindex="-1"><a class="header-anchor" href="#b23-tv-短链"><span>b23.tv 短链</span></a></h1><h2 id="简述" tabindex="-1"><a class="header-anchor" href="#简述"><span>简述</span></a></h2><p>b23.tv 是由 Bilibili 提供的短链服务, 主要用于站内长链接缩短便于分享, 目前仅在手机客户端生成</p><h3 id="格式" tabindex="-1"><a class="header-anchor" href="#格式"><span>格式</span></a></h3><p>目前已知的 b23.tv 短链格式有以下 3 种</p><ul><li><p>任意短链, 路径由7位数字或大小写英文字母组成, 为防止滥用似乎有时效限制, 如 https://b23.tv/pigt3PQ</p></li><li><p>视频短链(AV号), 路径由字符串 <code>av</code> 尾随 视频 aid 组成, 如 https://b23.tv/av80433022</p></li><li><p>视频短链(BV号), 路径由字符串 <code>BV</code> 尾随 视频 bvid 组成, 如 https://b23.tv/BV1GJ411x7h7</p></li></ul><h2 id="生成" tabindex="-1"><a class="header-anchor" href="#生成"><span>生成</span></a></h2><h3 id="视频短链" tabindex="-1"><a class="header-anchor" href="#视频短链"><span>视频短链</span></a></h3><ol><li><p>直接手动拼接字符串即可</p></li><li><p>参见<a href="#%E4%BB%BB%E6%84%8F%E7%9F%AD%E9%93%BE">任意短链</a></p></li></ol><h3 id="任意短链" tabindex="-1"><a class="header-anchor" href="#任意短链"><span>任意短链</span></a></h3><blockquote><p>https://api.bilibili.com/x/share/click<br> https://api.biliapi.net/x/share/click</p></blockquote><p><em>请求方式: POST</em></p><p>认证方式: 仅APP, 但实际上形同虚设</p><p>注: 该接口参数对照表基本失效, 基本无实用价值, 已被注释, 参见 <a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues/979" target="_blank" rel="noopener noreferrer">#979</a> <a href="https://github.com/Nemo2011/bilibili-api/pull/720" target="_blank" rel="noopener noreferrer">Nemo2011/bilibili-api#720</a></p><p><strong>正文参数(application/x-www-form-urlencoded):</strong></p><p>必要:</p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>buvid</td><td>str</td><td>设备 BUVID</td><td>必要</td><td>实际任意非空字符串即可</td></tr><tr><td>build</td><td>num</td><td>客户端版本号</td><td>必要</td><td>大于 <code>5520400</code> 的任意有效整数, 如 <code>7710300</code></td></tr><tr><td>platform</td><td>str</td><td>客户端平台</td><td>必要</td><td>实际任意非空字符串即可</td></tr><tr><td>share_channel</td><td>str</td><td>分享方式?</td><td>必要</td><td>COPY</td></tr><tr><td>share_mode</td><td>num</td><td>分享模式?</td><td>必要</td><td>任意有效正整数, 常见 <code>1</code>, <code>3</code>, <code>4</code></td></tr><tr><td>share_id</td><td>str</td><td>分享 ID</td><td>必要</td><td>见下方对照表</td></tr><tr><td>share_origin</td><td>str</td><td>分享来源?</td><td>部分必要</td><td>见下方对照表</td></tr><tr><td>oid</td><td>num</td><td>对象 ID</td><td>必要</td><td>见下方对照表</td></tr></tbody></table><p>不必要:</p><table><thead><tr><th>参数名</th><th>类型</th><th>内容</th><th>必要性</th><th>备注</th></tr></thead><tbody><tr><td>object_extra_fields</td><td>obj</td><td>额外字段?</td><td>非必要</td><td>如 <code>{"jumpfrom_id":30104}</code> <code>{"epid":"409808","cid":"1398781253"}</code> <code>{"season_type":"1","season_id":"39481","epid":"425006","dubbing_support":false,"background_audio":false,"role_audio_list":false}</code></td></tr><tr><td>panel_type</td><td>num</td><td>面板类型?</td><td>非必要</td><td>1</td></tr><tr><td>share_title</td><td>str</td><td>分享标题?</td><td>非必要</td><td>分享标题</td></tr><tr><td>share_content</td><td>str</td><td>分享内容?</td><td>非必要</td><td>分享内容, 当 oid 存在时无意义<s>(可是 oid 不可能不存在啊)</s></td></tr><tr><td>share_pattern</td><td>num</td><td>分享模式?</td><td>非必要</td><td>0</td></tr><tr><td>share_session_id</td><td>str</td><td>分享会话 ID?</td><td>非必要</td><td>各部分用 <code>-</code> 分隔的小写的一串 UUID</td></tr><tr><td>ts</td><td>num</td><td>UNIX 秒级时间戳</td><td>非必要</td><td></td></tr></tbody></table><p>对照表:</p><table><thead><tr><th>类型</th><th>分享 ID (share_id)</th><th>对象 ID (oid)</th><th>分享来源? (share_origin)</th><th>备注</th></tr></thead><tbody><tr><td>视频</td><td><code>main.ugc-video-detail.0.0.pv</code></td><td>视频 aid</td><td>非必要</td><td></td></tr><tr><td>动态/图文</td><td><code>dt.dt-detail.0.0.pv</code></td><td>动态/图文 id</td><td><code>dynamic</code></td><td></td></tr><tr><td>专栏</td><td><code>read.column-detail.roof.8.click</code></td><td>文章 cvid</td><td>非必要</td><td></td></tr><tr><td>文集</td><td><code>read.column-readlist.share.0.click</code></td><td>文集 rlid</td><td>非必要</td><td></td></tr><tr><td>用户</td><td><code>main.space-total.more.0.click</code></td><td>用户 mid</td><td>非必要</td><td></td></tr><tr><td>课程</td><td><code>pugv.pugv-video-detail.0.0.pv</code></td><td>课程 id?</td><td><code>vinfo_player</code> 或 <code>vinfo_share</code></td><td></td></tr><tr><td>链接</td><td><code>public.webview.0.0.pv</code></td><td>任意站內链接</td><td>非必要</td><td>需填写完整链接,且域名必需为 <code>*.bilibili.com</code></td></tr></tbody></table><p><strong>JSON回复:</strong></p><p>根对象:</p><table><thead><tr><th>字段名</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>code</td><td>num</td><td>0</td><td>恒为 0</td></tr><tr><td>message</td><td>str</td><td>0</td><td>恒为 0</td></tr><tr><td>ttl</td><td>num</td><td>1</td><td>恒为 1</td></tr><tr><td>data</td><td>obj</td><td>信息本体</td><td></td></tr></tbody></table><p><code>data</code> 对象:</p><table><thead><tr><th>字段名</th><th>类型</th><th>内容</th><th>备注</th></tr></thead><tbody><tr><td>content</td><td>str</td><td>短链内容</td><td>若失败则不存在</td></tr><tr><td>count</td><td>num</td><td>0</td><td>恒为 0</td></tr></tbody></table><p><strong>示例:</strong></p><p>为 <code>av80433022</code> 生成 b23.tv 短链</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-shell"><span class="line"><span style="color:#DCDCAA;">curl</span><span style="color:#569CD6;"> -X</span><span style="color:#CE9178;"> POST</span><span style="color:#CE9178;"> "http://api.biliapi.net/x/share/click"</span><span style="color:#D7BA7D;"> \\</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">"platform=unix"</span><span style="color:#D7BA7D;"> \\</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">"share_channel=COPY"</span><span style="color:#D7BA7D;"> \\</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">"share_id=main.ugc-video-detail.0.0.pv"</span><span style="color:#D7BA7D;"> \\</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">"share_mode=4"</span><span style="color:#D7BA7D;"> \\</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">"oid=80433022"</span><span style="color:#D7BA7D;"> \\</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">"buvid=qwq"</span><span style="color:#D7BA7D;"> \\</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">"build=6114514"</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><details><summary>查看响应示例:</summary><div class="language-json line-numbers-mode" data-highlighter="shiki" data-ext="json" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-json"><span class="line"><span style="color:#D4D4D4;">{</span></span>
|
|
<span class="line"><span style="color:#9CDCFE;"> "code"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span><span style="color:#D4D4D4;">,</span></span>
|
|
<span class="line"><span style="color:#9CDCFE;"> "message"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"0"</span><span style="color:#D4D4D4;">,</span></span>
|
|
<span class="line"><span style="color:#9CDCFE;"> "ttl"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">,</span></span>
|
|
<span class="line"><span style="color:#9CDCFE;"> "data"</span><span style="color:#D4D4D4;">: {</span></span>
|
|
<span class="line"><span style="color:#9CDCFE;"> "content"</span><span style="color:#D4D4D4;">: </span><span style="color:#CE9178;">"【【官方 MV】Never Gonna Give You Up - Rick Astley-哔哩哔哩】 https://b23.tv/5x4wy5f"</span><span style="color:#D4D4D4;">,</span></span>
|
|
<span class="line"><span style="color:#9CDCFE;"> "count"</span><span style="color:#D4D4D4;">: </span><span style="color:#B5CEA8;">0</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;"> }</span></span>
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></details>`,30)]))}const i=d(o,[["render",n]]),p=JSON.parse('{"path":"/docs/misc/b23tv.html","title":"b23.tv 短链","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1768157745000,"contributors":[{"name":"SessionHu","username":"SessionHu","email":"102411014+SessionHu@users.noreply.github.com","commits":1,"url":"https://github.com/SessionHu"},{"name":"watermelon1024","username":"watermelon1024","email":"76525576+watermelon1024@users.noreply.github.com","commits":1,"url":"https://github.com/watermelon1024"}],"changelog":[{"hash":"8b3532b44222109f23a8868a25a73e7319b770e5","time":1768157745000,"email":"76525576+watermelon1024@users.noreply.github.com","author":"watermelon","message":"feat/增加 b23.tv 短链类型 (#1440)"},{"hash":"60a0c5d1a2f44fe61335da04571305fa7727a968","time":1724238159000,"email":"102411014+SessionHu@users.noreply.github.com","author":"Session小胡","message":"feat: 各种接口补充与错误修正 (#1066)"}]},"filePathRelative":"docs/misc/b23tv.md"}');export{i as comp,p as data};
|