TikTokLive.events package

Submodules

TikTokLive.events.base_event module

class TikTokLive.events.base_event.BaseEvent

Bases: object

Base event emitted from the TikTokLiveClient

property as_base64: str

Base64 encoded bytes (empty string if no payload)

Returns:

Base64 encoded bytes

property bytes: bytes | None
classmethod get_type() str

String representation of the class type

Returns:

Class name

property size: int

Size of the payload in bytes

Returns:

Size of the payload

TikTokLive.events.custom_events module

class TikTokLive.events.custom_events.ConnectEvent(unique_id: str, room_id: int)

Bases: BaseEvent

Manually thrown when the first payload is received from the Sign Server

room_id: int
unique_id: str
class TikTokLive.events.custom_events.DisconnectEvent

Bases: BaseEvent

Thrown when disconnecting from a stream

class TikTokLive.events.custom_events.FollowEvent(common: __shared__message__.CommonMessageData | None = <factory>, user: _base__user__.User | None = <factory>, share_type: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, action: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, share_target: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, follow_count: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, share_display_style: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, share_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, signature: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, signature_version: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, show_duration_ms: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, follow_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, target_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: SocialEvent

A SocialEvent, but we give it its own class for clarity’s sake.

class TikTokLive.events.custom_events.LiveEndEvent(common: __shared__message__.CommonMessageData | None = <factory>, action: __im__.ControlAction = <factory>, tips: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, extra: Extra | None = <factory>, perception_dialog: PerceptionDialogInfo | None = <factory>, perception_audience_text: common.Text | None = <factory>, punish_info: PunishEventInfo | None = <factory>, float_text: common.Text | None = <factory>, float_style: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>)

Bases: ControlEvent

Thrown when the stream ends

class TikTokLive.events.custom_events.LivePauseEvent(common: __shared__message__.CommonMessageData | None = <factory>, action: __im__.ControlAction = <factory>, tips: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, extra: Extra | None = <factory>, perception_dialog: PerceptionDialogInfo | None = <factory>, perception_audience_text: common.Text | None = <factory>, punish_info: PunishEventInfo | None = <factory>, float_text: common.Text | None = <factory>, float_style: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>)

Bases: ControlEvent

Thrown when the stream is paused

class TikTokLive.events.custom_events.LiveUnpauseEvent(common: __shared__message__.CommonMessageData | None = <factory>, action: __im__.ControlAction = <factory>, tips: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, extra: Extra | None = <factory>, perception_dialog: PerceptionDialogInfo | None = <factory>, perception_audience_text: common.Text | None = <factory>, punish_info: PunishEventInfo | None = <factory>, float_text: common.Text | None = <factory>, float_style: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>)

Bases: ControlEvent

Thrown when a paused stream is unpaused

class TikTokLive.events.custom_events.ShareEvent(common: __shared__message__.CommonMessageData | None = <factory>, user: _base__user__.User | None = <factory>, share_type: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, action: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, share_target: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, follow_count: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, share_display_style: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, share_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, signature: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, signature_version: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, show_duration_ms: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, follow_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, target_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: SocialEvent

A SocialEvent, but we give it its own class for clarity’s sake.

property users_joined: int | None

The number of people that have joined the stream from the share

Returns:

The number of people that have joined

class TikTokLive.events.custom_events.SuperFanBoxEvent(common: ___shared__message__.CommonMessageData | None = <factory>, envelope_info: MessageRedEnvelopInfo | None = <factory>, display: __data__.EnvelopeDisplay = <factory>)

Bases: EnvelopeEvent

Emitted when a super-fan envelope (gift box) is delivered.

Subset of EnvelopeEvent matched either by common.display_text.display_type carrying ttlive_superfanbox, or by envelope_info.business_type == BusinessTypeSuperFanBox (= 19).

class TikTokLive.events.custom_events.SuperFanEvent(common: __shared__message__.CommonMessageData | None = <factory>, event: BarrageEvent | None = <factory>, msg_type: __im__.BarrageMessageBarrageType = <factory>, icon: _base__.ImageModel | None = <factory>, content: common.Text | None = <factory>, duration: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, background: _base__.ImageModel | None = <factory>, right_icon: _base__.ImageModel | None = <factory>, display_config: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, gallery_gift_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, control: __message__proto__.DisplayControl | None = <factory>, right_label: RightLabel | None = <factory>, use_marquee: bool = <factory>, show_type: __im__.BarrageMessageShowType = <factory>, badge: _base__user__.BadgeStruct | None = <factory>, render_type: __im__.BarrageMessageRenderType = <factory>, left_icon_display_type: __im__.BarrageMessageIconDisplayType = <factory>, ribbon_animation: _base__.ImageModel | None = <factory>, animation_data: AnimationData | None = <factory>, hybrid_url: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, schema: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, sub_type: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, common_barrage_content: common.Text | None = <factory>, user: _base__user__.User | None = <factory>, user_grade_param: BarrageTypeUserGradeParam | None = <factory>, fans_level_param: BarrageTypeFansLevelParam | None = <factory>, subscribe_gift_param: BarrageTypeSubscribeGiftParam | None = <factory>, privilege_log_extra: _base__user__.PrivilegeLogExtra | None = <factory>, gift_gallery_params: BarrageTypeGiftGalleryParam | None = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, ecom_live_param: BarrageTypeEcomLiveParam | None = <factory>)

Bases: BarrageEvent

Emitted when a viewer becomes a super fan of the streamer.

Subset of BarrageEvent matched when content.display_type or common_barrage_content.display_type carries the ttlive_superfan marker (and is not the more specific “joined” variant).

class TikTokLive.events.custom_events.SuperFanJoinEvent(common: __shared__message__.CommonMessageData | None = <factory>, event: BarrageEvent | None = <factory>, msg_type: __im__.BarrageMessageBarrageType = <factory>, icon: _base__.ImageModel | None = <factory>, content: common.Text | None = <factory>, duration: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, background: _base__.ImageModel | None = <factory>, right_icon: _base__.ImageModel | None = <factory>, display_config: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, gallery_gift_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, control: __message__proto__.DisplayControl | None = <factory>, right_label: RightLabel | None = <factory>, use_marquee: bool = <factory>, show_type: __im__.BarrageMessageShowType = <factory>, badge: _base__user__.BadgeStruct | None = <factory>, render_type: __im__.BarrageMessageRenderType = <factory>, left_icon_display_type: __im__.BarrageMessageIconDisplayType = <factory>, ribbon_animation: _base__.ImageModel | None = <factory>, animation_data: AnimationData | None = <factory>, hybrid_url: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, schema: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, sub_type: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, common_barrage_content: common.Text | None = <factory>, user: _base__user__.User | None = <factory>, user_grade_param: BarrageTypeUserGradeParam | None = <factory>, fans_level_param: BarrageTypeFansLevelParam | None = <factory>, subscribe_gift_param: BarrageTypeSubscribeGiftParam | None = <factory>, privilege_log_extra: _base__user__.PrivilegeLogExtra | None = <factory>, gift_gallery_params: BarrageTypeGiftGalleryParam | None = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, ecom_live_param: BarrageTypeEcomLiveParam | None = <factory>)

Bases: BarrageEvent

Emitted when an existing super fan joins the live (distinct from SuperFanEvent which fires when a viewer first becomes a super fan).

Subset of BarrageEvent matched when content.display_type or common_barrage_content.display_type contains ttlive_superfan_commentnotif_superfanjoined.

class TikTokLive.events.custom_events.UnknownEvent(raw: ProtoMessageFetchResult | None = None)

Bases: WebsocketResponseEvent

Triggered when a Webcast message is received that is NOT tracked by TikTokLive yet.

class TikTokLive.events.custom_events.WebsocketResponseEvent(raw: ProtoMessageFetchResult | None = None)

Bases: BaseEvent

Triggered when any event is received from the WebSocket. Carries the raw ProtoMessageFetchResult envelope this event was extracted from on self.raw for callers that want to inspect the underlying response fields (cursor, fetch_interval, ws_params, etc.).

The previous design subclassed ProtoMessageFetchResult directly; that produced empty fields in practice (the constructor was fed the inner per-message envelope, not the outer fetch result) and additionally tripped betterproto2’s metadata machinery whenever the subclass lived in a different module from the upstream definition.

raw: ProtoMessageFetchResult

TikTokLive.events.proto_events module

class TikTokLive.events.proto_events.AccessControlEvent(common: __shared__message__.CommonMessageData | None = <factory>, captcha: AccessControlCaptcha | None = <factory>)

Bases: BaseEvent, WebcastAccessControlMessage

AccessControlEvent.

class TikTokLive.events.proto_events.AccessRecallEvent(common: __shared__message__.CommonMessageData | None = <factory>, status: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, duration: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, end_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, notice: _message__common__.Text | None = <factory>, content: _message__common__.Text | None = <factory>, punish_info: _message__.PunishEventInfo | None = <factory>)

Bases: BaseEvent, WebcastAccessRecallMessage

AccessRecallEvent.

class TikTokLive.events.proto_events.BarrageEvent(*args: Any, common: CommonMessageData | None = <factory>, event: BarrageEvent | None = <factory>, msg_type: BarrageMessageBarrageType = <factory>, icon: ImageModel | None = <factory>, content: Text | None = <factory>, duration: Annotated[int, ~annotated_types.Ge(ge=-9223372036854775808), ~annotated_types.Le(le=9223372036854775807)] = <factory>, background: ImageModel | None = <factory>, right_icon: ImageModel | None = <factory>, display_config: Annotated[int, ~annotated_types.Ge(ge=-2147483648), ~annotated_types.Le(le=2147483647)] = <factory>, gallery_gift_id: Annotated[int, ~annotated_types.Ge(ge=-9223372036854775808), ~annotated_types.Le(le=9223372036854775807)] = <factory>, scene: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>, control: DisplayControl | None = <factory>, right_label: RightLabel | None = <factory>, use_marquee: bool = <factory>, show_type: BarrageMessageShowType = <factory>, badge: BadgeStruct | None = <factory>, render_type: BarrageMessageRenderType = <factory>, left_icon_display_type: BarrageMessageIconDisplayType = <factory>, ribbon_animation: ImageModel | None = <factory>, animation_data: AnimationData | None = <factory>, hybrid_url: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>, schema: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>, sub_type: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>, common_barrage_content: Text | None = <factory>, user: User | None = <factory>, user_grade_param: BarrageTypeUserGradeParam | None = <factory>, fans_level_param: BarrageTypeFansLevelParam | None = <factory>, subscribe_gift_param: BarrageTypeSubscribeGiftParam | None = <factory>, privilege_log_extra: PrivilegeLogExtra | None = <factory>, gift_gallery_params: BarrageTypeGiftGalleryParam | None = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, ecom_live_param: BarrageTypeEcomLiveParam | None = <factory>)

Bases: BaseEvent, WebcastBarrageMessage

BarrageEvent.

user: ExtendedUser | None
class TikTokLive.events.proto_events.BoostCardEvent(common: __shared__message__.CommonMessageData | None = <factory>, cards: list[BoostCard] = <factory>)

Bases: BaseEvent, WebcastBoostCardMessage

BoostCardEvent.

cards: List[BoostCard]
common: CommonMessageData | None
class TikTokLive.events.proto_events.BottomEvent(common: __shared__message__.CommonMessageData | None = <factory>, content: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, show_type: __im__.ShowType = <factory>, text_type: __im__.TextType = <factory>, duration: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, biz_type: __im__.BizType = <factory>, violation_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, punish_info: PunishEventInfo | None = <factory>, style: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, detail_url: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, float_style: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, float_icon_type: _data__.PerceptionDialogIconType = <factory>)

Bases: BaseEvent, WebcastBottomMessage

BottomEvent.

biz_type: BizType
common: CommonMessageData | None
content: str
detail_url: str
duration: int
float_icon_type: PerceptionDialogIconType
float_style: int
punish_info: PunishEventInfo | None
show_type: ShowType
style: int
text_type: TextType
violation_user_id: int
class TikTokLive.events.proto_events.CapsuleEvent(common: __shared__message__.CommonMessageData | None = <factory>, icon: _base__.ImageModel | None = <factory>, desc: common.Text | None = <factory>, button_text: common.Text | None = <factory>, schema: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, biz_params: CapsuleBizParams | None = <factory>, sub_scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, style: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, skip_fc: bool = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, report_action: bool = <factory>)

Bases: BaseEvent, WebcastCapsuleMessage

CapsuleEvent.

biz_params: CapsuleBizParams | None
button_text: Text | None
common: CommonMessageData | None
desc: Text | None
icon: ImageModel | None
public_area_message_common: PublicAreaMessageCommon | None
report_action: bool
scene: str
schema: str
skip_fc: bool
style: int
sub_scene: str
type: int
class TikTokLive.events.proto_events.CaptionEvent(common: __shared__message__.CommonMessageData | None = <factory>, timestamp_ms: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, duration_ms: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, content: list[CaptionContent] = <factory>, sentence_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, sequence_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, definite: bool = <factory>)

Bases: BaseEvent, WebcastCaptionMessage

CaptionEvent.

common: CommonMessageData | None
content: List[CaptionContent]
definite: bool
duration_ms: int
sentence_id: int
sequence_id: int
timestamp_ms: int
class TikTokLive.events.proto_events.CommentEvent(common: __shared__message__.CommonMessageData | None = <factory>, user: _base__user__.User | None = <factory>, content: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, visible_to_sender: bool = <factory>, background_image: _base__.ImageModel | None = <factory>, full_screen_text_color: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, background_image_v2: _base__.ImageModel | None = <factory>, public_area_common: PublicAreaCommon | None = <factory>, gift_image: _base__.ImageModel | None = <factory>, input_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, at_user: _base__user__.User | None = <factory>, emotes: list[_base__emoji__.EmoteWithIndex] = <factory>, content_language: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, msg_filter: _data__.MsgFilter | None = <factory>, quick_chat_scene: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, community_flagged_status: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, user_identity: _data__.UserIdentity | None = <factory>, comment_quality_scores: list[CommentQualityScore] = <factory>, comment_tag: list[__im__.CommentTag] = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, screen_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, signature: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, signature_version: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, ec_streamer_key: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, comment_label_scores: list[CommentLabelScore] = <factory>, mention_user_list: list[typing.Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)]] = <factory>, mention_users: list[_base__user__.User] = <factory>, is_on_comment_tray: bool = <factory>)

Bases: BaseEvent, WebcastChatMessage

CommentEvent.

at_user: ExtendedUser | None
background_image: ImageModel | None
background_image_v2: ImageModel | None
property comment: str

Legacy alias; v2 named this comment, v3 renamed it to content.

comment_label_scores: List[CommentLabelScore]
comment_quality_scores: List[CommentQualityScore]
comment_tag: List[CommentTag]
common: CommonMessageData | None
community_flagged_status: int
content: str
content_language: str
ec_streamer_key: str
emotes: List[EmoteWithIndex]
full_screen_text_color: str
gift_image: ImageModel | None
input_type: int
is_on_comment_tray: bool
mention_user_list: List[int]
mention_users: List[User]
msg_filter: MsgFilter | None
public_area_common: PublicAreaCommon | None
public_area_message_common: PublicAreaMessageCommon | None
quick_chat_scene: int
screen_time: int
signature: str
signature_version: str
user: ExtendedUser | None
user_identity: UserIdentity | None
property user_is_super_fan: bool

Return whether the user is a TikTok super fan.

visible_to_sender: bool
class TikTokLive.events.proto_events.ControlEvent(*args: Any, common: CommonMessageData | None = <factory>, action: ControlAction = <factory>, tips: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>, extra: Extra | None = <factory>, perception_dialog: PerceptionDialogInfo | None = <factory>, perception_audience_text: Text | None = <factory>, punish_info: PunishEventInfo | None = <factory>, float_text: Text | None = <factory>, float_style: Annotated[int, ~annotated_types.Ge(ge=-2147483648), ~annotated_types.Le(le=2147483647)] = <factory>)

Bases: BaseEvent, WebcastControlMessage

ControlEvent.

action: ControlAction = Field(name=None,type=None,default=<dataclasses._MISSING_TYPE object>,default_factory=<dataclasses._MISSING_TYPE object>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({'betterproto': FieldMetadata(number=2, proto_type='enum', map_meta=None, group=None, unwrap=None, optional=False, repeated=False)}),kw_only=<dataclasses._MISSING_TYPE object>,_field_type=None)
common: CommonMessageData | None
extra: Extra | None
float_style: int
float_text: Text | None
perception_audience_text: Text | None
perception_dialog: PerceptionDialogInfo | None
punish_info: PunishEventInfo | None
tips: str
class TikTokLive.events.proto_events.EmoteChatEvent(common: __shared__message__.CommonMessageData | None = <factory>, user: _base__user__.User | None = <factory>, emote_list: list[_base__emoji__.EmoteModel] = <factory>, msg_filter: _data__.MsgFilter | None = <factory>, user_identity: _data__.UserIdentity | None = <factory>)

Bases: BaseEvent, WebcastEmoteChatMessage

EmoteChatEvent.

common: CommonMessageData | None
emote_list: List[EmoteModel]
msg_filter: MsgFilter | None
user: ExtendedUser | None
user_identity: UserIdentity | None
class TikTokLive.events.proto_events.EnvelopeEvent(*args: Any, common: CommonMessageData | None = <factory>, envelope_info: MessageRedEnvelopInfo | None = <factory>, display: EnvelopeDisplay = <factory>)

Bases: BaseEvent, WebcastEnvelopeMessage

EnvelopeEvent.

common: CommonMessageData | None
display: EnvelopeDisplay
envelope_info: MessageRedEnvelopInfo | None
class TikTokLive.events.proto_events.GameRankNotifyEvent(common: __shared__message__.CommonMessageData | None = <factory>, msg_type: __im__.GameRankNotifyMessageMsgType = <factory>, notify_text: common.Text | None = <factory>)

Bases: BaseEvent, WebcastGameRankNotifyMessage

GameRankNotifyEvent.

common: CommonMessageData | None
msg_type: GameRankNotifyMessageMsgType
notify_text: Text | None
class TikTokLive.events.proto_events.GiftBroadcastEvent(common: __shared__message__.CommonMessageData | None = <factory>, from_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, left_icon: _base__.ImageModel | None = <factory>, notify: WebcastRoomNotifyMessage | None = <factory>)

Bases: BaseEvent, WebcastGiftBroadcastMessage

GiftBroadcastEvent.

common: CommonMessageData | None
from_user_id: int
left_icon: ImageModel | None
notify: WebcastRoomNotifyMessage | None
class TikTokLive.events.proto_events.GiftDynamicRestrictionEvent(common: __shared__message__.CommonMessageData | None = <factory>, dynamic_restriction: _gift__model__.DynamicRestriction | None = <factory>)

Bases: BaseEvent, WebcastGiftDynamicRestrictionMessage

GiftDynamicRestrictionEvent.

common: CommonMessageData | None
dynamic_restriction: DynamicRestriction | None
class TikTokLive.events.proto_events.GiftEvent(common: __shared__message__.CommonMessageData | None = <factory>, gift_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, fan_ticket_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, group_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, repeat_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, combo_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, user: _base__user__.User | None = <factory>, to_user: _base__user__.User | None = <factory>, repeat_end: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, text_effect: TextEffect | None = <factory>, group_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, income_taskgifts: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, room_fan_ticket_count: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, priority: GiftImPriority | None = <factory>, gift: __model__.Gift | None = <factory>, log_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, send_type: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, public_area_common: PublicAreaCommon | None = <factory>, tray_display_text: common.Text | None = <factory>, banned_display_effects: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, tray_info: __model__.GiftTrayInfo | None = <factory>, monitor_extra: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, monitor_info: GiftMonitorInfo | None = <factory>, color_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, is_first_sent: bool = <factory>, display_text_for_anchor: common.Text | None = <factory>, display_text_for_audience: common.Text | None = <factory>, order_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, gifts_in_box: __model__.GiftsBoxInfo | None = <factory>, msg_filter: _data__.MsgFilter | None = <factory>, lynx_extra: list[_gift__model__.LynxGiftExtra] = <factory>, user_identity: _data__.UserIdentity | None = <factory>, match_info: _gift__model__.MatchInfo | None = <factory>, linkmic_gift_expression_strategy: _data__.LinkmicGiftExpressionStrategy = <factory>, flying_mic_resources: _gift__model__.FlyingMicResources | None = <factory>, disable_gift_tracking: bool = <factory>, asset: _gift__assets__.AssetsModel | None = <factory>, version: __im__.GiftMessageVersion = <factory>, sponsorship_info: list[SponsorshipInfo] = <factory>, flying_mic_resources_v2: _gift__model__.FlyingMicResources | None = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, signature: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, signature_version: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, multi_generate_message: bool = <factory>, to_member_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, to_member_id_int: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, to_member_nickname: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, interactive_gift_info: InteractiveGiftInfo | None = <factory>, display_duration_ms: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, display_text_for_sender: common.Text | None = <factory>, is_asset_bundle_gift: bool = <factory>, asset_bundle: _gift__model__.AssetBundle | None = <factory>, effect_extra: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastGiftMessage

GiftEvent.

asset: AssetsModel | None
asset_bundle: AssetBundle | None
banned_display_effects: int
color_id: int
combo_count: int
common: CommonMessageData | None
disable_gift_tracking: bool
display_duration_ms: int
display_text_for_anchor: Text | None
display_text_for_audience: Text | None
display_text_for_sender: Text | None
effect_extra: str
fan_ticket_count: int
flying_mic_resources: FlyingMicResources | None
flying_mic_resources_v2: FlyingMicResources | None
gift: ExtendedGift | None
gift_id: int
gifts_in_box: GiftsBoxInfo | None
group_count: int
group_id: int
income_taskgifts: int
interactive_gift_info: InteractiveGiftInfo | None
is_asset_bundle_gift: bool
is_first_sent: bool
linkmic_gift_expression_strategy: LinkmicGiftExpressionStrategy
log_id: str
lynx_extra: List[LynxGiftExtra]
match_info: MatchInfo | None
monitor_extra: str
monitor_info: GiftMonitorInfo | None
msg_filter: MsgFilter | None
multi_generate_message: bool
order_id: str
priority: GiftImPriority | None
public_area_common: PublicAreaCommon | None
public_area_message_common: PublicAreaMessageCommon | None
repeat_count: int
repeat_end: int
room_fan_ticket_count: int
send_type: int
signature: str
signature_version: str
sponsorship_info: List[SponsorshipInfo]
property streaking: bool

Whether the user is currently engaged in a streak. False for non-streakable gifts; otherwise the inverse of repeat_end.

text_effect: TextEffect | None
to_member_id: str
to_member_id_int: int
to_member_nickname: str
to_user: ExtendedUser | None
tray_display_text: Text | None
tray_info: GiftTrayInfo | None
user: ExtendedUser | None
user_identity: UserIdentity | None
property user_is_super_fan: bool

Return whether the user is a TikTok super fan.

property value: float | None

USD value of this gift event. Returns None mid-streak so callers do not double-count; the final non-streaking event carries the full repeat_count.

version: GiftMessageVersion
class TikTokLive.events.proto_events.GiftPanelUpdateEvent(common: __shared__message__.CommonMessageData | None = <factory>, room_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, timestamp: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, gallery_data: GalleryData | None = <factory>, goal_data: GoalData | None = <factory>, room_based_gift_data: RoomBasedGiftData | None = <factory>, strategy_context: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastGiftPanelUpdateMessage

GiftPanelUpdateEvent.

common: CommonMessageData | None
gallery_data: GalleryData | None
goal_data: GoalData | None
room_based_gift_data: RoomBasedGiftData | None
room_id: int
strategy_context: str
timestamp: int
class TikTokLive.events.proto_events.GiftPromptEvent(common: __shared__message__.CommonMessageData | None = <factory>, title: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, body: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, block_num_days: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, order_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, order_timestamp: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, in_user_gifting_addiction_expr: bool = <factory>, pop_up_schema: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastGiftPromptMessage

GiftPromptEvent.

block_num_days: int
body: str
common: CommonMessageData | None
in_user_gifting_addiction_expr: bool
order_id: str
order_timestamp: int
pop_up_schema: str
title: str
class TikTokLive.events.proto_events.GoalUpdateEvent(common: ___shared__message__.CommonMessageData | None = <factory>, indicator: LiveStreamGoalIndicator | None = <factory>, goal: LiveStreamGoal | None = <factory>, contributor_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, contributor_avatar: __base__.ImageModel | None = <factory>, contributor_display_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, contribute_subgoal: LiveStreamSubGoal | None = <factory>, contribute_count: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, contribute_score: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, gift_repeat_count: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, contributor_id_str: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, pin_info: __goal__.GoalPinInfo | None = <factory>, update_source: __data__.GoalMessageSource = <factory>, goal_extra: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastGoalUpdateMessage

GoalUpdateEvent.

common: CommonMessageData | None
contribute_count: int
contribute_score: int
contribute_subgoal: LiveStreamSubGoal | None
contributor_avatar: ImageModel | None
contributor_display_id: str
contributor_id: int
contributor_id_str: str
gift_repeat_count: int
goal: LiveStreamGoal | None
goal_extra: str
indicator: LiveStreamGoalIndicator | None
pin_info: GoalPinInfo | None
update_source: GoalMessageSource
class TikTokLive.events.proto_events.GuideEvent(common: __shared__message__.CommonMessageData | None = <factory>, guide_type: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, gift_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, description: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, duration: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, display_style: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastGuideMessage

GuideEvent.

common: CommonMessageData | None
description: str
display_style: int
duration: int
gift_id: int
guide_type: int
scene: str
class TikTokLive.events.proto_events.HourlyRankRewardEvent(common: __shared__message__.CommonMessageData | None = <factory>, winners: list[HourlyRankRewardInfo] = <factory>)

Bases: BaseEvent, WebcastHourlyRankRewardMessage

HourlyRankRewardEvent.

common: CommonMessageData | None
winners: List[HourlyRankRewardInfo]
class TikTokLive.events.proto_events.ImDeleteEvent(common: __shared__message__.CommonMessageData | None = <factory>, delete_msg_ids: list[typing.Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)]] = <factory>, delete_user_ids: list[typing.Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)]] = <factory>)

Bases: BaseEvent, WebcastImDeleteMessage

ImDeleteEvent.

common: CommonMessageData | None
delete_msg_ids: List[int]
delete_user_ids: List[int]
class TikTokLive.events.proto_events.InRoomBannerEvent(common: __shared__message__.CommonMessageData | None = <factory>)

Bases: BaseEvent, WebcastInRoomBannerMessage

InRoomBannerEvent.

common: CommonMessageData | None
class TikTokLive.events.proto_events.JoinEvent(common: __shared__message__.CommonMessageData | None = <factory>, user: _base__user__.User | None = <factory>, member_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, operator: _base__user__.User | None = <factory>, is_set_to_admin: bool = <factory>, is_top_user: bool = <factory>, rank_score: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, top_user_no: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, enter_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, action: __im__.MemberMessageAction = <factory>, action_description: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, effect_config: bytes = <factory>, pop_str: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, enter_effect_config: EffectConfigBean | None = <factory>, background_image: _base__.ImageModel | None = <factory>, background_image_v2: _base__.ImageModel | None = <factory>, anchor_display_text: common.Text | None = <factory>, client_enter_source: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, client_enter_type: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, client_live_reason: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, action_duration: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, user_share_type: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, display_style: __im__.DisplayStyle = <factory>, admin_permissions: dict[int, int]=<factory>, kick_source: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, allow_preview_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, last_subscription_action: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, live_sub_only_tier: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, live_sub_only_month: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, ec_streamer_key: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, show_wave: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, wave_algorithm_data: WaveAlgorithmData | None = <factory>, hit_ab_status: __im__.HitAbStatus = <factory>)

Bases: BaseEvent, WebcastMemberMessage

JoinEvent.

action: MemberMessageAction
action_description: str
action_duration: int
admin_permissions: Dict[int, int]
allow_preview_time: int
anchor_display_text: Text | None
background_image: ImageModel | None
background_image_v2: ImageModel | None
client_enter_source: str
client_enter_type: str
client_live_reason: str
common: CommonMessageData | None
display_style: DisplayStyle
ec_streamer_key: str
effect_config: bytes
enter_effect_config: EffectConfigBean | None
enter_type: int
hit_ab_status: HitAbStatus
is_set_to_admin: bool
is_top_user: bool
kick_source: int
last_subscription_action: int
live_sub_only_month: int
live_sub_only_tier: int
member_count: int
operator: ExtendedUser | None
pop_str: str
public_area_message_common: PublicAreaMessageCommon | None
rank_score: int
show_wave: int
top_user_no: int
user: ExtendedUser | None
user_id: int
user_share_type: str
wave_algorithm_data: WaveAlgorithmData | None
class TikTokLive.events.proto_events.LikeEvent(common: __shared__message__.CommonMessageData | None = <factory>, count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, total: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, color: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, user: _base__user__.User | None = <factory>, icon: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, icons: list[_base__.ImageModel] = <factory>, specified_display_text: list[SpecifiedDisplayText] = <factory>, effect_cnt: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, like_effect: list[__model__.LikeEffect] = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, room_message_heat_level: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>)

Bases: BaseEvent, WebcastLikeMessage

LikeEvent.

color: int
common: CommonMessageData | None
count: int
effect_cnt: int
icon: str
icons: List[ImageModel]
like_effect: List[LikeEffect]
public_area_message_common: PublicAreaMessageCommon | None
room_message_heat_level: int
specified_display_text: List[SpecifiedDisplayText]
total: int
user: ExtendedUser | None
class TikTokLive.events.proto_events.LinkEvent(common: __shared__message__.CommonMessageData | None = <factory>, message_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, linker_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, invite_content: linker_invite_message.LinkerInviteContent | None = <factory>, reply_content: linker_reply_message.LinkerReplyContent | None = <factory>, create_content: LinkerCreateContent | None = <factory>, close_content: LinkerCloseContent | None = <factory>, enter_content: linker.LinkerEnterContent | None = <factory>, leave_content: linker.LinkerLeaveContent | None = <factory>, cancel_content: linker.LinkerCancelContent | None = <factory>, kick_out_content: linker.LinkerKickOutContent | None = <factory>, linked_list_change_content: linker_linked_list_change_message.LinkedListChangeContent | None = <factory>, update_user_content: LinkerUpdateUserContent | None = <factory>, waiting_list_change_content: LinkerWaitingListChangeContent | None = <factory>, mute_content: linker.LinkerMuteContent | None = <factory>, random_match_content: linker.LinkerRandomMatchContent | None = <factory>, update_user_setting_content: _linksetting__.MultiLiveUpdateUserSettingContent | None = <factory>, mic_idx_update_content: linker_mic_update.LinkerMicIdxUpdateContent | None = <factory>, list_change_content: linker_listchangemessage.LinkerListChangeContent | None = <factory>, cohost_list_change_content: CohostListChangeContent | None = <factory>, media_change_content: LinkerMediaChangeContent | None = <factory>, reply_accept_notice_content: linker.LinkerAcceptNoticeContent | None = <factory>, sys_kick_out_content: LinkerSysKickOutContent | None = <factory>, user_toast_content: LinkmicUserToastContent | None = <factory>, extra: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, expire_timestamp: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, transfer_extra: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, version: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>)

Bases: BaseEvent, WebcastLinkMessage

LinkEvent.

cancel_content: LinkerCancelContent | None
close_content: LinkerCloseContent | None
cohost_list_change_content: CohostListChangeContent | None
common: CommonMessageData | None
create_content: LinkerCreateContent | None
enter_content: LinkerEnterContent | None
expire_timestamp: int
extra: str
invite_content: LinkerInviteContent | None
kick_out_content: LinkerKickOutContent | None
leave_content: LinkerLeaveContent | None
linked_list_change_content: LinkedListChangeContent | None
linker_id: int
list_change_content: LinkerListChangeContent | None
media_change_content: LinkerMediaChangeContent | None
message_type: int
mic_idx_update_content: LinkerMicIdxUpdateContent | None
mute_content: LinkerMuteContent | None
random_match_content: LinkerRandomMatchContent | None
reply_accept_notice_content: LinkerAcceptNoticeContent | None
reply_content: LinkerReplyContent | None
scene: int
sys_kick_out_content: LinkerSysKickOutContent | None
transfer_extra: str
update_user_content: LinkerUpdateUserContent | None
update_user_setting_content: MultiLiveUpdateUserSettingContent | None
user_toast_content: LinkmicUserToastContent | None
version: int
waiting_list_change_content: LinkerWaitingListChangeContent | None
class TikTokLive.events.proto_events.LinkLayerEvent(common: ___shared__message__.CommonMessageData | None = <factory>, message_type: ___im__.LinkLayerMessageType = <factory>, channel_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: ___linkmic__common__.Scene = <factory>, source: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, centerized_idc: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, rtc_room_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, version: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, linker_mode: ___linkmic__common__.LinkerMode = <factory>, wait_cross_data: bool = <factory>, create_channel_content: CreateChannelContent | None = <factory>, list_change_content: LinkListChangeContent | None = <factory>, invite_content: InviteContent | None = <factory>, apply_content: ApplyContent | None = <factory>, permit_apply_content: PermitApplyContent | None = <factory>, reply_invite_content: ReplyInviteContent | None = <factory>, kick_out_content: KickOutContent | None = <factory>, cancel_apply_content: CancelApplyContent | None = <factory>, cancel_invite_content: CancelInviteContent | None = <factory>, leave_content: LeaveContent | None = <factory>, finish_content: FinishChannelContent | None = <factory>, join_direct_content: JoinDirectContent | None = <factory>, join_group_content: ___im__.JoinGroupContent | None = <factory>, permit_group_content: ___im__.PermitJoinGroupContent | None = <factory>, cancel_group_content: ___im__.CancelJoinGroupContent | None = <factory>, leave_group_content: ___im__.LeaveJoinGroupContent | None = <factory>, p2p_group_change_content: ___im__.P2PGroupChangeContent | None = <factory>, group_change_content: ___im__.GroupChangeContent | None = <factory>, join_group_direct_content: ___im__.JoinGroupDirectContent | None = <factory>, join_room_direct_content: ___im__.JoinRoomDirectContent | None = <factory>, business_content: ___chatroom__model__multiguestv3__.BusinessContent | None = <factory>)

Bases: BaseEvent, WebcastLinkLayerMessage

LinkLayerEvent.

apply_content: ApplyContent | None
business_content: BusinessContent | None
cancel_apply_content: CancelApplyContent | None
cancel_group_content: CancelJoinGroupContent | None
cancel_invite_content: CancelInviteContent | None
centerized_idc: str
channel_id: int
common: CommonMessageData | None
create_channel_content: CreateChannelContent | None
finish_content: FinishChannelContent | None
group_change_content: GroupChangeContent | None
invite_content: InviteContent | None
join_direct_content: JoinDirectContent | None
join_group_content: JoinGroupContent | None
join_group_direct_content: JoinGroupDirectContent | None
join_room_direct_content: JoinRoomDirectContent | None
kick_out_content: KickOutContent | None
leave_content: LeaveContent | None
leave_group_content: LeaveJoinGroupContent | None
linker_mode: LinkerMode
list_change_content: LinkListChangeContent | None
message_type: LinkLayerMessageType
p2p_group_change_content: P2PGroupChangeContent | None
permit_apply_content: PermitApplyContent | None
permit_group_content: PermitJoinGroupContent | None
reply_invite_content: ReplyInviteContent | None
rtc_room_id: int
scene: Scene
source: str
version: int
wait_cross_data: bool
class TikTokLive.events.proto_events.LinkMicArmiesEvent(common: __shared__message__.CommonMessageData | None = <factory>, battle_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, armies: dict[int, battle.BattleUserArmies]=<factory>, channel_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, send_gift_success_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, update_battle_score_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, trigger_reason: __im__.LinkMicArmiesTriggerReason = <factory>, from_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, gift_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, gift_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, gift_icon_image: _base__.ImageModel | None = <factory>, total_diamond_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, repeat_count: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, team_armies: list[_live__match__.BattleTeamUserArmies] = <factory>, trigger_critical_strike: bool = <factory>, has_team_match_mvp_sfx: bool = <factory>, log_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, battle_settings: battle.BattleSetting | None = <factory>, fuzzy_display_config_v2: _live__match__.HighScoreControlCfg | None = <factory>, effect_infos: _live__match__.BattleEffectInfos | None = <factory>, enigma_battle_extra_info: _live__match__.EnigmaBattleExtraInfo | None = <factory>)

Bases: BaseEvent, WebcastLinkMicArmies

LinkMicArmiesEvent.

armies: Dict[int, BattleUserArmies]
battle_id: int
battle_settings: BattleSetting | None
channel_id: int
common: CommonMessageData | None
effect_infos: BattleEffectInfos | None
enigma_battle_extra_info: EnigmaBattleExtraInfo | None
from_user_id: int
fuzzy_display_config_v2: HighScoreControlCfg | None
gift_count: int
gift_icon_image: ImageModel | None
gift_id: int
has_team_match_mvp_sfx: bool
log_id: str
repeat_count: int
send_gift_success_time: int
team_armies: List[BattleTeamUserArmies]
total_diamond_count: int
trigger_critical_strike: bool
trigger_reason: LinkMicArmiesTriggerReason
update_battle_score_time: int
class TikTokLive.events.proto_events.LinkMicBattleEvent(common: __shared__message__.CommonMessageData | None = <factory>, battle_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, battle_settings: battle.BattleSetting | None = <factory>, action: __im__.LinkMicBattleBattleAction = <factory>, battle_result: dict[int, battle.BattleResult]=<factory>, fuzzy_display_config: battle.BattleDisplayConfig | None = <factory>, invitee_gift_permission_type: _data__.GiftPermissionType = <factory>, armies: list[battle.UserArmiesWrapper] = <factory>, anchors_info: list[battle.BattleUserInfoWrapper] = <factory>, bubble_text: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, supported_actions: list[battle.SupportedActionsWrapper] = <factory>, battle_combo_v2: dict[int, _live__match__.BattleComboInfo]=<factory>, team_member: list[TeamUsersInfo] = <factory>, invitees_gift_permission_type: list[BattleInviteeGiftPermission] = <factory>, action_by_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, team_battle_result: list[_live__match__.BattleTeamResult] = <factory>, team_armies: list[_live__match__.BattleTeamUserArmies] = <factory>, ab_test_setting: list[_live__match__.BattleAbTestSetting] = <factory>, team_match_campaign: _live__match__.TeamMatchCampaign | None = <factory>, fuzzy_display_config_v2: _live__match__.HighScoreControlCfg | None = <factory>, league_info_map: dict[int, __chatroom__model__interact__.GiftGalleryBadgeInfo]=<factory>, league_score_info_map: dict[int, _live__match__.LeagueScoreInfo]=<factory>, match_punish_extra_info: _live__match__.MatchPunishExtraInfo | None = <factory>, enigma_battle_setting: _live__match__.EnigmaBattleSetting | None = <factory>, anchor_match_settings: dict[int, _live__match__.AnchorMatchSettings]=<factory>, battle_feature_flags: _live__match__.BattleFeatureFlags | None = <factory>)

Bases: BaseEvent, WebcastLinkMicBattle

LinkMicBattleEvent.

ab_test_setting: List[BattleAbTestSetting]
action: LinkMicBattleBattleAction
action_by_user_id: int
anchor_match_settings: Dict[int, AnchorMatchSettings]
anchors_info: List[BattleUserInfoWrapper]
armies: List[UserArmiesWrapper]
battle_combo_v2: Dict[int, BattleComboInfo]
battle_feature_flags: BattleFeatureFlags | None
battle_id: int
battle_result: Dict[int, BattleResult]
battle_settings: BattleSetting | None
bubble_text: str
common: CommonMessageData | None
enigma_battle_setting: EnigmaBattleSetting | None
fuzzy_display_config: BattleDisplayConfig | None
fuzzy_display_config_v2: HighScoreControlCfg | None
invitee_gift_permission_type: GiftPermissionType
invitees_gift_permission_type: List[BattleInviteeGiftPermission]
league_info_map: Dict[int, GiftGalleryBadgeInfo]
league_score_info_map: Dict[int, LeagueScoreInfo]
match_punish_extra_info: MatchPunishExtraInfo | None
supported_actions: List[SupportedActionsWrapper]
team_armies: List[BattleTeamUserArmies]
team_battle_result: List[BattleTeamResult]
team_match_campaign: TeamMatchCampaign | None
team_member: List[TeamUsersInfo]
class TikTokLive.events.proto_events.LinkMicBattlePunishFinishEvent(common: __shared__message__.CommonMessageData | None = <factory>, channel_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, op_uid: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, reason: __im__.LinkMicBattlePunishFinishReason = <factory>, battle_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, battle_settings: battle.BattleSetting | None = <factory>, match_punish_extra_info: _live__match__.MatchPunishExtraInfo | None = <factory>)

Bases: BaseEvent, WebcastLinkMicBattlePunishFinish

LinkMicBattlePunishFinishEvent.

battle_id: int
battle_settings: BattleSetting | None
channel_id: int
common: CommonMessageData | None
match_punish_extra_info: MatchPunishExtraInfo | None
op_uid: int
reason: LinkMicBattlePunishFinishReason
class TikTokLive.events.proto_events.LinkMicFanTicketMethodEvent(common: __shared__message__.CommonMessageData | None = <factory>, fan_ticket_room_notice: FanTicketRoomNoticeContent | None = <factory>)

Bases: BaseEvent, WebcastLinkMicFanTicketMethod

LinkMicFanTicketMethodEvent.

common: CommonMessageData | None
fan_ticket_room_notice: FanTicketRoomNoticeContent | None
class TikTokLive.events.proto_events.LinkMicLayoutStateEvent(common: _shared__message__.CommonMessageData | None = <factory>, channel_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, version: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, biz_layout_state: BizLayoutState | None = <factory>, biz_spot_list: list[BizSpotInfo] = <factory>)

Bases: BaseEvent, WebcastLinkMicLayoutStateMessage

LinkMicLayoutStateEvent.

biz_layout_state: BizLayoutState | None
biz_spot_list: List[BizSpotInfo]
channel_id: int
common: CommonMessageData | None
scene: int
version: int
class TikTokLive.events.proto_events.LinkMicMethodEvent(common: __shared__message__.CommonMessageData | None = <factory>, message_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, access_key: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, anchor_linkmic_id: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, fan_ticket: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, total_linkmic_fan_ticket: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, channel_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, layout: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, vendor: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, dimension: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, theme: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, invite_uid: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, answer: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, start_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, duration: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, user_scores: list[bytes] = <factory>, match_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, win: bool = <factory>, prompts: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, to_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, linkmic_layout: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, from_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, tips: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, start_time_ms: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, confluence_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, from_room_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, invite_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, sub_type: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, inviter_rival_extra: __chatroom__interact__model__.RivalExtraInfo | None = <factory>, rtc_ext_info: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, rtc_app_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, app_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, app_sign: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, rtc_app_sign: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, anchor_linkmic_id_str: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, rival_anchor_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, rival_linkmic_id: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, rival_linkmic_id_str: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, show_popup: bool = <factory>, sec_invite_uid: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, sec_apply_uid: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, linked_users: list[_base__user__.User] = <factory>, sec_from_user_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, reply_type: _data__.LinkmicReplyType = <factory>, reply_prompts: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, sec_to_user_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, invitor_info: bytes = <factory>, rtc_join_channel: bool = <factory>, fan_ticket_icon_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>)

Bases: BaseEvent, WebcastLinkMicMethod

LinkMicMethodEvent.

access_key: str
anchor_linkmic_id: int
anchor_linkmic_id_str: str
answer: int
app_id: str
app_sign: str
channel_id: int
common: CommonMessageData | None
confluence_type: int
dimension: int
duration: int
fan_ticket: int
fan_ticket_icon_type: int
from_room_id: int
from_user_id: int
invite_type: int
invite_uid: int
inviter_rival_extra: RivalExtraInfo | None
invitor_info: bytes
layout: int
linked_users: List[User]
linkmic_layout: int
match_type: int
message_type: int
prompts: str
reply_prompts: str
reply_type: LinkmicReplyType
rival_anchor_id: int
rival_linkmic_id: int
rival_linkmic_id_str: str
rtc_app_id: str
rtc_app_sign: str
rtc_ext_info: str
rtc_join_channel: bool
scene: int
sec_apply_uid: int
sec_from_user_id: str
sec_invite_uid: int
sec_to_user_id: str
show_popup: bool
start_time: int
start_time_ms: int
sub_type: int
theme: str
tips: str
to_user_id: int
total_linkmic_fan_ticket: int
user_id: int
user_scores: List[bytes]
vendor: int
win: bool
class TikTokLive.events.proto_events.LinkStateEvent(common: _shared__message__.CommonMessageData | None = <factory>, channel_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: _linkmic__common__.Scene = <factory>, version: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, need_ack: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, layout: _linkmic__common__.LayoutState | None = <factory>, user_states: list[_linkmic__common__.LinkUserState] = <factory>, client_send_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, state_type: _linkmic__common__.StateType = <factory>, background: _linkmic__common__.BackGroundImageState | None = <factory>, wallpaper_url: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, ui_pos: list[_linkmic__common__.PosIdentity] = <factory>, spot_list: list[_linkmic__common__.SpotInfo] = <factory>, audio_muted_remote_channels: list[typing.Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)]] = <factory>, linker_mode: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>)

Bases: BaseEvent, WebcastLinkStateMessage

LinkStateEvent.

audio_muted_remote_channels: List[int]
background: BackGroundImageState | None
channel_id: int
client_send_time: int
common: CommonMessageData | None
layout: LayoutState | None
linker_mode: int
need_ack: int
scene: Scene
spot_list: List[SpotInfo]
state_type: StateType
ui_pos: List[PosIdentity]
user_states: List[LinkUserState]
version: int
wallpaper_url: str
class TikTokLive.events.proto_events.LinkmicBattleTaskEvent(common: __shared__message__.CommonMessageData | None = <factory>, task_message_type: __im__.BattleTaskMessageType = <factory>, start: battle.BattleTaskStart | None = <factory>, task_update: battle.BattleTaskUpdate | None = <factory>, task_settle: battle.BattleTaskSettle | None = <factory>, reward: battle.BattleRewardSettle | None = <factory>, battle_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>)

Bases: BaseEvent, WebcastLinkmicBattleTaskMessage

LinkmicBattleTaskEvent.

battle_id: int
common: CommonMessageData | None
reward: BattleRewardSettle | None
start: BattleTaskStart | None
task_message_type: BattleTaskMessageType
task_settle: BattleTaskSettle | None
task_update: BattleTaskUpdate | None
class TikTokLive.events.proto_events.LiveGameIntroEvent(common: __shared__message__.CommonMessageData | None = <factory>, content: common.Text | None = <factory>, has_rank_info: bool = <factory>)

Bases: BaseEvent, WebcastLiveGameIntroMessage

LiveGameIntroEvent.

common: CommonMessageData | None
content: Text | None
has_rank_info: bool
class TikTokLive.events.proto_events.LiveIntroEvent(common: __shared__message__.CommonMessageData | None = <factory>, id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, audit_status: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, content: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, user: _base__user__.User | None = <factory>, intro_mode: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, badges: list[_base__user__.BadgeStruct] = <factory>, content_language: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastLiveIntroMessage

LiveIntroEvent.

audit_status: int
badges: List[BadgeStruct]
common: CommonMessageData | None
content: str
content_language: str
id: int
intro_mode: int
user: ExtendedUser | None
class TikTokLive.events.proto_events.MarqueeAnnouncementEvent(common: __shared__message__.CommonMessageData | None = <factory>, message_scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, message_entity: list[MessageEntity] = <factory>)

Bases: BaseEvent, WebcastMarqueeAnnouncementMessage

MarqueeAnnouncementEvent.

common: CommonMessageData | None
message_entity: List[MessageEntity]
message_scene: str
class TikTokLive.events.proto_events.MessageDetectEvent(common: __shared__message__.CommonMessageData | None = <factory>, d_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, t_condition: TriggerCondition | None = <factory>, t_info: TimeInfo | None = <factory>, trigger_by: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, from_region: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastMsgDetectMessage

MessageDetectEvent.

common: CommonMessageData | None
d_type: int
from_region: str
t_condition: TriggerCondition | None
t_info: TimeInfo | None
trigger_by: int
class TikTokLive.events.proto_events.NoticeEvent(common: __shared__message__.CommonMessageData | None = <factory>, content: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, notice_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, style: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, title: common.Text | None = <factory>, violation_reason: common.Text | None = <factory>, display_text: common.Text | None = <factory>, tips_title: common.Text | None = <factory>, tips_url: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, notice_title: common.Text | None = <factory>, notice_content: common.Text | None = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastNoticeMessage

NoticeEvent.

common: CommonMessageData | None
content: str
display_text: Text | None
notice_content: Text | None
notice_title: Text | None
notice_type: int
scene: str
style: str
tips_title: Text | None
tips_url: str
title: Text | None
violation_reason: Text | None
class TikTokLive.events.proto_events.OecLiveShoppingEvent(common: ___shared__message__.CommonMessageData | None = <factory>, action_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, live_product_number: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, pop_product: PopProduct | None = <factory>, trace_info: TraceInfo | None = <factory>, hot_tags: list[HotTag] = <factory>, atmosphere_tag_info: __message__.AtmosphereTagInfo | None = <factory>, live_permission_info: __message__.LivePermissionInfo | None = <factory>, product_snap_shot: __message__.ProductSnapShot | None = <factory>, pin_card_delay_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, flash_sale_atmosphere_info: list[__message__.FlashSaleAtmosphereInfo] = <factory>, card_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, billboard_info: __message__.BillboardInfo | None = <factory>, billboard_display_result: __message__.BillboardDisplayResult | None = <factory>, dispersion_info: list[__message__.DispersionInfo] = <factory>, promotion_info: __message__.PromotionInfo | None = <factory>, campaign_banner_display_result: __message__.CampaignBannerDisplayResult | None = <factory>, campaign_banner_display: __message__.CampaignBannerDisplay | None = <factory>, refresh_live_bag_info: __message__.RefreshLiveBagInfo | None = <factory>, anchor_pin_card_reset_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, voucher: __message__.Voucher | None = <factory>, oec_live_shopping_message_v2: __data__oec_msg__.OecLiveShoppingMessageV2 | None = <factory>)

Bases: BaseEvent, WebcastOecLiveShoppingMessage

OecLiveShoppingEvent.

action_type: int
anchor_pin_card_reset_type: int
atmosphere_tag_info: AtmosphereTagInfo | None
billboard_display_result: BillboardDisplayResult | None
billboard_info: BillboardInfo | None
campaign_banner_display: CampaignBannerDisplay | None
campaign_banner_display_result: CampaignBannerDisplayResult | None
card_type: int
common: CommonMessageData | None
dispersion_info: List[DispersionInfo]
flash_sale_atmosphere_info: List[FlashSaleAtmosphereInfo]
hot_tags: List[HotTag]
live_permission_info: LivePermissionInfo | None
live_product_number: int
oec_live_shopping_message_v2: OecLiveShoppingMessageV2 | None
pin_card_delay_time: int
pop_product: PopProduct | None
product_snap_shot: ProductSnapShot | None
promotion_info: PromotionInfo | None
refresh_live_bag_info: RefreshLiveBagInfo | None
trace_info: TraceInfo | None
voucher: Voucher | None
class TikTokLive.events.proto_events.PartnershipDropsUpdateEvent(common: __shared__message__.CommonMessageData | None = <factory>, change_mode: __im__.PartnershipDropsUpdateMessageChangeMode = <factory>, drops_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, task_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, event_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, anchor_uid: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>)

Bases: BaseEvent, WebcastPartnershipDropsUpdateMessage

PartnershipDropsUpdateEvent.

anchor_uid: int
change_mode: PartnershipDropsUpdateMessageChangeMode
common: CommonMessageData | None
drops_id: str
event_id: str
task_id: str
class TikTokLive.events.proto_events.PartnershipGameOfflineEvent(common: __shared__message__.CommonMessageData | None = <factory>, offline_game_list: list[OfflineGameInfo] = <factory>)

Bases: BaseEvent, WebcastPartnershipGameOfflineMessage

PartnershipGameOfflineEvent.

common: CommonMessageData | None
offline_game_list: List[OfflineGameInfo]
class TikTokLive.events.proto_events.PartnershipPunishEvent(common: __shared__message__.CommonMessageData | None = <factory>, punish_info: PunishEventInfo | None = <factory>)

Bases: BaseEvent, WebcastPartnershipPunishMessage

PartnershipPunishEvent.

common: CommonMessageData | None
punish_info: PunishEventInfo | None
class TikTokLive.events.proto_events.PerceptionEvent(common: __shared__message__.CommonMessageData | None = <factory>, dialog: PerceptionDialogInfo | None = <factory>, punish_info: PunishEventInfo | None = <factory>, end_time: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, show_violation_warning: bool = <factory>, toast: common.Text | None = <factory>, float_style: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, float_text: common.Text | None = <factory>, sheet: __message__proto__.PerceptionSheetInfo | None = <factory>, float_icon_type: _data__.PerceptionDialogIconType = <factory>)

Bases: BaseEvent, WebcastPerceptionMessage

PerceptionEvent.

common: CommonMessageData | None
dialog: PerceptionDialogInfo | None
end_time: int
float_icon_type: PerceptionDialogIconType
float_style: int
float_text: Text | None
punish_info: PunishEventInfo | None
sheet: PerceptionSheetInfo | None
show_violation_warning: bool
toast: Text | None
class TikTokLive.events.proto_events.PollEvent(common: __shared__message__.CommonMessageData | None = <factory>, message_type: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, poll_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, start_content: PollStartContent | None = <factory>, end_content: PollEndContent | None = <factory>, update_votes_content: PollUpdateVotesContent | None = <factory>, poll_kind: _data__.PollKind = <factory>, poll_basic_info: PollBasicInfo | None = <factory>, template_content: TemplateContent | None = <factory>)

Bases: BaseEvent, WebcastPollMessage

PollEvent.

common: CommonMessageData | None
end_content: PollEndContent | None
message_type: int
poll_basic_info: PollBasicInfo | None
poll_id: int
poll_kind: PollKind
start_content: PollStartContent | None
template_content: TemplateContent | None
update_votes_content: PollUpdateVotesContent | None
class TikTokLive.events.proto_events.QuestionNewEvent(common: __shared__message__.CommonMessageData | None = <factory>, data: Question | None = <factory>)

Bases: BaseEvent, WebcastQuestionNewMessage

QuestionNewEvent.

common: CommonMessageData | None
data: Question | None
class TikTokLive.events.proto_events.RankTextEvent(common: __shared__message__.CommonMessageData | None = <factory>, scene: __im__.RankTextMessageRankTestMessageScene = <factory>, owner_idx_before_update: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, owner_idx_after_update: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, self_get_badge_msg: common.Text | None = <factory>, other_get_badge_msg: common.Text | None = <factory>, cur_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, left_icon: _base__.ImageModel | None = <factory>, content: common.Text | None = <factory>, rank_type: _data__.ProfitRankType = <factory>, user_enigma_info: __message__proto__.RankUserEnigmaInfo | None = <factory>)

Bases: BaseEvent, WebcastRankTextMessage

RankTextEvent.

common: CommonMessageData | None
content: Text | None
cur_user_id: int
left_icon: ImageModel | None
other_get_badge_msg: Text | None
owner_idx_after_update: int
owner_idx_before_update: int
rank_type: ProfitRankType
scene: RankTextMessageRankTestMessageScene
self_get_badge_msg: Text | None
user_enigma_info: RankUserEnigmaInfo | None
class TikTokLive.events.proto_events.RankUpdateEvent(common: __shared__message__.CommonMessageData | None = <factory>, updates: list[RankUpdate] = <factory>, group_type: _data__.EntranceGroupType = <factory>, op_type: __im__.OpType = <factory>, rank_priority: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, tabs: list[_rank__.RankTabInfo] = <factory>, is_animation_loop_play: bool = <factory>, animation_loop_for_off: bool = <factory>, union_animation: list[UnionAnimationInfo] = <factory>, tab_info: list[RankListTabInfo] = <factory>, valid_ranks: ValidRanks | None = <factory>)

Bases: BaseEvent, WebcastRankUpdateMessage

RankUpdateEvent.

animation_loop_for_off: bool
common: CommonMessageData | None
group_type: EntranceGroupType
is_animation_loop_play: bool
op_type: OpType
rank_priority: int
tab_info: List[RankListTabInfo]
tabs: List[RankTabInfo]
union_animation: List[UnionAnimationInfo]
updates: List[RankUpdate]
valid_ranks: ValidRanks | None
class TikTokLive.events.proto_events.RoomEvent(common: __shared__message__.CommonMessageData | None = <factory>, content: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, supprot_landscape: bool = <factory>, source: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, icon: _base__.ImageModel | None = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, is_welcome: bool = <factory>, public_area_common: PublicAreaMessageCommon | None = <factory>, show_duration_ms: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, sub_scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, schema: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, signature: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, signature_version: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastRoomMessage

RoomEvent.

common: CommonMessageData | None
content: str
icon: ImageModel | None
is_welcome: bool
public_area_common: PublicAreaMessageCommon | None
scene: str
schema: str
show_duration_ms: int
signature: str
signature_version: str
source: int
sub_scene: str
supprot_landscape: bool
class TikTokLive.events.proto_events.RoomNotifyEvent(common: __shared__message__.CommonMessageData | None = <factory>, schema: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, notify_type: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, content: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, user: _base__user__.User | None = <factory>, extra: RoomNotifyMessageExtra | None = <factory>, notify_class: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, flex_setting: list[typing.Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)]] = <factory>, source: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, from_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, privilege_log_extra: _base__user__.PrivilegeLogExtra | None = <factory>, to_anchor_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, event_tracking: RoomNotifyMessageEventTracking | None = <factory>)

Bases: BaseEvent, WebcastRoomNotifyMessage

RoomNotifyEvent.

common: CommonMessageData | None
content: str
event_tracking: RoomNotifyMessageEventTracking | None
extra: RoomNotifyMessageExtra | None
flex_setting: List[int]
from_user_id: int
notify_class: int
notify_type: int
privilege_log_extra: PrivilegeLogExtra | None
schema: str
source: str
to_anchor_id: int
user: ExtendedUser | None
class TikTokLive.events.proto_events.RoomPinEvent(common: __shared__message__.CommonMessageData | None = <factory>, chat_message: WebcastChatMessage | None = <factory>, social_message: WebcastSocialMessage | None = <factory>, gift_message: WebcastGiftMessage | None = <factory>, member_message: WebcastMemberMessage | None = <factory>, like_message: WebcastLikeMessage | None = <factory>, method: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, pin_time: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, operator: _base__user__.User | None = <factory>, action: __im__.PinMessageActionType = <factory>, display_duration: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, pin_msg_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, ec_streamer_key: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastRoomPinMessage

RoomPinEvent.

action: PinMessageActionType
chat_message: WebcastChatMessage | None
common: CommonMessageData | None
display_duration: int
ec_streamer_key: str
gift_message: WebcastGiftMessage | None
like_message: WebcastLikeMessage | None
member_message: WebcastMemberMessage | None
method: str
operator: ExtendedUser | None
pin_msg_id: int
pin_time: int
social_message: WebcastSocialMessage | None
class TikTokLive.events.proto_events.RoomUserSeqEvent(common: __shared__message__.CommonMessageData | None = <factory>, ranks: list[Contributor] = <factory>, total: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, pop_str: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, seats: list[Contributor] = <factory>, popularity: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, total_user: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, anonymous: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>)

Bases: BaseEvent, WebcastRoomUserSeqMessage

RoomUserSeqEvent.

anonymous: int
common: CommonMessageData | None
pop_str: str
popularity: int
ranks: List[Contributor]
seats: List[Contributor]
total: int
total_user: int
class TikTokLive.events.proto_events.RoomVerifyEvent(common: __shared__message__.CommonMessageData | None = <factory>, action: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, content: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, notice_type: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, close_room: bool = <factory>)

Bases: BaseEvent, WebcastRoomVerifyMessage

RoomVerifyEvent.

action: int
close_room: bool
common: CommonMessageData | None
content: str
notice_type: int
class TikTokLive.events.proto_events.SocialEvent(*args: Any, common: CommonMessageData | None = <factory>, user: User | None = <factory>, share_type: Annotated[int, ~annotated_types.Ge(ge=-9223372036854775808), ~annotated_types.Le(le=9223372036854775807)] = <factory>, action: Annotated[int, ~annotated_types.Ge(ge=-9223372036854775808), ~annotated_types.Le(le=9223372036854775807)] = <factory>, share_target: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>, follow_count: Annotated[int, ~annotated_types.Ge(ge=-9223372036854775808), ~annotated_types.Le(le=9223372036854775807)] = <factory>, share_display_style: Annotated[int, ~annotated_types.Ge(ge=-9223372036854775808), ~annotated_types.Le(le=9223372036854775807)] = <factory>, share_count: Annotated[int, ~annotated_types.Ge(ge=-2147483648), ~annotated_types.Le(le=2147483647)] = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, signature: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>, signature_version: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>, show_duration_ms: Annotated[int, ~annotated_types.Ge(ge=-9223372036854775808), ~annotated_types.Le(le=9223372036854775807)] = <factory>, follow_type: Annotated[int, ~annotated_types.Ge(ge=-2147483648), ~annotated_types.Le(le=2147483647)] = <factory>, target_user_id: Annotated[int, ~annotated_types.Ge(ge=-9223372036854775808), ~annotated_types.Le(le=9223372036854775807)] = <factory>, scene: Annotated[str, ~pydantic.functional_validators.AfterValidator(func=~betterproto2.validators.proto_types.validate_string)] = <factory>)

Bases: BaseEvent, WebcastSocialMessage

SocialEvent.

action: int
common: CommonMessageData | None
follow_count: int
follow_type: int
public_area_message_common: PublicAreaMessageCommon | None
scene: str
share_count: int
share_display_style: int
share_target: str
share_type: int
show_duration_ms: int
signature: str
signature_version: str
target_user_id: int
user: ExtendedUser | None
class TikTokLive.events.proto_events.SpeakerEvent(common: __shared__message__.CommonMessageData | None = <factory>)

Bases: BaseEvent, WebcastSpeakerMessage

SpeakerEvent.

common: CommonMessageData | None
class TikTokLive.events.proto_events.SubNotifyEvent(common: __shared__message__.CommonMessageData | None = <factory>, user: _base__user__.User | None = <factory>, exhibition_type: __im__.ExhibitionType = <factory>, sub_month: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, subscribe_type: __im__.SubscribeType = <factory>, old_subscribe_status: __im__.OldSubscribeStatus = <factory>, message_type: __im__.MessageType = <factory>, subscribing_status: __im__.SubscribingStatus = <factory>, is_send: bool = <factory>, is_custom: bool = <factory>, gift_source: __im__.GiftSource = <factory>, message_display_style: __im__.MessageDisplayStyle = <factory>, public_area_message_common: PublicAreaMessageCommon | None = <factory>, package_id: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, event_tracking: RoomNotifyMessageEventTracking | None = <factory>)

Bases: BaseEvent, WebcastSubNotifyMessage

SubNotifyEvent.

common: CommonMessageData | None
event_tracking: RoomNotifyMessageEventTracking | None
exhibition_type: ExhibitionType
gift_source: GiftSource
is_custom: bool
is_send: bool
message_display_style: MessageDisplayStyle
message_type: MessageType
old_subscribe_status: OldSubscribeStatus
package_id: str
public_area_message_common: PublicAreaMessageCommon | None
sub_month: int
subscribe_type: SubscribeType
subscribing_status: SubscribingStatus
user: ExtendedUser | None
class TikTokLive.events.proto_events.SubPinEventEvent(common: __shared__message__.CommonMessageData | None = <factory>, action_type: __im__.SubPinEventMessageActionType = <factory>, card: __chatroom__api__.SubPinCard | None = <factory>, operator_user_id: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>)

Bases: BaseEvent, WebcastSubPinEventMessage

SubPinEventEvent.

action_type: SubPinEventMessageActionType
card: SubPinCard | None
common: CommonMessageData | None
operator_user_id: int
class TikTokLive.events.proto_events.SystemEvent(common: _shared__message__.CommonMessageData | None = <factory>, message: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastSystemMessage

SystemEvent.

common: CommonMessageData | None
message: str
class TikTokLive.events.proto_events.ToastEvent(common: __shared__message__.CommonMessageData | None = <factory>, display_duration_millisecond: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, delay_display_duration_millisecond: Annotated[int, pydantic.Field(ge=-2**63, le=2**63 - 1)] = <factory>, scene: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>)

Bases: BaseEvent, WebcastToastMessage

ToastEvent.

common: CommonMessageData | None
delay_display_duration_millisecond: int
display_duration_millisecond: int
scene: str
class TikTokLive.events.proto_events.UnauthorizedMemberEvent(common: __shared__message__.CommonMessageData | None = <factory>, action: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, nick_name_prefix: common.Text | None = <factory>, nick_name: Annotated[str, pydantic.AfterValidator(betterproto2.validators.validate_string)]=<factory>, enter_text: common.Text | None = <factory>, public_area_common: PublicAreaMessageCommon | None = <factory>)

Bases: BaseEvent, WebcastUnauthorizedMemberMessage

UnauthorizedMemberEvent.

action: int
common: CommonMessageData | None
enter_text: Text | None
nick_name: str
nick_name_prefix: Text | None
public_area_common: PublicAreaMessageCommon | None
class TikTokLive.events.proto_events.ViewerPicksUpdateEvent(common: __shared__message__.CommonMessageData | None = <factory>, update_type: Annotated[int, pydantic.Field(ge=-2**31, le=2**31 - 1)] = <factory>, info: _viewer_picks__.ViewerPicksInfo | None = <factory>)

Bases: BaseEvent, WebcastViewerPicksUpdateMessage

ViewerPicksUpdateEvent.

common: CommonMessageData | None
info: ViewerPicksInfo | None
update_type: int

Module contents