diff --git a/grpc_api/bilibili/app/playerunite/v1/playerunite.proto b/grpc_api/bilibili/app/playerunite/v1/playerunite.proto index 2f381ba..983b005 100644 --- a/grpc_api/bilibili/app/playerunite/v1/playerunite.proto +++ b/grpc_api/bilibili/app/playerunite/v1/playerunite.proto @@ -22,6 +22,8 @@ message PlayViewUniteReq { string from_spmid = 3; // 补充信息, 如ep_id等 map extra_content = 4; + // + string bvid = 5; } // @@ -42,4 +44,6 @@ message PlayViewUniteReply { bilibili.playershared.QnTrialInfo qn_trial_info = 7; // bilibili.playershared.History history = 8; + // + bilibili.playershared.ViewInfo view_info = 9; } diff --git a/grpc_api/bilibili/app/viewunite/common.proto b/grpc_api/bilibili/app/viewunite/common.proto new file mode 100644 index 0000000..c1f2a7a --- /dev/null +++ b/grpc_api/bilibili/app/viewunite/common.proto @@ -0,0 +1,2009 @@ +syntax = "proto3"; + +package bilibili.app.viewunite.common; + +import "bilibili/dagw/component/avatar/v1/avatar.proto"; +import "bilibili/pagination/pagination.proto"; +import "google/protobuf/any.proto"; + +// +message Activity { + // + int32 id = 1; + // + string title = 2; + // + string link = 3; + // + string cover = 4; + // + int32 type = 5; + // + string ab = 6; + // + string show_name = 7; + // + string picurl = 8; + // + string picurl_selected = 9; + // + string h5_link = 10; + // + string jump_mode = 11; + // + repeated Item items = 12; +} + +// +message ActivityEntrance { + // + string activity_cover = 1; + // + string activity_title = 2; + // + string word_tag = 3; + // + string activity_subtitle = 4; + // + string activity_link = 5; + // + int32 activity_type = 6; + // + int32 reserve_id = 7; + // + int32 status = 8; + // + repeated User upper_list = 9; + // + map report = 10; +} + +// +message ActivityEntranceModule { + // + repeated ActivityEntrance activity_entrance = 1; +} + +// +message ActivityReserve { + // + string title = 1; + // + StatInfo vt = 2; + // + StatInfo danmaku = 3; + // + ReserveButton button = 4; +} + +// +message ActivityResource { + // + string mod_pool_name = 1; + // + string mod_resource_name = 2; +} + +// +message ActivityTab { + // + int32 id = 1; + // + string title = 2; + // + int32 type = 3; + // + string show_name = 4; + // + string picurl = 5; + // + string picurl_selected = 6; + // + string h5_link = 7; + // + string link = 8; + // + int32 link_type = 9; + // + int64 biz_key = 10; + // + string desc = 11; + // + string act_ext = 12; + // + map report = 13; +} + +// +message AggEpCard { + // + string title = 1; + // + string cover = 2; + // + string icon = 3; + // + int32 num = 4; + // + string jump_url = 5; +} + +// +message AggEps { + // + repeated AggEpCard agg_ep_cards = 1; + // + int32 place_index = 2; +} + +// +message AttentionRecommend {} + +// +enum AttentionRelationStatus { + // + ARS_NONE = 0; + // + ARS_N0RELATION = 1; + // + ARS_FOLLOWHIM = 2; + // + ARS_FOLLOWME = 3; + // + ARS_BUDDY = 4; + // + ARS_SPECIAL = 5; + // + ARS_CANCELBLOCK = 6; +} + +// +message Audio { + // + map audio_info = 1; +} + +// +message AudioInfo { + // + string title = 1; + // + string cover_url = 2; + // + int64 song_id = 3; + // + int64 play_count = 4; + // + int64 reply_count = 5; + // + int64 upper_id = 6; + // + string entrance = 7; + // + int64 song_attr = 8; +} + +// +message BadgeInfo { + // + string text = 1; + // + string text_color = 2; + // + string text_color_night = 3; + // + string bg_color = 4; + // + string bg_color_night = 5; + // + string border_color = 6; + // + string border_color_night = 7; + // + int32 bg_style = 8; + // + string img = 9; + // + int32 type = 10; +} + +// +message Banner { + // + string title = 1; + // + repeated RelateItem relate_item = 2; +} + +// +message BizFavParam { + // + int64 season_id = 1; +} + +// +message BizReserveActivityParam { + // + int64 activity_id = 1; + // + string from = 2; + // + string type = 3; + // + int64 oid = 4; + // + int64 reserve_id = 5; +} + +// +message Button { + // + string title = 1; + // + string left_strikethrough_text = 2; + // + string type = 3; + // + string link = 4; + // + BadgeInfo badge_info = 5; + // + string sub_title = 6; +} + +// +message CardBasicInfo { + // + string title = 1; + // + string desc = 2; + // + string cover = 3; + // + string uri = 4; + // + string track_id = 5; + // + string unique_id = 6; + // + int64 from_source_type = 7; + // + string from_source_id = 8; + // + int64 material_id = 9; + // + string cover_gif = 10; + // + Owner author = 11; + // + int64 id = 12; + // + string from = 13; + // + string from_spmid_suffix = 14; + // + string report_flow_data = 15; +} + +// +message CardStyle { + // + int32 id = 1; + // + string name = 2; +} + +// +message Celebrity { + // + int32 id = 1; + // + string name = 2; + // + string role = 3; + // + string avatar = 4; + // + string short_desc = 5; + // + string desc = 6; + // + string character_avatar = 7; + // + string link = 8; + // + int64 mid = 9; + // + int32 is_follow = 10; + // + string occupation_name = 11; + // + int32 occupation_type = 12; + // + int32 relate_attr = 13; + // + string small_avatar = 14; + // + map report = 15; +} + +// +message CharacterGroup { + // + string title = 1; + // + repeated Celebrity characters = 2; +} + +// +message Characters { + // + repeated CharacterGroup groups = 1; +} + +// +message CoinExtend { + // + string coin_app_zip_icon = 1; + // + string coin_app_icon_1 = 2; + // + string coin_app_icon_2 = 3; + // + string coin_app_icon_3 = 4; + // + string coin_app_icon_4 = 5; +} + +// +message CombinationEp { + // + int32 id = 1; + // + int32 section_id = 2; + // + string title = 3; + // + int32 can_ord_desc = 4; + // + string more = 5; + // + repeated int32 episode_ids = 6; + // + repeated ViewEpisode episodes = 7; + // + string split_text = 8; + // + Style module_style = 9; + // + repeated SerialSeason serial_season = 10; + // + SectionData section_data = 11; +} + +// +message Covenanter {} + +// +message DeliveryData { + // + string title = 1; + // + Style module_style = 2; + // + string more = 3; + // + oneof data { + // + Activity activity = 4; + // + Characters characters = 5; + // + TheatreHotTopic theatre_hot_topic = 6; + // + AggEps agg_eps = 7; + } + // + int32 id = 8; + // + map report = 9; +} + +// +message Desc { + // + string info = 1; + // + string title = 2; +} + +enum DescType { + // + DescTypeUnknown = 0; + // + DescTypeText = 1; + // + DescTypeAt = 2; +} + +// +message DescV2 { + // + string text = 1; + // + int32 type = 2; + // + string uri = 3; + // + int64 rid = 4; +} + +// +message Dimension { + // + int64 width = 1; + // + int64 height = 2; + // + int64 rotate = 3; +} + +// +message DislikeReasons { + // + int64 id = 1; + // + int64 mid = 2; + // + int32 rid = 3; + // + int64 tag_id = 4; + // + string name = 5; +} + +// +message FollowLayer { + // + Staff staff = 1; + // + Desc desc = 2; + // + map report = 3; +} + +// +message Headline { + // + Label label = 1; + // + string content = 2; +} + +// +message HistoryNode { + // + int64 node_id = 1; + // + string title = 2; + // + int64 cid = 3; +} + +// 荣誉 Banner +message Honor { + // + string icon = 1; + // + string icon_night = 2; + // + string text = 3; + // + string text_extra = 4; + // + string text_color = 5; + // + string text_color_night = 6; + // + string bg_color = 7; + // + string bg_color_night = 8; + // + string url = 9; + // + string url_text = 10; + // + HonorType type = 11; + // + HonorJumpType honor_jump_type = 12; + // + map report = 13; +} + +// 荣誉 Banner 跳转类型 +enum HonorJumpType { + // + HONOR_JUMP_TYPE_UNKNOWN = 0; + // + HONOR_OPEN_URL = 1; + // + HONOR_HALF_SCREEN = 2; +} + +// 荣誉类型 +enum HonorType { + // + HONOR_NONE = 0; + // + PLAYLET = 1; + // 视频存在争议 + ARGUE = 2; + // + NOTICE = 3; + // + GUIDANCE = 4; + // 哔哩哔哩榜 + HONOR_BILI_RANK = 5; + // 周榜 + HONOR_WEEKLY_RANK = 6; + // 日榜 + HONOR_DAILY_RANK = 7; + // + HONOR_CHANNEL = 8; + // 音乐榜? + HONOR_MUSIC = 9; + // + HONOR_REPLY = 10; +} + +// +message IconFont { + // + string name = 1; + // + string text = 2; +} + +// +message Interaction { + // + int64 ep_id = 1; + // + HistoryNode history_node = 2; + // + int64 graph_version = 3; + // + string msg = 4; + // + bool is_interaction = 5; +} + +// +message Item { + // + string link = 1; + // + string cover = 2; +} + +// +message KingPos { + // + bool disable = 1; + // + string icon = 2; + // + KingPositionType type = 3; + // + string disable_toast = 4; + // + string checked_post = 5; + // + oneof extend { + // + LikeExtend like = 6; + // + CoinExtend coin = 7; + } +} + +// +message KingPosition { + // + repeated KingPos king_pos = 1; + // + repeated KingPos extenf = 2; +} + +// +enum KingPositionType { + // + KING_POS_UNSPECIFIED = 0; + // + LIKE = 1; + // + DISLIKE = 2; + // + COIN = 3; + // + FAV = 4; + // + SHARE = 5; + // + CACHE = 6; + // + DANMAKU = 7; +} + +// +message Label { + // + int32 type = 1; + // + string uri = 2; + // + string icon = 3; + // + string icon_night = 4; + // + int64 icon_width = 5; + // + int64 icon_height = 6; + // + string lottie = 7; + // + string lottie_night = 8; +} + +// +message LikeComment { + // + string reply = 1; + // + string title = 2; +} + +// +message LikeExtend { + // + UpLikeImg triple_like = 1; + // + string like_animation = 2; + // + PlayerAnimation player_animation = 3; + // + ActivityResource resource = 4; +} + +// +message Live { + // + int64 mid = 1; + // + int64 room_id = 2; + // + string uri = 3; + // + string endpage_uri = 4; +} + +// 直播预约信息 +message LiveOrder { + // + int64 sid = 1; + // + string text = 2; + // + int64 live_plan_start_time = 3; + // + bool is_follow = 4; + // + int64 follow_count = 5; +} + +// +message Mine { + // + double amount = 1; + // + int32 rank = 2; + // + string msg = 3; +} + +// +message Module { + // + ModuleType type = 1; + // + oneof data { + // + OgvIntroduction ogv_introduction = 2; + // + UgcIntroduction ugc_introduction = 3; + // + KingPosition king_position = 4; + // + Headline head_line = 5; + // + OgvTitle ogv_title = 6; + // + Honor honor = 7; + // + UserList list = 8; + // + Staffs staffs = 9; + // + ActivityReserve activity_reserve = 10; + // + LiveOrder live_order = 11; + // + SectionData section_data = 12; + // + DeliveryData delivery_data = 13; + // + FollowLayer follow_layer = 14; + // + OgvSeasons ogv_seasons = 15; + // + UgcSeasons ugc_season = 16; + // + OgvLiveReserve ogv_live_reserve = 17; + // + CombinationEp combination_ep = 18; + // + Sponsor sponsor = 19; + // + ActivityEntranceModule activity_entrance_module = 20; + // + SerialSeason serial_season = 21; + // + Relates relates = 22; + // + Banner banner = 23; + // + Audio audio = 24; + // + LikeComment like_comment = 25; + // + AttentionRecommend attention_recommend = 26; + // + Covenanter covenanter = 27; + } +} + +enum ModuleType { + // + UNKNOWN = 0; + // + OGV_INTRODUCTION = 1; + // + OGV_TITLE = 2; + // + UGC_HEADLINE = 3; + // + UGC_INTRODUCTION = 4; + // + KING_POSITION = 5; + // + MASTER_USER_LIST = 6; + // + STAFFS = 7; + // + HONOR = 8; + // + OWNER = 9; + // + PAGE = 10; + // + ACTIVITY_RESERVE = 11; + // + LIVE_ORDER = 12; + // + POSITIVE = 13; + // + SECTION = 14; + // + RELATE = 15; + // + PUGV = 16; + // + COLLECTION_CARD = 17; + // + ACTIVITY = 18; + // + CHARACTER = 19; + // + FOLLOW_LAYER = 20; + // + OGV_SEASONS = 21; + // + UGC_SEASON = 22; + // + OGV_LIVE_RESERVE = 23; + // + COMBINATION_EPISODE = 24; + // + SPONSOR = 25; + // + ACTIVITY_ENTRANCE = 26; + // + THEATRE_HOT_TOPIC = 27; + // + RELATED_RECOMMEND = 28; + // + PAY_BAR = 29; + // + BANNER = 30; + // + AUDIO = 31; + // + AGG_CARD = 32; + // + SINGLE_EP = 33; + // + LIKE_COMMENT = 34; + // + ATTENTION_RECOMMEND = 35; + // + COVENANTER = 36; +} + +// +message MultiViewEp { + // + int64 ep_id =1; +} + +// +message NewEp { + // + int32 id = 1; + // + string title = 2; + // + string desc = 3; + // + int32 is_new = 4; + // + string more = 5; + // + string cover = 6; + // + string index_show = 7; +} + +// +enum OccupationType { + // + STAFF = 0; + // + CAST = 1; +} + +// +message OfficialVerify { + // + int32 type = 1; + // + string desc = 2; +} + +// +message OgvIntroduction { + // + string followers = 1; + // + string score = 2; + // + StatInfo play_data = 3; +} + +// +message OgvLiveReserve { + // + int64 reserve_id = 1; + // + string title = 2; + // + string icon = 3; + // + string night_icon = 4; + // + string click_button = 5; + // + string link = 6; + // + int32 follow_video_is_reserve_live = 7; + // + string bg_color = 8; + // + string night_bg_color = 9; + // + string text_color = 10; + // + string night_text_color = 11; + // + string bt_bg_color = 12; + // + string bt_frame_color = 13; + // + string night_bt_bg_color = 14; + // + string night_bt_frame_color = 15; + // + int32 active_type = 16; + // + int32 reserve_status = 17; + // + string bt_text_color = 18; + // + string night_bt_text_color = 19; + // + map report = 20; +} + +// +message OgvSeasons { + // + string title = 1; + // + repeated SerialSeason serial_season = 2; + // + SerialSeasonCoverStyle style = 3; +} + +// +message OgvTitle { + // + string title = 1; + // + BadgeInfo badge_info = 2; + // + int32 is_show_btn_animation = 3; + // + int32 follow_video_is_reserve_live = 4; + // + int64 reserve_id = 5; + // + TitleDeliveryButton title_delivery_button = 6; +} + +// +message Owner { + bilibili.dagw.component.avatar.v1.AvatarItem avatar = 1; + // + string url = 2; + // + string title = 3; + // + string fans = 4; + // + string arc_count = 5; + // + int32 attention = 6; + // + int32 attention_relation = 7; + // + string pub_location = 8; + // + Vip vip = 9; + // + string title_url = 10; + // + string face = 11; + // + int64 mid = 12; + // + OfficialVerify official_verify = 13; + // + Live live = 14; + // + int64 fans_num = 15; + // + repeated int64 assists = 16; +} + +// +message Page { + // + int64 cid = 1; + // + string part = 2; + // + int64 duration = 3; + // + string desc = 4; + // + Dimension dimension = 5; + // + string dl_title = 6; + // + string dl_subtitle = 7; +} + +// +message Pendant { + // + int32 pid = 1; + // + string name = 2; + // + string image = 3; +} + +// +message PlayerAnimation { + // + string player_icon = 1; + // + string player_triple_icon = 2; +} + +// +message PointActivity { + // + string tip = 1; + // + string content = 2; + // + string link = 3; +} + +// +message PowerIconStyle { + // + string icon_url = 1; + // + string icon_night_url = 2; + // + int64 icon_width = 3; + // + int64 icon_height = 4; +} + +// +message Rank { + // + string icon = 1; + // + string icon_night = 2; + // + string text = 3; +} + +// +message RankInfo { + // + string icon_url_night = 1; + // + string icon_url_day = 2; + // + string bkg_night_color = 3; + // + string bkg_day_color = 4; + // + string font_night_color = 5; + // + string font_day_color = 6; + // + string rank_content = 7; + // + string rank_link = 8; +} + +// +message Rating { + // + string score = 1; + // + int32 count = 2; +} + +// 视频详情下方推荐卡子类型: 普通视频 +message RelateAVCard { + // + int64 duration = 1; + // + int64 cid = 2; + // + Dimension dimension = 3; + // + Stat stat = 4; + // + string jump_url = 5; + // + bool show_up_name = 6; + // + BadgeInfo rcmd_reason = 7; +} + +// 视频详情下方推荐卡子类型: 番剧(小卡?) +message RelateBangumiAvCard { + // + BadgeInfo badge = 1; + // + Stat stat = 2; + // + Rating rating = 3; +} + +// 视频详情下方推荐卡子类型: 番剧(大卡?) +message RelateBangumiCard { + // + int32 season_id = 1; + // + int32 season_type = 2; + // + NewEp new_ep = 3; + // + Stat stat = 4; + // + Rating rating = 5; + // + string rcmd_reason = 6; + // + BadgeInfo badge_info = 7; + // + string goto_type = 8; + // + map report = 9; +} + +// 视频详情下方推荐卡子类型: 番剧集? +message RelateBangumiResourceCard { + // + int32 type = 1; + // + string scover = 2; + // + int32 re_type = 3; + // + string re_value = 4; + // + string corner = 5; + // + int32 card = 6; + // + string siz = 7; + // + int32 position = 8; + // + string rcmd_reason = 9; + // + string label = 10; + // + map report = 11; + // + string goto_type = 12; +} + +// 视频详情下方推荐卡子类型: UGC 番剧? +message RelateBangumiUgcCard { + // + BadgeInfo badge = 1; + // + Stat stat = 2; + // + Rating rating = 3; +} + +// 视频详情下方推荐卡 +message RelateCard { + // + RelateCardType relate_card_type = 1; + // + oneof card { + // + RelateAVCard av = 2; + // + RelateBangumiCard bangumi = 3; + // + RelateBangumiResourceCard resource = 4; + // + RelateGameCard game = 5; + // + RelateCMCard cm = 6; + // + RelateLiveCard live = 7; + // + RelateBangumiAvCard bangumi_av = 8; + // + RelatedAICard ai_card = 9; + // + RelateBangumiUgcCard bangumi_ugc = 13; + // + RelateSpecial special = 14; + } + // + RelateThreePoint three_point = 10; + // + google.protobuf.Any cm_stock = 11; + // + CardBasicInfo basic_info = 12; +} + +// 视频详情下方推荐卡子类型 +enum RelateCardType { + // + CARD_TYPE_UNKNOWN = 0; + // + AV = 1; + // + BANGUMI = 2; + // + RESOURCE = 3; + // + GAME = 4; + // + CM = 5; + // + LIVE = 6; + // + AI_RECOMMEND = 7; + // + BANGUMI_AV = 8; + // + BANGUMI_UGC = 9; + // + SPECIAL = 10; +} + +// 视频详情下方推荐卡子类型: 广告推广 +message RelateCMCard { + // + int64 aid = 1; + // + google.protobuf.Any source_content = 2; + // + int64 duration = 3; + // + Stat stat = 4; +} + +// 视频详情下方推荐配置 +message RelateConfig { + // + int64 valid_show_m = 1; + // + int64 valid_show_n = 2; + // + bilibili.pagination.Pagination pagination = 3; + // + bool can_load_more = 4; +} + +// 视频详情下方推荐卡子类型: AI 推荐? +message RelatedAICard { + // + int64 aid = 1; + // + int64 duration = 2; + // + Staff up_info = 3; + // + Stat stat = 4; + // + map report = 5; + // + string goto_type = 6; +} + +// 视频详情下方推荐卡子类型: 点击不喜欢后占位卡片 +message RelateDislike { + // + string title = 1; + // + string sub_title = 2; + // + string closed_sub_title = 3; + // + string paste_text = 4; + // + string closed_paste_text = 5; + // + repeated DislikeReasons dislike_reason = 6; + // + string toast = 7; + // + string closed_toast = 8; +} + +// 视频详情下方推荐卡子类型: 游戏推广 +message RelateGameCard { + // + int64 reserve_status = 1; + // + string reserve_status_text = 2; + // + string reserve = 3; + // + float rating = 4; + // + string tag_name = 5; + // + RankInfo rank_info = 6; + // + Button pack_info = 7; + // + Button notice = 8; + // + PowerIconStyle power_icon_style = 9; + // + string game_rcmd_reason = 10; + // + WikiInfo wiki_info = 11; + // + BadgeInfo badge = 12; +} + +// +message RelateItem { + // + string url = 1; + // + string cover = 2; + // + bool use_default_browser = 3; +} + +// 视频详情下方推荐卡子类型: 直播 +message RelateLiveCard { + // + int64 icon_type = 1; + // + string area_name = 2; + // + int64 watched_show = 3; + // + int64 live_status = 4; +} + +// 视频下方推荐区 +message Relates { + // + repeated RelateCard cards = 1; + // + RelateConfig config = 2; +} + +// 视频详情下方推荐卡子类型: 其他特殊 +message RelateSpecial { + // + BadgeInfo badge = 1; + // + BadgeInfo rcmd_reason = 2; +} + +// 视频详情下方推荐卡右上角三点的内容 +message RelateThreePoint { + // + RelateDislike dislike = 1; + // + RelateDislike feedback = 2; + // + bool watch_later = 3; + // + string dislike_report_data = 4; +} + +// +enum ReserveBizType { + // + BizTypeNone = 0; + // + BizTypeReserveActivity = 1; + // + BizTypeFavSeason = 2; +} + +// +message ReserveButton { + // + bool status = 1; + // + string text = 3; + // + string selected_text = 4; + // + ReserveBizType order_type = 7; + // + oneof order_param { + // + BizReserveActivityParam reserve = 8; + // + BizFavParam fav = 9; + } +} + +// +message Rights { + // + int32 allow_download = 1; + // + int32 allow_review = 2; + // + int32 can_watch = 3; + // + string resource = 4; + // + int32 allow_dm = 5; + // + int32 allow_demand = 6; + // 区域限制 + int32 area_limit = 7; +} + +// +message SeasonHead { + // + string title = 1; + // + string intro = 2; + // + StatInfo vt = 3; + // + StatInfo danmaku = 4; +} + +// +message SeasonShow { + // + string button_text = 1; + // + string join_text = 2; + // + string rule_text = 3; + // + string checkin_text = 4; + // + string checkin_prompt = 5; +} + +enum SeasonType { + // + Unknown = 0; + // + Base = 1; + // + Good = 2; +} + +// +message SectionData { + // + int32 id = 1; + // + int32 section_id = 2; + // + string title = 3; + // + int32 can_ord_desc = 4; + // + string more = 5; + // + repeated int32 episode_ids = 6; + // + repeated ViewEpisode episodes = 7; + // + string split_text = 8; + // + Style module_style = 9; + // + string more_bottom_desc = 10; + // + repeated SerialSeason seasons = 11; + // + Button more_left = 12; + // + int32 type = 13; + // + map report = 14; +} + +// +message SerialSeason { + // + int32 season_id = 1; + // + string title = 2; + // + string season_title = 3; + // + int32 is_new = 4; + // + string cover = 5; + // + string badge = 6; + // + int32 badge_type = 7; + // + BadgeInfo badge_info = 8; + // + string link = 9; + // + string resource = 10; + // + NewEp new_ep = 11; +} + +enum SerialSeasonCoverStyle { + // + TITLE = 0; + // + PICTURE = 1; +} + +// +message SkipRange { + // + int32 start = 1; + // + int32 end = 2; +} + +// +message Sponsor { + // + int64 total = 1; + // + int64 week = 2; + // + repeated SponsorRank rank_list = 3; + // + Mine mine = 4; + // + PointActivity point_activity = 5; + // + repeated Pendant pendants = 6; + // + repeated Threshold threshold = 7; +} + +// +message SponsorRank { + // + int64 uid = 1; + // + string msg = 2; + // + string uname = 3; + // + string face = 4; + // + Vip vip = 5; +} + +// +message Staff { + // + int64 mid = 1; + // + int32 attention = 2; + // + string title = 3; + // + string name = 4; + // + string face = 5; + // + OfficialVerify official = 6; + // + Vip vip = 7; + // + int32 label_style = 8; + // + string fans = 9; +} + +// +message Staffs { + // + repeated Staff staff = 1; + // + string title = 2; +} + +// +message Stat { + // 视频观看时长 + StatInfo vt = 1; + // 弹幕 + StatInfo danmaku = 2; + // 回复数 + int64 reply = 3; + // 收藏数 + int64 fav = 4; + // 硬币数 + int64 coin = 5; + // 分享数 + int64 share = 6; + // 点赞数 + int64 like = 7; + // 关注数 + int64 follow = 8; +} + +// +message StatInfo { + // + int64 value = 1; + // + string text = 2; + // + string pure_text = 3; + // + string icon = 4; +} + +// +message Style { + // + int32 line = 1; + // + int32 hidden = 2; + // + repeated string show_pages = 3; +} + +// +message Tag { + // + int64 tag_id = 1; + // + string name = 2; + // + string uri = 3; + // + string tag_type = 4; +} + +// +message TheatreHotTopic { + // + int64 theatre_id = 1; + // + int64 theatre_set_id = 2; + // + string theatre_title = 3; + // + string background_image_url = 4; + // + string theatre_url = 5; + // + int64 hot_topic_id = 6; + // Original one is hottopicsetid, here renamed + int64 hot_topic_set_id = 7; + // Original one is hottopictitle, here renamed + string hot_topic_title = 8; + // + string hot_topic_url = 9; + // + int32 is_subscribe = 10; + // + map report = 11; +} + +// +message Threshold { + // + int32 bp = 1; + // + int32 days = 2; + // + string days_text = 3; +} + +// +message TitleDeliveryButton { + // + string icon = 1; + // + string title = 2; + // + string link = 3; + // + map report = 4; +} + +// +message UgcEpisode { + // + int64 id = 1; + // + int64 aid = 2; + // + int64 cid = 3; + // + string title = 4; + // + string cover = 5; + // + string cover_right_text = 6; + // + Page page = 7; + // + StatInfo vt = 8; + // + StatInfo danmaku = 9; +} + +// +message UgcIntroduction { + // + repeated Tag tags = 1; + // + Rating rating = 2; + // + Rank rank = 3; + // + repeated ViewMaterial bgm = 4; + // + repeated ViewMaterial sticker = 5; + // + repeated ViewMaterial video_source = 6; + // + int64 pubdate = 7; + // + repeated DescV2 desc = 8; +} + +// +message UgcSeasonActivity { + // + int32 type = 1; + // + int64 oid = 2; + // + int64 activity_id = 3; + // + string title = 4; + // + string intro = 5; + // + int32 day_count = 6; + // + int32 user_count = 7; + // + int64 join_deadline = 8; + // + int64 activity_deadline = 9; + // + int32 checkin_view_time = 10; + // + bool new_activity = 11; + // + UserActivity user_activity = 12; + // + SeasonShow season_show = 13; +} + +// +message UgcSeasons { + // + int64 id = 1; + // + string title = 2; + // + string cover = 3; + // + string supernatant_title = 4; + // + repeated UgcSection section = 5; + // + string union_title = 6; + // + SeasonHead head = 7; + // + int64 ep_count = 8; + // + int32 season_type = 9; + // + UgcSeasonActivity activity = 10; + // + repeated string season_ability = 11; + // + string season_title = 12; +} + +// +message UgcSection { + // + int64 id = 1; + // + string title = 2; + // + int64 type = 3; + // + repeated UgcEpisode episodes = 4; +} + +// +message UpLikeImg { + // + string pre_img = 1; + // + string suc_img = 2; + // + string content = 3; + // + int64 type = 4; +} + +// +message User { + // + int64 mid = 1; + // + string name = 2; + // + string face = 3; + // + int64 follower = 4; +} + +// +message UserActivity { + // + int32 user_state = 1; + // + int64 last_checkin_date = 2; + // + int32 checkin_today = 3; + // + int32 user_day_count = 4; + // + int32 user_view_time = 5; + // + string portrait = 6; +} + +// +message UserList { + // + repeated User list = 1; + // + string title = 2; +} + +// +message UserStatus { + // + int32 show = 1; + // + int32 follow = 2; +} + +// +message ViewEpisode { + // + int64 ep_id = 1; + // + string badge = 2; + // + int32 badge_type = 3; + // + BadgeInfo badge_info = 4; + // + int32 duration = 5; + // + int32 status = 6; + // + string cover = 7; + // + int64 aid = 8; + // + string title = 9; + // + string movie_title = 10; + // + string subtitle = 11; + // + string long_title = 12; + // + string toast_title = 13; + // + int64 cid = 14; + // + string from = 15; + // + string share_url = 16; + // + string share_copy = 17; + // + string short_link = 18; + // + string vid = 19; + // + string release_date = 20; + // + Dimension dimension = 21; + // + Rights rights = 22; + // + Interaction interaction = 23; + // + string bvid = 24; + // + int32 archive_attr = 25; + // + string link = 26; + // + string link_type = 27; + // + string bmid = 28; + // + int64 pub_time = 29; + // + int32 pv = 30; + // + int32 ep_index = 31; + // + int32 section_index = 32; + // + repeated Staff up_infos = 33; + // + Staff up_info = 34; + // + string dialog_type = 35; + // + string toast_type = 36; + // + repeated MultiViewEp multi_view_eps = 37; + // + bool is_sub_view = 38; + // + bool is_view_hide = 39; + // + string jump_link = 40; + // + Stat stat_for_unity = 41; + // + map report = 42; +} + +// +message ViewMaterial { + // + int64 oid = 1; + // + int64 mid = 2; + // + string title = 3; + // + string author = 4; + // + string jump_url = 5; +} + +// +message Vip { + // + int32 type = 1; + // + int32 vip_status = 2; + // + int32 theme_type = 3; + // + VipLabel label = 4; + // + int32 is_vip = 5; +} + +// +message VipLabel { + // + string path = 1; + // + string text = 2; + // + string label_theme = 3; +} + +// +message WikiInfo { + // + string wiki_label = 1; + // + string wiki_url = 2; +} diff --git a/grpc_api/bilibili/app/viewunite/pgcanymodel.proto b/grpc_api/bilibili/app/viewunite/pgcanymodel.proto index 99334a5..b2245c9 100644 --- a/grpc_api/bilibili/app/viewunite/pgcanymodel.proto +++ b/grpc_api/bilibili/app/viewunite/pgcanymodel.proto @@ -2,10 +2,244 @@ syntax = "proto3"; package bilibili.app.viewunite.pgcanymodel; +import "bilibili/app/viewunite/common.proto"; + +// +message Earphone { + // + string product_model = 1; + // + string like_toast_text = 2; + // + string switch_toast_text = 3; + // + string like_toast_voice = 4; +} + +// +message EarphoneConf { + // + repeated Earphone sp_phones = 1; +} + +// +message MultiViewInfo { + // + bool is_multi_view_season = 1; + // + string changing_dance = 2; +} + +// +message OgvData { + // + int32 media_id = 1; + // + int64 season_id = 2; + // + int32 season_type = 3; + // + int32 show_season_type = 4; + // + Rights rights = 5; + // + UserStatus user_status = 6; + // + int64 aid = 7; + // + Stat stat = 8; + // + int32 mode = 9; + // + Publish publish = 10; + // + PlayStrategy play_strategy = 11; + // + MultiViewInfo multi_view_info = 12; + // + OgvSwitch ogv_switch = 13; + // + int32 total_ep = 14; + // + bilibili.app.viewunite.common.NewEp new_ep = 15; + // + Reserve reserve = 16; + // + int32 status = 17; + // + repeated PlayFloatLayerActivity activity_float_layer = 18; + // + EarphoneConf earphone_conf = 19; + // + string cover = 20; + // + string square_cover = 21; + // + string share_url = 22; + // + string short_link = 23; + // + string title = 24; + // + string horizontal_cover169 = 25; + // + string horizontal_cover1610 = 26; + // + int32 has_can_play_ep = 27; +} + +// +message OgvSwitch { + // + int32 reduce_short_title_spacing = 1; + // + int32 merge_position_section_for_cinema = 2; + // + int32 merge_preview_section = 3; + // + int32 enable_show_vt_info = 4; +} + +// 播放器浮层广告(?) +message PlayFloatLayerActivity { + // + int32 id = 1; + // + string title = 2; + // + int32 type = 3; + // + int32 ad_badge_type = 4; + // + string link = 5; + // + string pic_url = 6; + // + string pic_anima_url = 7; + // + bilibili.app.viewunite.common.BadgeInfo badge = 8; + // + int64 show_rate_time = 9; +} + +// +message PlayStrategy { + // + repeated string strategies = 1; + // + int32 recommend_show_strategy = 2; + // + string auto_play_toast = 3; +} + +// +message Publish { + // + string pub_time = 1; + // + string pub_time_show = 2; + // + int32 is_started = 3; + // + int32 is_finish = 4; + // + int32 weekday = 5; + // + string release_date_show = 6; + // + string time_length_show = 7; + // + int32 unknow_pub_date = 8; + // + string update_info_desc = 9; +} + +// +message Reserve { + // + repeated bilibili.app.viewunite.common.ViewEpisode episodes = 1; + // + string tip = 2; +} + +// 权限相关信息 +message Rights { + // + int32 allow_download = 1; + // + int32 allow_review = 2; + // + int32 can_watch = 3; + // + int32 is_cover_show = 4; + // + string copyright = 5; + // + string copyright_name = 6; + // + int32 allow_bp = 7; + // + int32 area_limit = 8; + // + int32 is_preview = 9; + // + int32 ban_area_show = 10; + // + int32 watch_platform = 11; + // + int32 allow_bp_rank = 12; + // + string resource = 13; + // + int32 forbid_pre = 14; + // + int32 only_vip_download = 15; + // + int32 new_allow_download = 16; +} + +// +message Stat { + // + string followers = 1; + // + bilibili.app.viewunite.common.StatInfo play_data = 2; +} + +// +message UserStatus { + // + int32 show = 1; + // + int32 follow = 2; + // + int32 follow_status = 3; + // + int32 pay = 4; + // + int32 sponsor = 5; + // + int32 vip = 6; + // vip 是否被冻结 + int32 vip_frozen = 7; + // + WatchProgress watch_progress = 8; +} + // message ViewPgcAny { // - uint64 season_id = 1; + OgvData ogv_data = 1; // - int32 season_type = 2; -} \ No newline at end of file + map all_up_info = 2; +} + +// +message WatchProgress { + // + int64 last_ep_id = 1; + // + string last_ep_index = 2; + // + int64 last_time = 3; +} diff --git a/grpc_api/bilibili/app/viewunite/ugcanymodel.proto b/grpc_api/bilibili/app/viewunite/ugcanymodel.proto index 0b671f9..1cf1a44 100644 --- a/grpc_api/bilibili/app/viewunite/ugcanymodel.proto +++ b/grpc_api/bilibili/app/viewunite/ugcanymodel.proto @@ -2,9 +2,133 @@ syntax = "proto3"; package bilibili.app.viewunite.ugcanymodel; +import "bilibili/app/viewunite/common.proto"; + // -message ViewUgcAny { - +message Dislike { + // + string title = 1; + // + string subtitle = 2; + // + repeated DislikeReason reasons = 3; } -// \ No newline at end of file +// +message DislikeReason { + // + int64 id = 1; + // + int64 mid = 2; + // + int32 rid = 3; + // + int64 tag_id = 4; + // + string name = 5; +} + +// +message ElecRank { + // + repeated ElecRankItem list = 1; + // + int64 count = 2; + // + string text = 3; +} + +// +message ElecRankItem { + // + string avatar = 1; + // + string nickname = 2; + // + string message = 3; + // + int64 mid = 4; +} + +// +message Premiere { + // + PremiereState premiere_state = 1; + // + int64 start_time = 2; + // + int64 service_time = 3; + // + int64 room_id = 4; +} + +// +message PremiereReserve { + // + int64 reserve_id = 1; + // + int64 count = 2; + // + bool is_follow = 3; +} + +// +message PremiereResource { + // + Premiere premiere = 1; + // + PremiereReserve reserve = 2; + // + PremiereText text = 3; +} + +enum PremiereState { + // + premiere_none = 0; + // + premiere_before = 1; + // + premiere_in = 2; + // + premiere_after = 3; +} + +// +message PremiereText { + // + string title = 1; + // + string subtitle = 2; + // + string online_text = 3; + // + string online_icon = 4; + // + string online_icon_dark = 5; + // + string intro_title = 6; + // + string intro_icon = 7; + // + string guidance_pulldown = 8; + // + string guidance_entry = 9; + // + string intro_icon_night = 10; +} + +// +message ViewUgcAny { + // + PremiereResource premiere = 1; + // + Dislike dislike = 2; + // + string short_link = 3; + // + string share_subtitle = 4; + // + repeated bilibili.app.viewunite.common.Page pages = 5; + // + ElecRank elec_rank = 6; +} diff --git a/grpc_api/bilibili/app/viewunite/v1/viewunite.proto b/grpc_api/bilibili/app/viewunite/v1/viewunite.proto index 21d848f..ae73048 100644 --- a/grpc_api/bilibili/app/viewunite/v1/viewunite.proto +++ b/grpc_api/bilibili/app/viewunite/v1/viewunite.proto @@ -3,33 +3,82 @@ syntax = "proto3"; package bilibili.app.viewunite.v1; import "bilibili/app/archive/middleware/v1/preload.proto"; - +import "bilibili/app/viewunite/common.proto"; +import "bilibili/pagination/pagination.proto"; import "google/protobuf/any.proto"; -// 统一视频信息接口(7.23启用) +// 统一视频信息接口 (7.41.0+) service View { + // + rpc ArcRefresh(ArcRefreshReq) returns (ArcRefreshReply); + // 视频详情页下方推荐 + rpc RelatesFeed(RelatesFeedReq) returns (RelatesFeedReply); // rpc View(ViewReq) returns (ViewReply); // rpc ViewProgress(ViewProgressReq) returns (ViewProgressReply); } -// 业务类型 -enum ArcType { +// +message ActivityResource { // - UNKNOWN = 0; + string dark_text_color = 1; // - PAGES = 1; + string divider_color = 2; // - SERIES = 2; + string bg_color = 3; // - POSITIVE = 3; + string selected_bg_color = 4; // - SECTION = 4; + string text_color = 5; // - RELATE = 5; + string light_text_color = 6; +} + +// 业务信息 +message Arc { // - PUGV = 6; + int64 aid = 1; + // + int64 cid = 2; + // + int64 duration = 3; + // + bilibili.app.viewunite.common.Stat stat = 4; + // + string bvid = 5; + // + int32 copyright = 6; + // + Rights right = 7; + // + string cover = 8; + // + int64 type_id = 9; + // + string title = 10; +} + +// +message ArcRefreshReply { + // + bilibili.app.viewunite.common.Stat stat = 1; + // + SimpleReqUser req_user = 2; + // + SimpleArc arc = 3; + // + Online online = 4; + // + LikeConfig like_config = 5; +} + +// +message ArcRefreshReq { + // + int64 aid = 1; + // + string bvid = 2; } // @@ -38,26 +87,6 @@ message AttentionCard { repeated ShowTime show_time = 1; } -// -message BadgeType { - // - string text = 1; - // - string text_color = 2; - // - string text_color_night = 3; - // - string bg_color = 4; - // - string bg_color_night = 5; - // - string border_color = 6; - // - string border_color_night = 7; - // - int32 bg_style = 8; -} - // message BizFollowVideoParam { // @@ -90,7 +119,6 @@ message BizReserveGameParam { int64 game_id = 1; } -// enum BizType { // BizTypeNone = 0; @@ -106,6 +134,26 @@ enum BizType { BizTypeReserveGame = 5; } +// +message Button { + // + string title = 1; + // + string uri = 2; + // + string icon = 3; + // + JumpShowType jump_show_type = 4; +} + +// +message ChargingPlus { + // + bool pass = 1; + // + repeated PlayToast play_toast = 2; +} + // message Chronos { // @@ -126,6 +174,16 @@ message ChronosParam { string service_key = 3; } +// 推广信息 +message CM { + // + google.protobuf.Any cm_under_player = 1; + // + google.protobuf.Any ads_control = 2; + // + repeated google.protobuf.Any source_content = 3; +} + // message CommandDm { // @@ -147,7 +205,17 @@ message CommandDm { // string extra = 9; // - string id_str = 10; + string idstr = 10; +} + +// 播放器配置 +message Config { + // + Online online = 1; + // + PlayerIcon player_icon = 2; + // + StoryEntrance story_entrance = 3; } // 视频播放时弹出的卡片 @@ -187,13 +255,9 @@ message ContractText { } // -message Dimension { +message Control { // - int64 width = 1; - // - int64 height = 2; - // - int64 rotate = 3; + bool limit = 1; } // @@ -206,6 +270,53 @@ message DmResource { repeated OperationCard cards = 3; } +enum ECode { + // + CODE_DEFAULT = 0; + // + CODE_404 = 1; + // 青少年限制 + CODE_TEENAGER = 78301; +} + +// +message ECodeConfig { + // + string redirect_url = 1; +} + +// +message IconData { + // + string meta_json = 1; + // + string sprits_img = 2; +} + +// 视频介绍 Tab +message IntroductionTab { + // + string title = 1; + // + repeated bilibili.app.viewunite.common.Module modules = 2; +} + +enum JumpShowType { + // + JST_DEFAULT = 0; + // + JST_FULLSCREEN = 1; + // + JST_HALFSCREEN = 2; +} + +// +message LikeConfig { + bilibili.app.viewunite.common.UpLikeImg triple_like = 1; + // + string like_animation = 2; +} + // 素材详情 message Material { // @@ -260,6 +371,12 @@ enum MaterialSource { BIJIAN = 1; } +// +message Online { + // + bool online_show = 1; +} + // message OperationCard { // @@ -275,13 +392,16 @@ message OperationCard { // OperationCardContent content = 6; // - BizFollowVideoParam follow = 7; - // - BizReserveActivityParam reserve = 8; - // - BizJumpLinkParam jump = 9; - // - BizReserveGameParam game = 10; + oneof param { + // + BizFollowVideoParam follow = 7; + // + BizReserveActivityParam reserve = 8; + // + BizJumpLinkParam jump = 9; + // + BizReserveGameParam game = 10; + } } // @@ -308,6 +428,13 @@ enum PageCategory { ACTIVITY_PAGE = 1; } +// +message PageControl { + Control toast_show = 1; + Control material_show = 2; + Control up_show = 3; +} + // 页面类型 enum PageType { // H5页面(Webview) @@ -316,14 +443,43 @@ enum PageType { NA = 1; } -// 播放策略 -message PlayStrategy { +// +message PlayerIcon { // - repeated string strategies = 1; + string url1 = 1; // - int32 recommend_show_strategy = 2; - // 自动播放时的提示语 - string auto_play_toast = 3; + string hash1 = 2; + // + string url2 = 3; + // + string hash2 = 4; + // + string drag_left_png = 5; + // + string middle_png = 6; + // + string drag_right_png = 7; + // + IconData drag_data = 8; + // + IconData nodrag_data = 9; +} + +// +message PlayToast { + // + PlayToastEnum business = 1; + // + string icon_url = 2; + // + string text = 3; +} + +enum PlayToastEnum { + // + PLAYTOAST_UNKNOWN = 0; + // + PLAYTOAST_CHARGINGPLUS = 1; } // @@ -335,57 +491,93 @@ message PointMaterial { } // -message Selection { +message Relate { // - string title = 1; + int64 device_type = 1; // - repeated SelectionItem item = 2; + bilibili.pagination.Pagination pagination = 2; +} + +// 视频详情页下方推荐 Reply +message RelatesFeedReply { // - ArcType arc_type = 3; + repeated bilibili.app.viewunite.common.RelateCard relates = 1; // - SelectionType selection_type = 4; + bilibili.pagination.Pagination pagination = 2; +} + +// 视频详情页下方推荐 Req +message RelatesFeedReq { + // + int64 aid = 1; + // + string bvid = 2; + // + string from = 3; + // + string spmid = 4; + // + string from_spmid = 5; + // + bilibili.app.archive.middleware.v1.PlayerArgs player_args = 6; + // + bilibili.pagination.Pagination pagination = 7; + // + string session_id = 8; + // + int64 auto_play = 9; + // + string from_track_id = 10; } // -message SelectionItem { +message ReplyStyle { // - uint64 aid = 1; + string badge_url = 1; // - uint64 cid = 2; + string badge_text = 2; // - BadgeType badge_type = 4; - // - string title = 5; - // - string long_title = 6; - // - Dimension dimension = 7; + int64 badge_type = 3; } // -message SelectionModule { +message ReplyTab { // - repeated Selection selection = 1; + ReplyStyle reply_style = 1; // - repeated SerialSeason serial_season = 2; + string title = 2; // - PlayStrategy play_strategy = 3; + TabControl control = 3; } // -enum SelectionType { +message ReqUser { // - LONGTITLE = 0; + int32 favorite = 1; // - SHORTTITLE = 1; + int32 like = 2; + // + int32 coin = 3; + // + int32 fav_season = 4; + // + int32 follow = 5; + // + int32 dislike = 6; + // 头像旁充电按钮 + Button elec_plus_btn = 7; + // + ChargingPlus charging_plus = 8; } // -message SerialSeason { +message Rights { // - uint32 season_id = 1; + bool only_vip_download = 1; // - string season_title = 2; + bool no_reprint = 2; + // + bool download = 3; } // @@ -400,6 +592,82 @@ message ShowTime { double pos_y = 4; } +// +message SimpleArc { + // + int32 copyright = 1; +} + +// +message SimpleReqUser { + // + int32 favorite = 1; + // + int32 like = 2; + // + int32 coin = 3; +} + +// +message StoryEntrance { + // + bool arc_play_story = 1; + // + string story_icon = 2; + // + bool arc_landscape_story = 3; + // + string landscape_icon = 4; + // + bool play_story = 5; +} + +// +message Tab { + // + repeated TabModule tab_module = 1; + // + string tab_bg = 2; + // + TabControl danmaku_entrance = 3; +} + +// 评论区/弹幕 Tab 控制 +message TabControl { + // + bool limit = 1; + // + bool disable = 2; + // + string disable_click_tip = 3; +} + +// +message TabModule { + // + TabType tab_type = 1; + // + oneof tab { + // + IntroductionTab introduction = 2; + // + ReplyTab reply = 3; + // + bilibili.app.viewunite.common.ActivityTab activity_tab = 4; + } +} + +enum TabType { + // + TAB_NONE = 0; + // 详情 Tab + TAB_INTRODUCTION = 1; + // 评论区 Tab + TAB_REPLY = 2; + // OGV 活动信息 Tab + TAB_OGV_ACTIVITY = 3; +} + // enum UnionType { // @@ -478,6 +746,24 @@ message ViewBase { UnionType union_type = 1; // PageType page_type = 2; + // + PageControl control = 3; + // + ActivityResource activity_resource = 4; + // + Config config = 5; +} + +// +message ViewProgressReply { + // + VideoGuide video_guide = 1; + // + Chronos chronos = 2; + // + VideoShot arc_shot = 3; + // + DmResource dm = 4; } // @@ -495,15 +781,27 @@ message ViewProgressReq { } // -message ViewProgressReply { +message ViewReply { // - VideoGuide video_guide = 1; + ViewBase view_base = 1; // - Chronos chronos = 2; + Arc arc = 2; // - VideoShot arc_shot = 3; + ReqUser req_user = 3; // - DmResource dm = 4; + bilibili.app.viewunite.common.Owner owner = 4; + // + Tab tab = 5; + // + google.protobuf.Any supplement = 6; + // + CM cm = 7; + // + ECode ecode = 8; + // + ECodeConfig ecode_config = 9; + // + map report = 10; } // @@ -526,14 +824,12 @@ message ViewReq { string track_id = 8; // map extra_content = 9; + // + string play_mode = 10; + // + Relate relate = 11; + // + string biz_extra = 12; + // + string ad_extra = 13; } - -// -message ViewReply { - // - ViewBase view_base = 1; - // - SelectionModule selection_module = 3; - // 使用 pgcanymodel / ugcanymodel 进行proto any转换成对应业务码结构体 - google.protobuf.Any supplement = 4; -} \ No newline at end of file diff --git a/grpc_api/bilibili/playershared/playershared.proto b/grpc_api/bilibili/playershared/playershared.proto index d36e984..25823ef 100644 --- a/grpc_api/bilibili/playershared/playershared.proto +++ b/grpc_api/bilibili/playershared/playershared.proto @@ -22,6 +22,52 @@ enum ArcType { ARC_TYPE_INTERACT = 1; } +// +message BackgroundInfo { + // + string drawable_color = 1; + // + string drawable_bitmap_url = 2; + // + int32 effects = 3; +} + +// +message BadgeInfo { + // + string text = 1; + // + string bg_color = 2; + // + string bg_color_night = 3; + // + string text_color = 4; + // + GradientColor bg_gradient_color = 5; + // + string img = 6; +} + +// +enum BizType { + // + BIZ_TYPE_UNKNOWN = 0; + // + BIZ_TYPE_UGC = 1; + // + BIZ_TYPE_PGC = 2; + // + BIZ_TYPE_PUGV = 3; +} + +// +message BottomDisplay { + // + TextInfo title = 1; + // + string icon = 2; +} + // 按钮组件 message Button { // 按钮文本 @@ -32,6 +78,79 @@ message Button { map report_params = 3; } +enum ButtonAction { + // + BUTTON_UNKNOWN = 0; + // + PAY = 1; + // + VIP = 2; + // + PACK = 3; + // + LINK = 4; + // + COUPON = 5; + // + DEMAND = 6; + // + DEMAND_PACK = 7; + // + FOLLOW = 8; + // + APPOINTMENT = 9; + // + VIP_FREE = 10; + // + TASK = 11; + // + CHARGINGPLUS = 12; + // + BP = 13; + // + PRE_SELL = 14; +} + +// +message ButtonInfo { + // + string text = 1; + // + string text_color = 2; + // + string text_color_night = 3; + // + string bg_color = 4; + // + string bg_color_night = 5; + // + string link = 6; + // + ButtonAction action_type = 7; + // + BadgeInfo badge_info = 8; + // + Report report = 9; + // + string left_strikethrough_text = 10; + // + TextInfo simple_text_info = 11; + // + string simple_bg_color = 12; + // + string simple_bg_color_night = 13; + // + GradientColor bg_gradient_color = 14; + // + map order_report_params = 15; + // + TaskParam task_param = 16; + // + string frame_color = 17; + // + string icon = 18; +} + // 视频编码 enum CodeType { NOCODE = 0; // 不指定 @@ -40,6 +159,24 @@ enum CodeType { CODEAV1 = 3; // AV1 } +// +message ComprehensiveToast { + // + int32 type = 1; + // + ButtonInfo button = 2; + // + int32 show_style_type = 3; + // + string icon = 4; + // + TextInfo toast_text = 5; + // + Report report = 6; + // + map order_report_params = 7; +} + // 功能类型 enum ConfType { NoType = 0; @@ -146,6 +283,37 @@ message DeviceConf { ConfValue conf_value = 1; } +// +message Dialog { + // + int32 style_type = 1; + // + BackgroundInfo background_info = 2; + // + TextInfo title = 3; + // + TextInfo subtitle = 4; + // + ImageInfo image = 5; + // + repeated ButtonInfo button = 6; + // + ButtonInfo bottom_desc = 7; + // + Report report = 8; + // + int32 count_down_sec = 9; + // + TextInfo right_bottom_desc = 10; + // + repeated BottomDisplay bottom_display = 11; + // + ExtData ext_data = 12; + // + int32 limit_action_type = 13; +} + + // 当前分辨率信息 message Dimension { // 宽 @@ -182,12 +350,38 @@ enum DrmTechType { BILI_DRM = 3; } +enum Effects { + // + EFFECTS_UNKNOWN = 0; + // + GAUSSIAN_BLUR = 1; + // + HALF_ALPHA = 2; +} + // 事件 message Event { // 震动 Shake shake = 1; } +// +message ExtData { + // + ExtDataType type = 1; + // + oneof data { + PlayListInfo play_list_info = 2; + } +} + +enum ExtDataType { + // + EXT_DATA_TYPE_UNKNOWN = 0; + // + PLAY_LIST = 1; +} + // ? 错误码补充信息 message ExtraContent { // @@ -196,6 +390,28 @@ message ExtraContent { int64 disable_code = 2; } +// +message GradientColor { + // + string start_color = 1; + // + string end_color = 2; +} + +// +enum GuideStyle { + // + STYLE_UNKNOWN = 0; + // + HORIZONTAL_IMAGE = 1; + // + VERTICAL_TEXT = 2; + // + SIMPLE_TEXT = 3; + // + CHARGING_TEXT = 4; +} + // 播放历史 message History { // @@ -218,6 +434,13 @@ message HistoryInfo { int64 last_play_aid = 5; } +// +message ImageInfo { + // + string url = 1; +} + + // message Interaction { // @@ -230,6 +453,16 @@ message Interaction { int64 mark = 4; } +// +enum LimitActionType { + // + LAT_UNKNOWN = 0; + // + SHOW_LIMIT_DIALOG = 1; + // + SKIP_CURRENT_EP = 2; +} + // HIRES伴音流信息 message LossLessItem { // 是否为hires @@ -253,7 +486,7 @@ message Node { // message PlayArc { // - VideoType video_type = 1; + BizType video_type = 1; // uint64 aid = 2; // @@ -266,6 +499,10 @@ message PlayArc { Interaction interaction = 6; // Dimension dimension = 7; + // + int64 duration = 8; + // + bool is_preview = 9; } // 播放页信息-响应: PlayArcConf @@ -285,6 +522,49 @@ enum PlayErr { WithMultiDeviceLoginErr = 1; // 管控类型的错误码 } +// +message PlayList { + // + int64 season_id = 1; + // + string title = 2; + // + string cover = 3; + // + string link = 4; + // + BadgeInfo badge_info = 5; +} + +// +message PlayListInfo { + // + repeated PlayList play_list = 2; +} + +// 视频下方广告 Banner +message PromptBar { + // + TextInfo title = 1; + // + TextInfo subtitle = 2; + // + string sub_title_icon = 3; + // + string bg_image = 4; + // + GradientColor bg_gradient_color = 5; + // + repeated ButtonInfo button = 6; + // + Report report = 7; + // + string full_screen_ip_icon = 8; + // + GradientColor full_screen_bg_gradient_color = 9; +} + + // 播放页信息-响应: 高画质试看信息 message QnTrialInfo { // 能否试看高画质 @@ -303,6 +583,16 @@ message QnTrialInfo { Button quality_open_tip_btn = 8; } +// +message Report { + // + string show_event_id = 1; + // + string click_event_id = 2; + // + string extends = 3; +} + // Dash Response, 未使用 message ResponseDash { repeated DashItem video = 1; @@ -348,6 +638,16 @@ message Shake { string file = 1; } +// +enum ShowStyleType { + // + SHOW_STYLE_TYPE_UNKNOWN = 0; + // + SHOW_STYLE_TYPE_ORDINARY = 1; + // + SHOW_STYLE_TYPE_RESIDENT = 2; +} + // 视频流信息 message Stream { // 元数据 @@ -409,6 +709,27 @@ message StreamLimit { string msg = 3; } +// +message TaskParam { + // + string task_type = 1; + // + int64 activity_id = 2; + // + int64 tips_id = 3; +} + +// +message TextInfo { + // + string text = 1; + // + string text_color = 2; + // + string text_color_night = 3; +} + + // Toast信息 message Toast { // toast文案 @@ -417,6 +738,21 @@ message Toast { Button button = 2; } +enum ToastType { + // + TOAST_TYPE_UNKNOWN = 0; + // + VIP_CONTENT_REMIND = 1; + // + VIP_DEFINITION_REMIND = 2; + // + VIP_DEFINITION_GUIDE = 3; + // + OGV_VIDEO_START_TOAST = 4; + // + CHARGING_TOAST = 5; +} + // enum UnsupportScene { // @@ -425,15 +761,6 @@ enum UnsupportScene { PREMIERE = 1; } -// 视频类型 -enum VideoType { - UNKNOWN = 0; - // 用户生成内容 - UGC = 1; - // 专业生产内容 - PGC = 2; -} - // 播放页信息-请求: 音视频VOD message VideoVod { // 视频aid @@ -460,6 +787,16 @@ message VideoVod { uint64 voice_balance = 10; } +// +message ViewInfo { + // + map dialog_map = 1; + // + PromptBar prompt_bar = 2; + // + repeated ComprehensiveToast toasts = 3; +} + // 播放页信息-响应: VOD音视频信息 message VodInfo { // 视频清晰度