-
Notifications
You must be signed in to change notification settings - Fork 21
/
types.go
2164 lines (2153 loc) · 95.8 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
package biligo
import (
"encoding/json"
"io"
)
type Response struct {
Code int `json:"code,omitempty"`
Message string `json:"message,omitempty"`
TTL int `json:"ttl,omitempty"`
Data json.RawMessage `json:"data,omitempty"`
}
type Account struct {
MID int64 `json:"mid"` // 我的mid
UName string `json:"uname"` // 我的昵称
UserID string `json:"userid"` // 我的用户名
Sign string `json:"sign"` // 我的签名
Birthday string `json:"birthday"` // 我的生日 YYYY-MM-DD
Sex string `json:"sex"` // 我的性别 男 女 保密
NickFree bool `json:"nick_free"` // 是否未设置昵称 false:设置过昵称 true:未设置昵称
Rank string `json:"rank"` // 我的会员等级
}
type NavStat struct {
Following int `json:"following"` // 关注数
Follower int `json:"follower"` // 粉丝数
DynamicCount int `json:"dynamic_count"` // 发布动态数
}
type VideoRecommendInfo struct {
videoBase
}
// ExpRewardStat 完成为true 未完成为false
type ExpRewardStat struct {
Login bool `json:"login"` // 每日登录 5经验
Watch bool `json:"watch"` // 每日观看 5经验
Coins int `json:"coins"` // 每日投币所奖励的经验 上限50经验 该值更新存在延迟 想要无延迟请使用 GetExpCoinRewardStat
Share bool `json:"share"` // 每日分享 5经验
Email bool `json:"email"` // 绑定邮箱
Tel bool `json:"tel"` // 绑定手机号 首次完成100经验
SafeQuestion bool `json:"safe_question"` // 设置密保问题
IdentifyCard bool `json:"identify_card"` // 实名认证 50经验
}
type VipStat struct {
MID int `json:"mid"` // 用户MID
VipType int `json:"vip_type"` // 大会员类型 0:无 1:月度 2:年度
// 大会员状态
//
// 1:正常
//
// 2:由于IP地址更换过于频繁,服务被冻结
//
// 3:你的大会员账号风险过高,大会员功能已被锁定
VipStatus int `json:"vip_status"`
VipDueDate int64 `json:"vip_due_date"` // 大会员到期时间 时间戳(东八区) 毫秒
VipPayType int `json:"vip_pay_type"` // 是否已购买大会员 0:未购买 1:已购买
ThemeType int `json:"theme_type"` // 0 作用尚不明确
}
type RealNameInfo struct {
Status int `json:"status"` // 认证状态 1:已认证 3:未认证
Remark string `json:"remark"` // 驳回信息 默认为空
Realname string `json:"realname"` // 实名姓名 星号隐藏完全信息
Card string `json:"card"` // 证件号码 星号隐藏部分信息
// 证件类型代码
//
// 0:身份证
//
// 2:港澳居民来往内地通行证
//
// 3:台湾居民来往大陆通行证
//
// 4:护照(中国签发)
//
// 5:外国人永久居留证
//
// 6:其他国家或地区身份证明
CardType int `json:"card_type"`
}
type CoinLog struct {
Time string `json:"time"` // 变化时间 YYYY-MM-DD HH:MM:SS
Delta float64 `json:"delta"` // 变化量 正值为收入,负值为支出
Reason string `json:"reason"` // 变化说明
}
type RelationStat struct {
MID int64 `json:"mid"` // 目标用户mid
Following int `json:"following"` // 关注数
Whisper int `json:"whisper"` // 悄悄关注数 需要登录(Cookie或APP) 未登录或非自己恒为0
Black int `json:"black"` // 黑名单数 需要登录(Cookie或APP) 未登录或非自己恒为0
Follower int `json:"follower"` // 粉丝数
}
type UpStat struct {
Archive *UpStatArchive `json:"archive"` // 视频播放量
Article *UpStatArticle `json:"article"` // 专栏阅读量
Likes int64 `json:"likes"` // 获赞次数
}
type SpaceVideo struct {
videoBase
Reason string `json:"reason"` // 置顶视频备注
InterVideo bool `json:"inter_video"` // 是否为合作视频
}
type ChanVideo struct {
List *ChanVideoList `json:"list"` // 频道信息
Page *ChanVideoPage `json:"page"` // 页面信息
}
type ChanVideoPage struct {
Count int // 总计视频数
Num int // 当前页码(可以用于请求下一页的数据计算)
Size int // 每页项数(可以用于请求下一页的数据计算)
}
type ChanVideoList struct {
Archives []*ChanVideoInfo `json:"archives"` // 包含的视频列表
CID int64 `json:"cid"` // 频道id
Count int `json:"count"` // 频道内含视频数
Cover string `json:"cover"` // 封面图片url
Intro string `json:"intro"` // 简介 无则为空
MID int64 `json:"mid"` // 创建用户mid
Mtime int64 `json:"mtime"` // 创建时间 时间戳
Name string `json:"name"` // 标题
}
type ChanVideoInfo struct {
videoBase
InterVideo bool `json:"inter_video"` // 是否为合作视频
}
type UpStatArchive struct {
View int64 `json:"view"` // 视频播放量
}
type UpStatArticle struct {
View int64 `json:"view"` // 专栏阅读量
}
type SpaceGame struct {
Website string `json:"website"` // 游戏主页链接ur
Image string `json:"image"` // 游戏图片url
Name string `json:"name"` // 游戏名
}
type AccountSafetyStat struct {
AccountInfo *AccountSafetyInfo `json:"account_info"` // 账号绑定信息
AccountSafe *AccountSafetySafe `json:"account_safe"` // 密码安全信息
AccountSNS *AccountSafetySNS `json:"account_sns"` // 互联登录绑定信息
AccountOther *AccountSafetyOther `json:"account_other"`
}
type AccountSafetyInfo struct {
HideTel string `json:"hide_tel"` // 绑定的手机号 星号隐藏部分信息
HideMail string `json:"hide_mail"` // 绑定的邮箱 星号隐藏部分信息
BindTel bool `json:"bind_tel"` // 是否绑定手机号
BindMail bool `json:"bind_mail"` // 是否绑定邮箱
TelVerify bool `json:"tel_verify"` // 是否验证手机号
MailVerify bool `json:"mail_verify"` // 是否验证邮箱
UnneededCheck bool `json:"unneeded_check"` // 是否未设置密码 注意:true为未设置,false为已设置
RealnameCertified bool `json:"realname_certified"` // 是否实名认证 文档中未更新此项
}
type AccountSafetySafe struct {
Score int `json:"score"` // 当前密码强度 0-100
PwdLevel int `json:"pwd_level"` // 当前密码强度等级 1:弱 2:中 3:强
Security bool `json:"security"` // 当前密码是否安全
}
type AccountSafetySNS struct {
WeiboBind int `json:"weibo_bind"` // 是否绑定微博 0:未绑定 1:已绑定
QQBind int `json:"qq_bind"` // 是否绑定qq 0:未绑定 1:已绑定
WechatBind int `json:"wechat_bind"` // 是否绑定微信 0:未绑定 1:已绑定 文档中未更新此项
}
type AccountSafetyOther struct {
SkipVerify bool `json:"skipVerify"` // 恒为false 作用尚不明确
}
type DanmakuResp struct {
Danmaku []*Danmaku `json:"danmaku"`
}
type Danmaku struct {
ID uint64 `json:"id"` // 弹幕dmid
Progress int64 `json:"progress"` // 弹幕出现位置(单位ms)
// 弹幕类型
//
// 1 2 3:普通弹幕
//
// 4:底部弹幕
//
// 5:顶部弹幕
//
// 6:逆向弹幕
//
// 7:高级弹幕
//
// 8:代码弹幕
//
// 9:BAS弹幕(仅限于特殊弹幕专包)
Mode int `json:"mode"`
FontSize int `json:"font_size"` // 弹幕字号 18:小 25:标准 36:大
Color int `json:"color"` // 弹幕颜色 十进制RGB888值
MidHash string `json:"mid_hash"` // 发送着mid hash 用于屏蔽用户和查看用户发送的所有弹幕 也可反查用户id
Content string `json:"content"` // 弹幕正文 utf-8编码
Ctime int64 `json:"ctime"` // 发送时间 时间戳
Weight int `json:"weight"` // 权重 区间:[1,10] 用于智能屏蔽,根据弹幕语义及长度通过AI识别得出 值越大权重越高
Action string `json:"action"` // 动作 作用尚不明确
Pool int `json:"pool"` // 弹幕池 0:普通池 1:字幕池 2:特殊池(代码/BAS弹幕)
IDStr string `json:"id_str"` // 弹幕dmid的字符串形式
Attr int `json:"attr"` // 弹幕属性位(bin求AND) bit0:保护 bit1:直播 bit2:高赞
}
type SpaceVideoSearchResult struct {
List *SpaceVideoSearchList `json:"list"` // 列表信息
Page *SpaceVideoSearchPage `json:"page"` // 页面信息
EpisodicButton *SpaceVideoSearchEpisodicButton `json:"episodic_button"` // “播放全部“按钮
}
type SpaceVideoSearchList struct {
Tlist map[string]*SpaceVideoSearchTList `json:"tlist"` // 投稿视频分区索引 key为tid字符串形式,value为详细信息
Vlist []*SpaceVideoSearchVList `json:"vlist"` // 投稿视频列表
}
type SpaceVideoSearchTList struct {
TID int `json:"tid"` // 该分区tid
Count int `json:"count"` // 投稿至该分区的视频数
Name string `json:"name"` // 该分区名称
}
type SpaceVideoSearchPage struct {
Count int `json:"count"` // 总计稿件数
PN int `json:"pn"` // 当前页码(可以用于请求下一页的数据计算)
PS int `json:"ps"` // 当前每页项数(可以用于请求下一页的数据计算)
}
type SpaceVideoSearchEpisodicButton struct {
Text string `json:"text"` // 按钮文字
Uri string `json:"uri"` // 全部播放页url(经测试页面空白...)
}
type SpaceVideoSearchVList struct {
AID int64 `json:"aid"` // 稿件avid
Author string `json:"author"` // 视频UP主 不一定为目标用户(合作视频)
BVID string `json:"bvid"` // 稿件bvid
Comment int `json:"comment"` // 视频评论数
Copyright string `json:"copyright"` // 空 作用尚不明确
Created int64 `json:"created"` // 投稿时间 时间戳
Description string `json:"description"` // 视频简介
HideClick bool `json:"hide_click"` // 恒为false 作用尚不明确
IsPay int `json:"is_pay"` // 恒为0 作用尚不明确
IsUnionVideo int `json:"is_union_video"` // 是否为合作视频 0:否 1:是
Length string `json:"length"` // 视频长度 MM:SS
MID int64 `json:"mid"` // 视频UP主mid 不一定为目标用户(合作视频)
Pic string `json:"pic"` // 视频封面
Play int64 `json:"play"` // 视频播放次数
Review int `json:"review"` // 恒为0 作用尚不明确
Subtitle string `json:"subtitle"` // 恒为空 作用尚不明确
Title string `json:"title"` // 视频标题
TypeID int `json:"typeid"` // 视频分区tid
VideoReview int `json:"video_review"` // 视频弹幕数
}
type ChannelList struct {
Count int `json:"count"` // 总计频道数
List []*ChanInfo `json:"list"` // 频道列表
}
type FavoritesList struct {
Count int `json:"count"` // 创建的收藏夹数
List []*FavInfo `json:"list"` // 收藏夹列表
}
type FavInfo struct {
ID int64 `json:"id"` // 收藏夹mlid
FID int64 `json:"fid"` // 原始收藏夹mlid 去除lmid最后两位
MID int64 `json:"mid"` // 创建用户mid
Attr int `json:"attr"` // 收藏夹属性位配置
Title string `json:"title"` // 收藏夹标题
FavState int `json:"fav_state"` // 0 作用尚不明确
MediaCount int `json:"media_count"` // 收藏夹总计视频数
}
type FavDetail struct {
ID int64 `json:"id"` // 收藏夹mlid(完整id) 收藏夹原始id+创建者mid尾号2位
FID int64 `json:"fid"` // 收藏夹原始id
MID int64 `json:"mid"` // 创建者mid
Attr int `json:"attr"` // 属性位(?)
Title string `json:"title"` // 收藏夹标题
Cover string `json:"cover"` // 收藏夹封面图片url
Upper *FavDetailUpper `json:"upper"` // 创建者信息
CoverType int `json:"cover_type"` // 封面图类别(?)
CntInfo *FavDetailCnt `json:"cnt_info"` // 收藏夹状态数
Type int `json:"type"` // 类型(?) 一般是11
Intro string `json:"intro"` // 备注
Ctime int64 `json:"ctime"` // 创建时间 时间戳
Mtime int64 `json:"mtime"` // 收藏时间 时间戳
State int `json:"state"` // 状态(?) 一般为0
// 收藏夹收藏状态
//
// 已收藏收藏夹:1
//
// 未收藏收藏夹:0
//
// 需要登录
FavState int `json:"fav_state"`
// 点赞状态
//
// 已点赞:1
//
// 未点赞:0
//
// 需要登录
LikeState int `json:"like_state"`
MediaCount int `json:"media_count"` // 收藏夹内容数量
}
type FavDetailUpper struct {
MID int64 `json:"mid"` // 创建者mid
Name string `json:"name"` // 创建者昵称
Face string `json:"face"` // 创建者头像url
Followed bool `json:"followed"` // 是否已关注创建者 需登录
// 会员类别
//
// 0:无
//
// 1:月大会员
//
// 2:年度及以上大会员
VipType int `json:"vip_type"`
// 会员开通状态(B站程序员有点粗心,打成statue了)
//
// 0:无
//
// 1:有
VipStatue int `json:"vip_statue"`
}
type FavDetailCnt struct {
Collect int `json:"collect"` // 收藏数
Play int64 `json:"play"` // 收藏夹播放数
ThumbUp int `json:"thumb_up"` // 收藏夹点赞数
Share int `json:"share"` // 收藏夹分享数
}
type SpaceVideoCoin struct {
videoBase
Coins int `json:"coins"` // 投币数量
Time int64 `json:"time"` // 投币时间 时间戳
IP string `json:"ip"` // 空
InterVideo bool `json:"inter_video"` // 是否为合作视频
}
// FavRes 收藏夹内容id
type FavRes struct {
// 内容id
//
// 视频稿件:视频稿件avid
//
// 音频:音频auid
//
// 视频合集:视频合集id
ID int64 `json:"id"`
// 内容类型
// 2:视频稿件
//
// 12:音频
//
// 21:视频合集
Type int `json:"type"`
}
type FavResDetail struct {
Info *FavDetail `json:"info"` // 收藏夹元数据
Medias []*FavResDetailMedia `json:"medias"` // 收藏夹内容
}
type FavResDetailMedia struct {
// 内容id
//
// 视频稿件:视频稿件avid
//
// 音频:音频auid
//
// 视频合集:视频合集id
ID int64 `json:"id"`
// 内容类型
//
// 2:视频稿件
//
// 12:音频
//
// 21:视频合集
Type int `json:"type"`
Title string `json:"title"` // 标题
Cover string `json:"cover"` // 封面url
Intro string `json:"intro"` // 简介
Page int `json:"page"` // 视频分P数
Duration int64 `json:"duration"` // 音频/视频时长
Upper *VideoOwner `json:"upper"` // UP主信息
Attr int `json:"attr"` // 属性位
CntInfo *FavResDetailMediaCnt `json:"cnt_info"` // 状态数
Link string `json:"link"` // 跳转uri
Ctime int64 `json:"ctime"` // 投稿时间 时间戳
Pubtime int64 `json:"pubtime"` // 发布时间 时间戳
FavTime int64 `json:"fav_time"` // 收藏时间 时间戳
BVID string `json:"bvid"` // 视频稿件bvid
}
type FavResDetailMediaCnt struct {
Collect int `json:"collect"` // 收藏数
Play int64 `json:"play"` // 播放数
Danmaku int `json:"danmaku"` // 弹幕数
}
// ChanInfo 原频道仍能使用,视频列表为新版频道,还未实现相关接口
type ChanInfo struct {
CID int64 `json:"cid"` // 频道id
Count int `json:"count"` // 频道内含视频数
Cover string `json:"cover"` // 封面图片url
Intro string `json:"intro"` // 简介 无则为空
MID int64 `json:"mid"` // 创建用户mid
Mtime int64 `json:"mtime"` // 创建时间 时间戳
Name string `json:"name"` // 标题
}
type NavInfo struct {
EmailVerified int `json:"email_verified"` // 是否验证邮箱地址 0:未验证 1:已验证
Face string `json:"face"` // 用户头像url
LevelInfo *NavInfoLevel `json:"level_info"` // 等级信息
MID int64 `json:"mid"` // 用户mid
MobileVerified int `json:"mobile_verified"` // 是否验证手机号 0:未验证 1:已验证
Money float64 `json:"money"` // 拥有硬币数
Moral int `json:"moral"` // 当前节操值 上限为70
Official *NavInfoOfficial `json:"official"` // 认证信息
OfficialVerify *NavInfoOfficialVerify `json:"officialVerify"` // 认证信息2
Pendant *NavInfoPendant `json:"pendant"` // 头像框信息
Scores int `json:"scores"` // 0 作用尚不明确
Uname string `json:"uname"` // 用户昵称
VipDueDate int64 `json:"vipDueDate"` // 会员到期时间 毫秒 时间戳(东八区)
VipStatus int `json:"vipStatus"` // 会员开通状态 0:无 1:有
VipType int `json:"vipType"` // 会员类型 0:无 1:月度大会员 2:年度及以上大会员
VipPayType int `json:"vip_pay_type"` // 会员开通状态 0:无 1:有
VipThemeType int `json:"vip_theme_type"` // 0 作用尚不明确
VipLabel *NavInfoVipLabel `json:"vip_label"` // 会员标签
VipAvatarSubscript int `json:"vip_avatar_subscript"` // 是否显示会员图标 0:不显示 1:显示
VipNicknameColor string `json:"vip_nickname_color"` // 会员昵称颜色 颜色码 如#FFFFFF
Wallet *NavInfoWallet `json:"wallet"` // B币钱包信息
HasShop bool `json:"has_shop"` // 是否拥有推广商品 false:无 true:有
ShopURL string `json:"shop_url"` // 商品推广页面url
AllowanceCount int `json:"allowance_count"` // 0 作用尚不明确
AnswerStatus int `json:"answer_status"` // 0 作用尚不明确
}
type NavInfoLevel struct {
CurrentLevel int `json:"current_level"` // 当前等级
CurrentMin int `json:"current_min"` // 当前等级经验最低值
CurrentExp int `json:"current_exp"` // 当前经验
NextExp int `json:"next_exp"` // 升级下一等级需达到的经验
}
type NavInfoOfficial struct {
// 认证类型
//
// 0:无
//
// 1 2 7:个人认证
//
// 3 4 5 6:机构认证
Role int `json:"role"`
Title string `json:"title"` // 认证信息 无为空
Desc string `json:"desc"` // 认证备注 无为空
Type int `json:"type"` // 是否认证 -1:无 0:认证
}
type NavInfoOfficialVerify struct {
Type int `json:"type"` // 是否认证 -1:无 0:认证
Desc string `json:"desc"` // 认证信息 无为空
}
type NavInfoPendant struct {
PID int64 // 挂件id
Name string // 挂件名称
Image string // 挂件图片url
Expire int // 0 作用尚不明确
}
type NavInfoVipLabel struct {
Path string `json:"path"` // 空 作用尚不明确
Text string `json:"text"` // 会员名称
// 会员标签
//
// vip:大会员
//
// annual_vip:年度大会员
//
// ten_annual_vip:十年大会员
//
// hundred_annual_vip:百年大会员
LabelTheme string `json:"label_theme"`
}
type NavInfoWallet struct {
MID int64 `json:"mid"` // 登录用户mid
BcoinBalance float64 `json:"bcoin_balance"` // 拥有B币数
CouponBalance float64 `json:"coupon_balance"` // 每月奖励B币数
CouponDueTime int `json:"coupon_due_time"` // 0 作用尚不明确
}
type MsgUnRead struct {
At int `json:"at"` // 未读at数
Chat int `json:"chat"` // 恒为0 作用尚不明确
Like int `json:"like"` // 未读点赞数
Reply int `json:"reply"` // 未读回复数
SysMsg int `json:"sys_msg"` // 未读系统通知数
Up int `json:"up"` // UP主助手信息数
}
type GeoInfo struct {
Addr string `json:"addr"` // 公网IP地址
Country string `json:"country"` // 国家/地区名
Province string `json:"province"` // 省/州 非必须存在项
City string `json:"city"` // 城市 非必须存在项
Isp string `json:"isp"` // 运营商名
Latitude float64 `json:"latitude"` // 纬度
Longitude float64 `json:"longitude"` // 经度
ZoneID int64 `json:"zone_id"` // ip数据库id
CountryCode int `json:"country_code"` // 国家/地区代码
}
type VideoZone struct {
Name string `json:"name"`
Code string `json:"code"`
Desc string `json:"desc"`
}
type VideoSingleStat struct {
AID int64 `json:"aid"` // 稿件avid
BVID string `json:"bvid"` // 稿件bvid
View int64 `json:"view"` // 播放次数
Danmaku int `json:"danmaku"` // 弹幕条数
Reply int `json:"reply"` // 评论条数
Favorite int `json:"favorite"` // 收藏人数
Coin int `json:"coin"` // 投币枚数
Share int `json:"share"` // 分享次数
NowRank int `json:"now_rank"` // 作用尚不明确
HisRank int `json:"his_rank"` // 历史最高排行
Like int `json:"like"` // 获赞次数
Dislike int `json:"dislike"` // 点踩次数,恒为0
NoReprint int `json:"no_reprint"` // 禁止转载标志 0:无 1:禁止
Copyright int `json:"copyright"` // 版权标志 1:自制 2:转载
ArgueMsg string `json:"argue_msg"` // 警告信息,默认为空
Evaluation string `json:"evaluation"` // 视频评分,默认为空
}
type videoBase struct {
AID int64 `json:"aid"` // 稿件avid
BVID string `json:"bvid"` // 稿件bvid
Videos int `json:"videos"` // 稿件分P总数
TID int `json:"tid"` // 分区TID
Tname string `json:"tname"` // 子分区名称
Copyright int `json:"copyright"` // 视频类型 (1:原创 2:转载)
Pic string `json:"pic"` // 稿件封面图片URL
Title string `json:"title"` // 稿件标题
Pubdate int64 `json:"pubdate"` // 稿件发布时间 时间戳 时区为东八区(也就是说转换过来就是中国发布时间)
Ctime int64 `json:"ctime"` // 用户投稿时间 时间戳 时区为东八区(也就是说转换过来就是中国发布时间)
Desc string `json:"desc"` // 视频简介
State int `json:"state"` // 视频状态
Duration int64 `json:"duration"` // 稿件总时长(所有分P) 单位为秒
Rights *VideoRights `json:"rights"` // 视频属性标志
Owner *VideoOwner `json:"owner"` // 视频UP主信息
Stat *VideoStat `json:"stat"` // 视频状态数
Dynamic string `json:"dynamic"` // 视频同步发布的的动态的文字内容
CID int64 `json:"cid"` // 视频1P cid
Dimension *VideoDimension `json:"dimension"` // 视频1P分辨率
}
type VideoInfo struct {
videoBase
NoCache bool `json:"no_cache"` // 恒为true 作用尚不明确
Pages []*VideoPage `json:"pages"` // 视频分P列表
Subtitle *VideoSubtitle `json:"subtitle"` // 视频CC字幕信息
Staff []*VideoStaff `json:"staff"` // 合作成员列表 (非合作视频无此项)
UserGarb *VideoUserGarb `json:"user_garb"` // 用户装扮信息
DescV2 []*VideoDesc `json:"desc_v2"` // 新版视频简介
Forward int64 `json:"forward"` // 撞车视频跳转avid (仅撞车视频存在此字段)
MissionID int64 `json:"mission_id"` // 稿件参与的活动ID
RedirectURL string `json:"redirect_url"` // 重定向URL 仅番剧或影视视频存在此字段,用于番剧&影视的av/bv->ep
}
type VideoDesc struct {
RawText string `json:"raw_text"` // 简介内容
Type int `json:"type"` // 未知
BizID int64 `json:"biz_id"` // 未知
}
type VideoRights struct {
BP int `json:"bp"` // 恒为0
Elec int `json:"elec"` // 是否支持充电
Download int `json:"download"` // 是否允许下载
Movie int `json:"movie"` // 是否为电影
Pay int `json:"pay"` // 是否PGC付费
HD5 int `json:"hd5"` // 是否有高码率
NoReprint int `json:"no_reprint"` // 是否禁止转载
Autoplay int `json:"autoplay"` // 是否自动播放
UGCPay int `json:"ugc_pay"` // 是否UGC付费
IsSteinGate int `json:"is_stein_gate"` // 是否为互动视频
IsCooperation int `json:"is_cooperation"` // 是否为联合投稿
UGCPayPreview int `json:"ugc_pay_preview"` // 恒为0
NoBackground int `json:"no_background"` // 恒为0
}
type VideoOwner struct {
MID int64 `json:"mid"` // UP主mid
Name string `json:"name"` // UP主昵称
Face string `json:"face"` // UP主头像URL直链
}
type VideoStat struct {
AID int64 `json:"aid"` // 稿件avid
View int64 `json:"view"` // 播放次数
Danmaku int `json:"danmaku"` // 弹幕条数
Reply int `json:"reply"` // 评论条数
Favorite int `json:"favorite"` // 收藏人数
Coin int `json:"coin"` // 投币枚数
Share int `json:"share"` // 分享次数
NowRank int `json:"now_rank"` // 作用尚不明确
HisRank int `json:"his_rank"` // 历史最高排行
Like int `json:"like"` // 获赞次数
Dislike int `json:"dislike"` // 点踩次数,恒为0
ArgueMsg string `json:"argue_msg"` // 警告信息,默认为空
Evaluation string `json:"evaluation"` // 视频评分,默认为空
}
type VideoDimension struct {
Width int `json:"width"` // 当前分P宽度
Height int `json:"height"` // 当前分P高度
Rotate int `json:"rotate"` // 是否将宽高对换 0:正常 1:对换
}
type VideoPage struct {
CID int64 `json:"cid"` // 当前分P的CID
Page int `json:"page"` // 当前分P 在Pages中的id
From string `json:"from"` // 视频来源 vupload:普通上传(B站) hunan:芒果TV qq:腾讯
Part string `json:"part"` // 当前分P标题
Duration int64 `json:"duration"` // 当前分P持续时间 单位为秒
VID string `json:"vid"` // 站外视频VID 仅站外视频有效
Weblink string `json:"weblink"` // 站外视频跳转URL 仅站外视频有效
Dimension *VideoDimension `json:"dimension"` // 当前分P分辨率
}
type VideoSubtitle struct {
AllowSubmit bool `json:"allow_submit"` // 是否允许提交字幕
List []*VideoSubtitleList `json:"list"` // 字幕列表
}
type VideoSubtitleList struct {
ID int64 `json:"id"` // 字幕ID
Lan string `json:"lan"` // 字幕语言
LanDoc string `json:"lan_doc"` // 字幕语言名称
IsLock bool `json:"is_lock"` // 是否锁定
AuthorMID int64 `json:"author_mid"` // 字幕上传者MID
SubtitleURL string `json:"subtitle_url"` // JSON格式字幕文件URL
Author *VideoSubtitleAuthor `json:"author"` // 字幕上传者信息
}
type VideoSubtitleAuthor struct {
MID int64 `json:"mid"` // 字幕上传者MID
Name string `json:"name"` // 字幕上传者昵称
Sex string `json:"sex"` // 字幕上传者性别 (男 女 保密)
Face string `json:"face"` // 字幕上传者头像URL
Sign string `json:"sign"` // 字幕上传者个性签名
Rank int `json:"rank"` // 恒为10000 作用尚不明确
Birthday int `json:"birthday"` // 恒为0 作用尚不明确
IsFakeAccount int `json:"is_fake_account"` // 恒为0 作用尚不明确
IsDeleted int `json:"is_deleted"` // 恒为0 作用尚不明确
}
type VideoStaff struct {
MID int64 `json:"mid"` // 成员MID
Title string `json:"title"` // 成员名称
Name string `json:"name"` // 成员昵称
Face string `json:"face"` // 成员头像URL
VIP *VideoStaffVIP `json:"vip"` // 成员大会员状态
Official *VideoStaffOfficial `json:"official"` // 成员认证信息
Follower int `json:"follower"` // 成员粉丝数
}
type VideoStaffVIP struct {
Type int `json:"type"` // 成员会员类型 (0:无 1:月会员 2:年会员)
Status int `json:"status"` // 会员状态 (0:无 1:有)
ThemeType int `json:"theme_type"` // 恒为0
}
type VideoStaffOfficial struct {
// 成员认证级别
//
// 0为无
//
// 1 2 7为个人认证
//
// 3 4 5 6为机构认证
Role int `json:"role"`
Title string `json:"title"` // 成员认证名,Role无时该值为空
Desc string `json:"desc"` // 成员认证备注,Role无时该值为空
Type int `json:"type"` // 成员认证类型 (-1:无 0:有)
}
type VideoUserGarb struct {
URLImageAniCut string // 一串URL,未知
}
type VideoTag struct {
TagID int64 `json:"tag_id"` // TAG ID
TagName string `json:"tag_name"` // TAG名称
Cover string `json:"cover"` // TAG图片URL
HeadCover string `json:"head_cover"` // TAG页面头图URL
Content string `json:"content"` // TAG介绍
ShortContent string `json:"short_content"` // TAG简介
Type int `json:"type"` // 未知
State int `json:"state"` // 恒为0
Ctime int64 `json:"ctime"` // 创建时间 时间戳(已经为东八区)
Count *VideoTagCount `json:"count"` // 状态数
IsAtten int `json:"is_atten"` // 是否关注 0:未关注 1:已关注 需要登录(Cookie) 未登录为0
Likes int `json:"likes"` // 恒为0 作用尚不明确
Hates int `json:"hates"` // 恒为0 作用尚不明确
Attribute int `json:"attribute"` // 恒为0 作用尚不明确
Liked int `json:"liked"` // 是否已经点赞 0:未点赞 1:已点赞 需要登录(Cookie) 未登录为0
Hated int `json:"hated"` // 是否已经点踩 0:未点踩 1:已点踩 需要登录(Cookie) 未登录为0
}
type VideoTagCount struct {
View int `json:"view"` // 恒为0 作用尚不明确
Use int `json:"use"` // 被使用次数
Atten int `json:"atten"` // TAG关注数
}
type VideoPlayURLResult struct {
From string `json:"from"` // local 作用尚不明确
Result string `json:"result"` // suee 作用尚不明确
Message string `json:"message"` // 空 作用尚不明确
Quality int `json:"quality"` // 当前的视频分辨率代码
Format string `json:"format"` // 当前请求的视频格式
TimeLength int64 `json:"timelength"` // 视频长度 单位为毫秒 不同分辨率/格式可能有略微差异
AcceptFormat string `json:"accept_format"` // 视频支持的全部格式 每项用,分隔
AcceptDescription []string `json:"accept_description"` // 视频支持的分辨率列表
AcceptQuality []int `json:"accept_quality"` // 视频支持的分辨率代码列表
VideoCodecid int `json:"video_codecid"` // 7 作用尚不明确
SeekParam string `json:"seek_param"` // start 作用尚不明确
SeekType string `json:"seek_type"` // ??? 作用尚不明确
DURL []*VideoPlayDURL `json:"durl"` // 视频分段 注:仅flv/mp4存在此项
Dash *VideoPlayURLDash `json:"dash"` // dash音视频流信息 注:仅dash存在此项
SupportFormats []*VideoPlayURLFormat `json:"support_formats"` // 支持的分辨率的详细信息
}
type VideoPlayDURL struct {
Order int `json:"order"` // 视频分段序号 某些视频会分为多个片段(从1顺序增长)
Length int64 `json:"length"` // 视频长度 单位为毫秒
Size int64 `json:"size"` // 视频大小 单位为Byte
Ahead string `json:"ahead"` // 空 作用尚不明确
Vhead string `json:"vhead"` // 空 作用尚不明确
URL string `json:"url"` // 视频流url 注:url内容存在转义符 有效时间为120min
BackupURL []string `json:"backup_url"` // 备用视频流
}
type VideoPlayURLFormat struct {
Quality int `json:"quality"` // 清晰度标识
Format string `json:"format"` // 视频格式
NewDescription string `json:"new_description"` // 新版清晰度描述
DisplayDesc string `json:"display_desc"` // 显示名称
Superscript string `json:"superscript"` // 角标?
}
type VideoPlayURLDash struct {
Duration int64 `json:"duration"` // 作用尚不明确
MinBufferTime float64 `json:"min_buffer_time"` // 1.5 作用尚不明确
Video []*VideoPlayURLDashMedia `json:"video"` // 视频流信息
Audio []*VideoPlayURLDashMedia `json:"audio"` // 音频流信息
}
type VideoPlayURLDashMedia struct {
ID int `json:"id"` // 音视频清晰度代码
BaseURL string `json:"base_url"` // 默认视频/音频流url 有效时间为120min
BackupURL []string `json:"backup_url"` // 备用视频/音频流url
Bandwidth int64 `json:"bandwidth"` // 视频/音频所需最低带宽
MimeType string `json:"mime_type"` // 视频/音频格式类型
Codecs string `json:"codecs"` // 编码/音频类型
Width int `json:"width"` // 视频宽度 单位为像素 仅视频有效
Height int `json:"height"` // 视频高度 单位为像素 仅视频有效
FrameRate string `json:"frame_rate"` // 视频帧率 仅视频有效
Sar string `json:"sar"` //1:1 作用尚不明确
StartWithSap int `json:"start_with_sap"` // 1 作用尚不明确
SegmentBase *VideoPlayURLDashMediaSeg `json:"segment_base"` // ??? 作用尚不明确
Codecid int `json:"codecid"` // 7 作用尚不明确
}
type VideoPlayURLDashMediaSeg struct {
Initialization string `json:"initialization"` // ??? 作用尚不明确
IndexRange string `json:"index_range"` // ??? 作用尚不明确
}
// VideoShot
//
// 快照的截取时间根据视频画面变化程度决定,各视频不相同
//
// 截取时间表的时间根据视频画面变化程度决定,各每个视频不相同
//
// 截取时间表的时间和快照一一对应,并按照从左到右 从上到下的顺序排布
type VideoShot struct {
// bin格式截取时间表URL
//
// bin数据格式: https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/video/snapshot.md#bin%E6%A0%BC%E5%BC%8F%E6%88%AA%E5%8F%96%E6%97%B6%E9%97%B4%E8%A1%A8
Pvdata string `json:"pvdata"`
ImgXLen int `json:"img_x_len"` // 每行图片数 一般为10
ImgYLen int `json:"img_y_len"` // 每列图片数 一般为10
ImgXSize int `json:"img_x_size"` // 每张图片长 一般为160
ImgYSize int `json:"img_y_size"` // 每张图片宽 一般为90
Image []string `json:"image"` // 图片拼版URL 第一张拼版占满时延续第二张
Index []int `json:"index"` // json数组格式截取时间表 单位为秒
}
type SearchAll struct {
SEID string
Page int
PageSize int
NumResults int
NumPages int
SuggestKeyword string
RqtType string
CostTime *SearchCostTime
// ExpList 作用尚不明确
EggHit int
PageInfo *SearchPage
TopTlist *SearchTopTlist
ShowColumn int
ShowModuleList []string
Result *SearchResult
}
type SearchCostTime struct {
ParamsCheck string `json:"params_check"`
IllegalHandler string `json:"illegal_handler"`
AsResponseFormat string `json:"as_response_format"`
AsRequest string `json:"as_request"`
SaveCache string `json:"save_cache"`
DeserializeResponse string `json:"deserialize_response"`
AsRequestFormat string `json:"as_request_format"`
Total string `json:"total"`
MainHandler string `json:"main_handler"`
}
type SearchPage struct {
PGC *SearchPageInfo `json:"pgc"` //
LiveRoom *SearchPageInfo `json:"live_room"` // 直播数
Photo *SearchPageInfo `json:"photo"` // 相簿数
Topic *SearchPageInfo `json:"topic"` // 话题数
Video *SearchPageInfo `json:"video"` // 视频数
User *SearchPageInfo `json:"user"` //
BiliUser *SearchPageInfo `json:"bili_user"` // 用户数
MediaFT *SearchPageInfo `json:"media_ft"` // 电影数
Article *SearchPageInfo `json:"article"` // 专栏数
MediaBangumi *SearchPageInfo `json:"media_bangumi"` // 番剧数
Special *SearchPageInfo `json:"special"` //
OperationCard *SearchPageInfo `json:"operation_card"` //
UpUser *SearchPageInfo `json:"upuser"` //
Movie *SearchPageInfo `json:"movie"` //
LiveAll *SearchPageInfo `json:"live_all"` //
TV *SearchPageInfo `json:"tv"` //
Live *SearchPageInfo `json:"live"` // 直播间数
Bangumi *SearchPageInfo `json:"bangumi"` //
Activity *SearchPageInfo `json:"activity"` // 活动数
LiveMaster *SearchPageInfo `json:"live_master"` //
LiveUser *SearchPageInfo `json:"live_user"` // 主播数
}
type SearchPageInfo struct {
NumResults int `json:"numResults"` // 总计数量
Total int `json:"total"` // 总计数量
Pages int `json:"pages"` // 分页数量
}
type SearchTopTlist struct {
PGC int `json:"pgc"` //
LiveRoom int `json:"live_room"` // 直播数
Photo int `json:"photo"` // 相簿数
Topic int `json:"topic"` // 话题数
Video int `json:"video"` // 视频数
User int `json:"user"` //
BiliUser int `json:"bili_user"` // 用户数
MediaFT int `json:"media_ft"` // 电影数
Article int `json:"article"` // 专栏数
MediaBangumi int `json:"media_bangumi"` // 番剧数
Special int `json:"special"` //
Card int `json:"card"` //
OperationCard int `json:"operation_card"` //
UpUser int `json:"upuser"` //
Movie int `json:"movie"` //
LiveAll int `json:"live_all"` //
TV int `json:"tv"` //
Live int `json:"live"` // 直播间数 //
Bangumi int `json:"bangumi"` //
Activity int `json:"activity"` // 活动数
LiveMaster int `json:"live_master"` //
LiveUser int `json:"live_user"` // 主播数
}
// SearchResult 在原搜索接口进行魔改,方便使用
type SearchResult struct {
ResultType string
Video []*SearchResultVideo
Media []*SearchResultMedia
}
type SearchResultVideo struct {
Type string `json:"type"` // 结果类型 固定为video
ID int64 `json:"id"` // 稿件avid
Author string `json:"author"` // UP主昵称
MID int64 `json:"mid"` // UP主mid
TypeID string `json:"typeid"` // 视频分区tid
TypeName string `json:"typename"` // 视频子分区名
ArcURL string `json:"arcurl"` // 视频重定向URL
AID int64 `json:"aid"` // 稿件avid
BVID string `json:"bvid"` // 稿件bvid
Title string `json:"title"` // 视频标题 关键字用xml标签<em class="keyword">标注
Description string `json:"description"` // 视频简介
ArcRank string `json:"arcrank"` // 恒为0 作用尚不明确
Pic string `json:"pic"` // 视频封面url
Play int64 `json:"play"` // 视频播放量
VideoReview int `json:"video_review"` // 视频弹幕量
Favorites int `json:"favorites"` // 视频收藏数
Tag string `json:"tag"` // 视频TAG 每项TAG用,分隔
Review int `json:"review"` // 视频评论数
PubDate int64 `json:"pubdate"` // 视频投稿时间 时间戳(东八区)
SendDate int64 `json:"senddate"` // 视频发布时间 时间戳(东八区)
Duration string `json:"duration"` // 视频时长 格式: HH:MM
BadgePay bool `json:"badgepay"` // 恒为false 作用尚不明确
HitColumns []string `json:"hit_columns"` // 关键字匹配类型
ViewType string `json:"view_type"` // 空 作用尚不明确
IsPay int `json:"is_pay"` // 空 作用尚不明确
IsUnionVideo int `json:"is_union_video"` // 是否为合作视频 0:否 1:是
RankScore int64 `json:"rank_score"` // 结果排序量化值
// RecTags string NULL
// NewRecTags []string 空数组
}
type SearchResultMedia struct {
Type string `json:"type"` // 结果类型 (media_bangumi:番剧 media_ft:影视)
MediaID int64 `json:"media_id"` // 剧集mdid
SeasonID int64 `json:"season_id"` // 剧集ssid
Title string `json:"title"` // 剧集标题 关键字用xml标签<em class="keyword">标注
OrgTitle string `json:"org_title"` // 剧集原名 关键字用xml标签<em class="keyword">标注 可为空
Cover string `json:"cover"` // 剧集封面url
MediaType int `json:"media_type"` // 剧集类型 (1:番剧 2:电影 3:纪录片 4:国创 5:电视剧 7:综艺)
Areas string `json:"areas"` // 地区
Styles string `json:"styles"` // 风格
CV string `json:"cv"` // 声优
Staff string `json:"staff"` // 制作组
PlayState int `json:"play_state"` // 恒为0 作用尚不明确
GotoURL string `json:"goto_url"` // 剧集重定向url
Desc string `json:"desc"` // 简介
Corner int `json:"corner"` // 角标有无 2:无 13:有
PubTime int64 `json:"pub_time"` // 开播时间 时间戳(东八区)
MediaMode int `json:"media_mode"` // 恒为2 作用尚不明确
IsAvid bool `json:"is_avid"` // 恒为false 作用尚不明确
FixPubTimeStr string `json:"fix_pub_time_str"` // 开播时间重写信息 优先级高于pubtime 可为空
MediaScore *SearchResultMediaScore `json:"media_score"` // 评分信息 有效时:obj 无效时:null
HitColumns []string `json:"hit_columns"` // 关键字匹配类型 有效时:array 无效时:null
AllNetName string `json:"all_net_name"` // 空 作用尚不明确
AllNetIcon string `json:"all_net_icon"` // 空 作用尚不明确
AllNetURL string `json:"all_net_url"` // 空 作用尚不明确
AngleTitle string `json:"angle_title"` // 角标内容
AngleColor int `json:"angle_color"` // 角标颜色 (0:红色 2:橙色)
DisplayInfo []*SearchResultMediaDisplayInfo `json:"display_info"` // 剧集标志信息
HitEpids string `json:"hit_epids"` // 关键字匹配分集标题的分集epid 多个用,分隔
PgcSeasonID int64 `json:"pgc_season_id"` // 剧集ssid
SeasonType int `json:"season_type"` // 剧集类型 (1:番剧 2:电影 3:纪录片 4:国创 5:电视剧 7:综艺)
SeasonTypeName string `json:"season_type_name"` // 剧集类型文字
SelectionStyle string `json:"selection_style"` // 分集选择按钮风格 horizontal:横排式 grid:按钮式
EpSize int `json:"ep_size"` // 结果匹配的分集数
URL string `json:"url"` // 剧集重定向url
ButtonText string `json:"button_text"` // 观看按钮文字
IsFollow int `json:"is_follow"` // 是否追番 需要登录(SESSDATA) 未登录则恒为0 (0:否 1:是)
IsSelection int `json:"is_selection"` // 恒为1 作用尚不明确
Eps []*SearchResultEp `json:"eps"` // 结果匹配的分集信息
Badges []*SearchResultEpBadge `json:"badges"` // 剧集标志信息
}
type SearchResultMediaScore struct {
UserCount int `json:"user_count"` // 总计评分人数
Score float64 `json:"score"` // 评分
}
type SearchResultMediaDisplayInfo struct {
BgColorNight string `json:"bg_color_night"` // 夜间背景颜色 颜色码 例如:#BB5B76
Text string `json:"text"` // 剧集标志 颜色码 例如:#BB5B76
BorderColor string `json:"border_color"` // 背景颜色 颜色码 例如:#BB5B76
BgStyle int `json:"bg_style"` // 恒为1
TextColor string `json:"text_color"` // 文字颜色 颜色码 例如:#BB5B76
BgColor string `json:"bg_color"` // 背景颜色 颜色码 例如:#BB5B76
TextColorNight string `json:"text_color_night"` // 夜间文字颜色 颜色码 例如:#BB5B76
BorderColorNight string `json:"border_color_night"` // 夜间背景颜色 颜色码 例如:#BB5B76
}
type SearchResultEp struct {
ID int64 `json:"id"` // 分集epid
Cover string `json:"cover"` // 分集封面url
Title string `json:"title"` // 完整标题
URL string `json:"url"` // 分集重定向url
ReleaseDate string `json:"release_date"` // 空
Badges *SearchResultEpBadge `json:"badges"` // 分集标志
IndexTitle string `json:"index_title"` // 短标题
LongTitle string `json:"long_title"` // 单集标题
}
type SearchResultEpBadge struct {
Text string `json:"text"` // 剧集标志 颜色码 例如:#BB5B76
TextColor string `json:"text_color"` // 文字颜色 颜色码 例如:#BB5B76
TextColorNight string `json:"text_color_night"` // 夜间文字颜色 颜色码 例如:#BB5B76
BgColor string `json:"bg_color"` // 背景颜色 颜色码 例如:#BB5B76
BgColorNight string `json:"bg_color_night"` // 夜间背景颜色 颜色码 例如:#BB5B76
BorderColor string `json:"border_color"` // 空
BorderColorNight string `json:"border_color_night"` // 空
BgStyle int `json:"bg_style"` // 恒为1
}
type DanmakuPostResult struct {
Action string `json:"action"` // 空 作用尚不明确
Dmid uint64 `json:"dmid"` // 弹幕dmid
DmidStr string `json:"dmid_str"` // 弹幕dmid的字符串形式
Visible bool `json:"visible"` // 作用尚不明确
}
type DanmakuCommandPostResult struct {
// 指令
//
// UP主头像弹幕:#UP#
//
// 关联视频弹幕:#LINK#
//
// 视频内嵌引导关注按钮:#ATTENTION#
Command string `json:"command"`
Content string `json:"content"` // 弹幕内容
Extra json.RawMessage `json:"extra"` // JSON序列,具体请参考 https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/danmaku/action.md#%E5%8F%91%E9%80%81%E4%BA%92%E5%8A%A8%E5%BC%B9%E5%B9%95
ID uint64 `json:"id"` // 弹幕dmid
IDStr string `json:"idStr"` // 弹幕dmid的字符串形式
MID int64 `json:"mid"` // 用户mid
OID int64 `json:"oid"` // 视频cid
Progress int64 `json:"progress"` // 弹幕出现在视频内的时间
// 互动弹幕类型
//
// 1:UP主头像弹幕
//
// 2:关联视频弹幕
//
// 5:视频内嵌引导关注按钮
Type int `json:"type"`
}
type DanmakuGetLikesResult struct {
Likes int `json:"likes"` // 点赞数
// 当前账户是否点赞
//
// 0:未点赞
// 1:已点赞
//
// 需要登录(Cookie或APP)
// 未登录恒为0
UserLike int `json:"user_like"`
IDStr string `json:"id_str"` // 弹幕dmid的字符串形式
}
// DanmakuConfig 未启用的就传入空
type DanmakuConfig struct {
DmSwitch bool `json:"dm_switch"` // 弹幕开关
BlockScroll bool `json:"blockscroll"` // 屏蔽类型-滚动
BlockTop bool `json:"blocktop"` // 屏蔽类型-顶部
BlockBottom bool `json:"blockbottom"` // 屏蔽类型-底部
BlockColor bool `json:"blockcolor"` // 屏蔽类型-彩色
BlockSpecial bool `json:"blockspecial"` // 屏蔽类型-特殊
AISwitch bool `json:"ai_switch"` // 是否打开智能云屏蔽