115 lines
38 KiB
JavaScript
115 lines
38 KiB
JavaScript
import{_ as l,c as t,a as p,b as e,d as n,e as o,w as d,r,o as c}from"./app-Dgsdh8A6.js";const i={};function D(y,s){const a=r("RouteLink");return c(),t("div",null,[s[3]||(s[3]=p(`<h1 id="弹幕元数æ�®" tabindex="-1"><a class="header-anchor" href="#弹幕元数æ�®"><span>弹幕元数æ�®</span></a></h1><p>2020-09-25 B站更新了互动弹幕功能,包括UP主头åƒ�弹幕ã€�å…³è�”视频弹幕ã€�视频内嵌引导关注按钮三大功能</p><p>详情è§�:</p><ul><li><a href="https://www.bilibili.com/read/cv7728299" target="_blank" rel="noopener noreferrer">ã€�客户端更新】6.10版本更新ï¼�UP主支æŒ�å�‘布关è�”视频弹幕</a></li><li><a href="https://www.bilibili.com/blackboard/activity-c8a0iDRQy.html" target="_blank" rel="noopener noreferrer">引导关注å�¡ç‰‡</a></li></ul><h2 id="获å�–弹幕个人é…�置与互动弹幕å�Šbas-代ç �-弹幕专包-web端" tabindex="-1"><a class="header-anchor" href="#获å�–弹幕个人é…�置与互动弹幕å�Šbas-代ç �-弹幕专包-web端"><span>获å�–弹幕个人é…�置与互动弹幕å�ŠBAS(代ç �)弹幕专包(web端)</span></a></h2><blockquote><p>https://api.bilibili.com/x/v2/dm/web/view</p></blockquote><p><em>请求方å¼�:GET</em></p><p>认è¯�æ–¹å¼�:仅å�¯Cookie(SESSDATA)</p><p><strong>urlå�‚数:</strong></p><table><thead><tr><th>å�‚æ•°å��</th><th>类型</th><th>内容</th><th>å¿…è¦�性</th><th>备注</th></tr></thead><tbody><tr><td>type</td><td>num</td><td>弹幕类</td><td>å¿…è¦�</td><td>1:视频弹幕</td></tr><tr><td>oid</td><td>num</td><td>视频cid</td><td>å¿…è¦�</td><td></td></tr><tr><td>pid</td><td>num</td><td>稿件avid</td><td>é�žå¿…è¦�</td><td></td></tr></tbody></table><p><strong>proto回å¤�:</strong></p><p>消æ�¯<code>DmWebViewReply</code>:</p><table><thead><tr><th>å��ç§°</th><th>类型</th><th>å�«ä¹‰</th><th>备注</th></tr></thead><tbody><tr><td>state</td><td>int32</td><td>弹幕开放状æ€�</td><td>0:开放弹幕<br>1:ç¦�æ¢å¼¹å¹•</td></tr><tr><td>text</td><td>string</td><td>?</td><td></td></tr><tr><td>textSide</td><td>string</td><td>?</td><td></td></tr><tr><td>dmSge</td><td>DmSegConfig</td><td>分段弹幕包信æ�¯ï¼Ÿ</td><td></td></tr><tr><td>flag</td><td>DanmakuFlagConfig</td><td>?</td><td></td></tr><tr><td>specialDms</td><td>repeated string</td><td>BAS(代ç �)弹幕专包url</td><td></td></tr><tr><td>checkBox</td><td>bool</td><td>?</td><td></td></tr><tr><td>count</td><td>int64</td><td>实际弹幕总数</td><td>具有1500-6000ä¸�ç‰çš„上é™�</td></tr><tr><td>commandDms</td><td>repeated CommandDm</td><td>互动弹幕æ�¡ç›®</td><td></td></tr><tr><td>dmSetting</td><td>DanmuWebPlayerConfig</td><td>弹幕个人é…�ç½®</td><td>仅登录å�Žå˜åœ¨</td></tr></tbody></table><p>消æ�¯<code>dmSge</code>:</p><table><thead><tr><th>å��ç§°</th><th>类型</th><th>å�«ä¹‰</th><th>备注</th></tr></thead><tbody><tr><td>pageSize</td><td>int64</td><td>分段时间?</td><td>å�•ä½�为毫秒</td></tr><tr><td>total</td><td>int64</td><td>最大分页数?</td><td></td></tr></tbody></table><p>消æ�¯<code>flag</code>:</p><table><thead><tr><th>å��ç§°</th><th>类型</th><th>å�«ä¹‰</th><th>备注</th></tr></thead><tbody><tr><td>recFlag</td><td>int32</td><td>?</td><td></td></tr><tr><td>recText</td><td>string</td><td>?</td><td></td></tr><tr><td>recSwitch</td><td>int32</td><td>?</td><td></td></tr></tbody></table><p>消æ�¯<code>commandDms</code>:</p><table><thead><tr><th>å��ç§°</th><th>类型</th><th>å�«ä¹‰</th><th>备注</th></tr></thead><tbody><tr><td>id</td><td>int64</td><td>弹幕dmid</td><td></td></tr><tr><td>oid</td><td>int64</td><td>视频cid</td><td></td></tr><tr><td>mid</td><td>int64</td><td>å�‘é€�者mid</td><td></td></tr><tr><td>command</td><td>string</td><td>弹幕指令</td><td><code>#UP#</code>:UP主头åƒ�弹幕<br><code>#LINK#</code>:关è�”视频弹幕<br><code>#ATTENTION#</code>:视频内嵌引导关注按钮</td></tr><tr><td>content</td><td>string</td><td>弹幕文å—</td><td></td></tr><tr><td>progress</td><td>int32</td><td>弹幕出现时间</td><td>å�•ä½�为毫秒</td></tr><tr><td>ctime</td><td>string</td><td>创å»
|
||||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;">//分段弹幕包信�?</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">message</span><span style="color:#4EC9B0;"> DmSegConfig</span><span style="color:#D4D4D4;"> {</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int64</span><span style="color:#9CDCFE;"> pageSize</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//分段时间?</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int64</span><span style="color:#9CDCFE;"> total</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//最大分页数?</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">message</span><span style="color:#4EC9B0;"> DanmakuFlagConfig</span><span style="color:#D4D4D4;"> {</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int32</span><span style="color:#9CDCFE;"> recFlag</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> recText</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int32</span><span style="color:#9CDCFE;"> recSwitch</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;">// 互动弹幕�目</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">message</span><span style="color:#4EC9B0;"> CommandDm</span><span style="color:#D4D4D4;"> {</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int64</span><span style="color:#9CDCFE;"> id</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕dmid</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int64</span><span style="color:#9CDCFE;"> oid</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//视频cid</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int64</span><span style="color:#9CDCFE;"> mid</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//��者mid</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> command</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">4</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕指令</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> content</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">5</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕文å—</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int32</span><span style="color:#9CDCFE;"> progress</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">6</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕出现时间</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> ctime</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">7</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> mtime</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">8</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> extra</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">9</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕负载数�</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> idStr</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕dmid(å—串形å¼�)</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#6A9955;">//弹幕个人�置</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">message</span><span style="color:#4EC9B0;"> DanmuWebPlayerConfig</span><span style="color:#D4D4D4;">{</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> dmSwitch</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕开关</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> aiSwitch</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//智能云�蔽</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int32</span><span style="color:#9CDCFE;"> aiLevel</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//智能云�蔽级别</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> blocktop</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">4</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//�蔽类型-顶部</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> blockscroll</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">5</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//�蔽类型-滚动</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> blockbottom</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">6</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//�蔽类型-底部</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> blockcolor</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">7</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//�蔽类型-彩色</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> blockspecial</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">8</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//�蔽类型-特殊</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> preventshade</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">9</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//防挡弹幕(底部15%)</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> dmask</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//智能防挡弹幕(人�蒙版)</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> float</span><span style="color:#9CDCFE;"> opacity</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">11</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕��明度</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int32</span><span style="color:#9CDCFE;"> dmarea</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">12</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕显示区域</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> float</span><span style="color:#9CDCFE;"> speedplus</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">13</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕速度</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> float</span><span style="color:#9CDCFE;"> fontsize</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">14</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//å—体大å°�</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> screensync</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">15</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//跟��幕缩放比例</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> speedsync</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">16</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//æ ¹æ�®æ’放å€�速调整速度</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> fontfamily</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">17</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//å—体类型?</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> bold</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">18</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//粗体?</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int32</span><span style="color:#9CDCFE;"> fontborder</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">19</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//�边类型</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> drawType</span><span style="color:#D4D4D4;">=</span><span style="color:#B5CEA8;">20</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//渲染类型?</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">}</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;">message</span><span style="color:#4EC9B0;"> DmWebViewReply</span><span style="color:#D4D4D4;"> {</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int32</span><span style="color:#9CDCFE;"> state</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">1</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕开放状�</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> text</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">2</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> textSide</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">3</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> DmSegConfig</span><span style="color:#9CDCFE;"> dmSge</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">4</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//分段弹幕包信�?</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> DanmakuFlagConfig</span><span style="color:#9CDCFE;"> flag</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">5</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> repeated</span><span style="color:#569CD6;"> string</span><span style="color:#9CDCFE;"> specialDms</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">6</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//BAS(代ç �)弹幕专包url</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> bool</span><span style="color:#9CDCFE;"> checkBox</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">7</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> int64</span><span style="color:#9CDCFE;"> count</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">8</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//实际弹幕总数</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> repeated</span><span style="color:#569CD6;"> CommandDm</span><span style="color:#9CDCFE;"> commandDms</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">9</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//互动弹幕�目</span></span>
|
|||
|
|
<span class="line"><span style="color:#569CD6;"> DanmuWebPlayerConfig</span><span style="color:#9CDCFE;"> dmSetting</span><span style="color:#D4D4D4;"> = </span><span style="color:#B5CEA8;">10</span><span style="color:#D4D4D4;">; </span><span style="color:#6A9955;">//弹幕个人�置</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 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 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 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 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 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 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 class="line-number"></div><div class="line-number"></div></div></div><p><strong>示例:</strong></p><p>获�视频<code>av797164471(cid=236871317)</code>的弹幕元数�</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;"> -G</span><span style="color:#CE9178;"> 'https://api.bilibili.com/x/v2/dm/web/view'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'type=1'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'oid=236871317'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">--data-urlencode </span><span style="color:#CE9178;">'pid=797164471'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">-b </span><span style="color:#CE9178;">'SESSDATA=xxx'</span><span style="color:#D7BA7D;"> \\</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">-o </span><span style="color:#CE9178;">'danmaku_view.bin'</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></div><p>å“�åº”æ£æ–‡ä¸ºprotubuf二进制数æ�®</p><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><p>获å�–并显示视频<code>av797164471(cid=236871317)</code>的所有互动弹幕</p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> web_dmview_pb2</span></span>
|
|||
|
|
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> requests</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">AVID = </span><span style="color:#B5CEA8;">797164471</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">CID = </span><span style="color:#B5CEA8;">236871317</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">url = </span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">'https://api.bilibili.com/x/v2/dm/web/view?type=1&oid=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">CID</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">&pid=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">AVID</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">'</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">data = requests.get(url)</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">target = web_dmview_pb2.DmWebViewReply()</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">target.ParseFromString(data.content)</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">'互动弹幕数=</span><span style="color:#569CD6;">{</span><span style="color:#DCDCAA;">len</span><span style="color:#D4D4D4;">(target.commandDms)</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">'</span><span style="color:#D4D4D4;">)</span></span>
|
|||
|
|
<span class="line"><span style="color:#C586C0;">for</span><span style="color:#D4D4D4;"> i </span><span style="color:#C586C0;">in</span><span style="color:#D4D4D4;"> target.commandDms:</span></span>
|
|||
|
|
<span class="line"><span style="color:#DCDCAA;"> print</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">'''</span><span style="color:#569CD6;">\\</span></span>
|
|||
|
|
<span class="line"><span style="color:#CE9178;">---弹幕ID=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i.id</span><span style="color:#569CD6;">}</span></span>
|
|||
|
|
<span class="line"><span style="color:#CE9178;">---视频cid=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i.oid</span><span style="color:#569CD6;">}</span></span>
|
|||
|
|
<span class="line"><span style="color:#CE9178;">---��者mid=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i.mid</span><span style="color:#569CD6;">}</span></span>
|
|||
|
|
<span class="line"><span style="color:#CE9178;">---弹幕指令=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i.command</span><span style="color:#569CD6;">}</span></span>
|
|||
|
|
<span class="line"><span style="color:#CE9178;">---弹幕文å—=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i.content</span><span style="color:#569CD6;">}</span></span>
|
|||
|
|
<span class="line"><span style="color:#CE9178;">---弹幕出现时间=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i.progress</span><span style="color:#569CD6;">}</span></span>
|
|||
|
|
<span class="line"><span style="color:#CE9178;">---弹幕负载数�=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i.extra</span><span style="color:#569CD6;">}</span></span>
|
|||
|
|
<span class="line"><span style="color:#CE9178;">---弹幕ID(å—串)=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i.idStr</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">'''</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 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 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><p>输出为:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>互动弹幕数=1</span></span>
|
|||
|
|
<span class="line"><span>---弹幕ID=38469676112019463</span></span>
|
|||
|
|
<span class="line"><span>---视频cid=236871317</span></span>
|
|||
|
|
<span class="line"><span>---��者mid=501183549</span></span>
|
|||
|
|
<span class="line"><span>---弹幕指令=#UP#</span></span>
|
|||
|
|
<span class="line"><span>---弹幕文å—=这个视频没有æ�°é¥ï¼�åˆ«ç´§å¼ ï¼�</span></span>
|
|||
|
|
<span class="line"><span>---弹幕出现时间=157818</span></span>
|
|||
|
|
<span class="line"><span>---弹幕负载数�={"icon":"https://i1.hdslb.com/bfs/face/559abe31f561f71f3106d8ee7b2065cac50c1235.jpg"}</span></span>
|
|||
|
|
<span class="line"><span>---弹幕ID(å—串)=38469676112019463</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><h3 id="获å�–bas-代ç �-弹幕专包" tabindex="-1"><a class="header-anchor" href="#获å�–bas-代ç �-弹幕专包"><span>获å�–BAS(代ç �)弹幕专包</span></a></h3><p>BAS弹幕(<code>pool=2</code> <code>mode=9</code>)å�ªèƒ½ä»Žæ¤åŒ…获å�–,代ç �弹幕(<code>pool=2</code> <code>mode=8</code>)也能从æ¤åŒ…获å�–</p><p>获å�–并显示视频<code>av2(cid=62131)</code>的所有BAS(代ç �)弹幕专包</p><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-python"><span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> web_dmview_pb2</span></span>
|
|||
|
|
<span class="line"><span style="color:#C586C0;">import</span><span style="color:#D4D4D4;"> requests</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">AVID = </span><span style="color:#B5CEA8;">2</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">CID = </span><span style="color:#B5CEA8;">62131</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">url = </span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">'https://api.bilibili.com/x/v2/dm/web/view?type=1&oid=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">CID</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">&pid=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">AVID</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">'</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">data = requests.get(url)</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">target = web_dmview_pb2.DmWebViewReply()</span></span>
|
|||
|
|
<span class="line"><span style="color:#D4D4D4;">target.ParseFromString(data.content)</span></span>
|
|||
|
|
<span class="line"></span>
|
|||
|
|
<span class="line"><span style="color:#DCDCAA;">print</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">'特殊弹幕包数=</span><span style="color:#569CD6;">{</span><span style="color:#DCDCAA;">len</span><span style="color:#D4D4D4;">(target.specialDms)</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">'</span><span style="color:#D4D4D4;">)</span></span>
|
|||
|
|
<span class="line"><span style="color:#C586C0;">for</span><span style="color:#D4D4D4;"> i </span><span style="color:#C586C0;">in</span><span style="color:#D4D4D4;"> target.specialDms:</span></span>
|
|||
|
|
<span class="line"><span style="color:#DCDCAA;"> print</span><span style="color:#D4D4D4;">(</span><span style="color:#569CD6;">f</span><span style="color:#CE9178;">'特殊弹幕包url=</span><span style="color:#569CD6;">{</span><span style="color:#D4D4D4;">i</span><span style="color:#569CD6;">}</span><span style="color:#CE9178;">'</span><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 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><p>输出为:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="background-color:#1E1E1E;color:#D4D4D4;"><pre class="shiki dark-plus vp-code"><code class="language-"><span class="line"><span>特殊弹幕包数=1</span></span>
|
|||
|
|
<span class="line"><span>特殊弹幕包url=https://i0.hdslb.com/bfs/dm/b0d5f08c12be59292aa0d4e09b6dd8e54c2ba886.bin</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></div>`,47)),e("p",null,[s[1]||(s[1]=n("使用")),o(a,{to:"/docs/danmaku/danmaku_proto.html#%E8%8E%B7%E5%8F%96%E5%AE%9E%E6%97%B6%E5%BC%B9%E5%B9%95"},{default:d(()=>s[0]||(s[0]=[n("普通分段包弹幕")])),_:1,__:[0]}),s[2]||(s[2]=n("çš„proto结构体å��åº�列化æ¤binæ•°æ�®"))])])}const b=l(i,[["render",D]]),C=JSON.parse('{"path":"/docs/danmaku/danmaku_view_proto.html","title":"弹幕元数æ�®","lang":"zh-CN","frontmatter":{},"git":{"updatedTime":1720284320000,"contributors":[{"name":"SocialSisterYi","username":"SocialSisterYi","email":"1440239038@qq.com","commits":2,"url":"https://github.com/SocialSisterYi"},{"name":"wuziqian211","username":"wuziqian211","email":"65224318+wuziqian211@users.noreply.github.com","commits":2,"url":"https://github.com/wuziqian211"}],"changelog":[{"hash":"2382b768aaafef33247bf09510649e2501341b26","time":1720284320000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"feat: 更新部分接å�£æ–‡æ¡£çš„表述 (#1049)"},{"hash":"a7c7788eaaff36a6f4b59d07d8a72900390d7ac2","time":1720277978000,"email":"65224318+wuziqian211@users.noreply.github.com","author":"wuziqian211","message":"æ›´æ–° danmaku_view_proto.md"},{"hash":"f6760f4be38d5b592d396b211e48c666286524de","time":1677124138000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🔨remove header index"},{"hash":"7d89ece2ac46425810647c4ac92acf5f3721cb68","time":1676998806000,"email":"1440239038@qq.com","author":"SocialSisterYi","message":"🚀调整项目结构"}]},"filePathRelative":"docs/danmaku/danmaku_view_proto.md"}');export{b as comp,C as data};
|