syntax = "proto2"; import "steammessages_base.proto"; import "steammessages_unified_base.proto"; option py_generic_services = true; enum EBroadcastImageType { k_EBroadcastImageType_None = 0; k_EBroadcastImageType_Offline = 1; k_EBroadcastImageType_Standby = 2; k_EBroadcastImageType_Avatar = 3; k_EBroadcastImageType_Summary = 4; k_EBroadcastImageType_Background = 5; k_EBroadcastImageType_Emoticon = 6; } enum EGetGamesAlgorithm { k_EGetGamesAlgorithm_Default = 1; k_EGetGamesAlgorithm_MostPlayed = 2; k_EGetGamesAlgorithm_PopularNew = 3; } enum EGetChannelsAlgorithm { k_EGetChannelsAlgorithm_Default = 1; k_EGetChannelsAlgorithm_Friends = 2; k_EGetChannelsAlgorithm_Featured = 3; k_EGetChannelsAlgorithm_Developer = 4; k_EGetChannelsAlgorithm_Following = 5; } enum ESteamTVContentTemplate { k_ESteamTVContentTemplate_Invalid = 0; k_ESteamTVContentTemplate_Takeover = 1; k_ESteamTVContentTemplate_SingleGame = 2; k_ESteamTVContentTemplate_GameList = 3; k_ESteamTVContentTemplate_QuickExplore = 4; k_ESteamTVContentTemplate_ConveyorBelt = 5; k_ESteamTVContentTemplate_WatchParty = 6; k_ESteamTVContentTemplate_Developer = 7; k_ESteamTVContentTemplate_Event = 8; } message CSteamTV_CreateBroadcastChannel_Request { optional string unique_name = 1 [(description) = "Unique short broadcast channel name, part of Steam.TV URL"]; } message CSteamTV_CreateBroadcastChannel_Response { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID or 0"]; } message CSteamTV_GetBroadcastChannelID_Request { optional string unique_name = 1 [(description) = "Channel short name)"]; } message CSteamTV_GetBroadcastChannelID_Response { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID or 0"]; optional string unique_name = 2 [(description) = "Broadcast channel name"]; optional fixed64 steamid = 3 [(description) = "Broadcast channel owner"]; } message CSteamTV_SetBroadcastChannelProfile_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; optional string name = 2 [(description) = "long channel name"]; optional string language = 3 [(description) = "primary channel language (Steam shortname)"]; optional string headline = 4 [(description) = "short channel desciption"]; optional string summary = 5 [(description) = "long channel desciption"]; optional string avatar_hash = 6 [(description) = "community avatar hash"]; optional string schedule = 7 [(description) = "broadcast channel schedule"]; optional string rules = 8 [(description) = "broadcast channel rules"]; optional string panels = 9 [(description) = "JSON data representing the channel panel layout"]; } message CSteamTV_SetBroadcastChannelProfile_Response { } message CSteamTV_GetBroadcastChannelProfile_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; } message CSteamTV_GetBroadcastChannelProfile_Response { optional string unique_name = 1 [(description) = "Unique short broadcast channel name, part of Steam.TV URL"]; optional fixed64 owner_steamid = 2 [(description) = "Broadcast channel owner"]; optional string name = 3 [(description) = "long channel name"]; optional string language = 4 [(description) = "primary channel language (Steam shortname)"]; optional string headline = 5 [(description) = "short channel description"]; optional string summary = 6 [(description) = "long channel description"]; optional string schedule = 7 [(description) = "broadcast channel schedule"]; optional string rules = 8 [(description) = "broadcast channel rules"]; optional string panels = 9 [(description) = "JSON data representing the channel panel layout"]; optional bool is_partnered = 10; } message CSteamTV_SetBroadcastChannelImage_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; optional .EBroadcastImageType image_type = 2 [default = k_EBroadcastImageType_None, (description) = "EBroadcastImage"]; optional uint32 image_index = 3 [(description) = "Index of the image (for supporting multiple uploads of the same type"]; optional uint32 image_width = 4 [(description) = "width in pixels"]; optional uint32 image_height = 5 [(description) = "height in pixels"]; optional uint32 file_size = 6 [(description) = "in bytes"]; optional string file_extension = 7 [(description) = "eg .jpg"]; optional string file_hash = 8 [(description) = "image SHA"]; optional bool undo = 9 [(description) = "indicates this is a delete request"]; } message CSteamTV_SetBroadcastChannelImage_Response { optional string replace_image_hash = 1 [(description) = "set if caller should remove previous SHA file from cache"]; } message CSteamTV_GetBroadcastChannelImages_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; repeated .EBroadcastImageType image_types = 2 [(description) = "list of EBroadcastImage"]; } message CSteamTV_GetBroadcastChannelImages_Response { message Images { optional .EBroadcastImageType image_type = 1 [default = k_EBroadcastImageType_None, (description) = "Type of the image"]; optional string image_path = 2 [(description) = "Path to the uploaded image"]; optional uint32 image_index = 3 [(description) = "Index of the image"]; } repeated .CSteamTV_GetBroadcastChannelImages_Response.Images images = 1; } message CSteamTV_SetBroadcastChannelLinkRegions_Request { message Links { optional uint32 link_index = 1 [(description) = "Index of the link (lower number has higher priority)"]; optional string url = 2 [(description) = "URL "]; optional string link_description = 3 [(description) = "URL description that will show in the link region"]; optional uint32 left = 4 [(description) = "Left X position in 100th of a % of the video width"]; optional uint32 top = 5 [(description) = "Top Y position in 100th of a % of the video height"]; optional uint32 width = 6 [(description) = "Region Width in 100th of a % of the video width"]; optional uint32 height = 7 [(description) = "Region Height in 100th of a % of the video height"]; } optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; repeated .CSteamTV_SetBroadcastChannelLinkRegions_Request.Links links = 2; } message CSteamTV_SetBroadcastChannelLinkRegions_Response { } message CSteamTV_GetBroadcastChannelLinks_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; } message CSteamTV_GetBroadcastChannelLinks_Response { message Links { optional uint32 link_index = 1 [(description) = "Index of the link (lower number has higher priority)"]; optional string url = 2 [(description) = "URL "]; optional string link_description = 3 [(description) = "URL description that will show in the link region"]; optional uint32 left = 4 [(description) = "Left X position in 100th of a % of the video width"]; optional uint32 top = 5 [(description) = "Top Y position in 100th of a % of the video height"]; optional uint32 width = 6 [(description) = "Region Width in 100th of a % of the video width"]; optional uint32 height = 7 [(description) = "Region Height in 100th of a % of the video height"]; } repeated .CSteamTV_GetBroadcastChannelLinks_Response.Links links = 1; } message CSteamTV_GetBroadcastChannelBroadcasters_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; } message CSteamTV_GetBroadcastChannelBroadcasters_Response { message Broadcaster { optional fixed64 steamid = 1 [(description) = "Broadcaster Steam ID"]; optional string name = 2 [(description) = "Broadcaster name"]; optional string rtmp_token = 3 [(description) = "Broadcaster upload token"]; } repeated .CSteamTV_GetBroadcastChannelBroadcasters_Response.Broadcaster broadcasters = 1; } message CSteamTV_GetFollowedChannels_Request { } message GetBroadcastChannelEntry { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID or 0"]; optional string unique_name = 2 [(description) = "Unique broadcast channel name for URL"]; optional string name = 3 [(description) = "Long broadcast channel name"]; optional uint32 appid = 4 [(description) = "The game ID the requested broadcaster is playing"]; optional uint64 viewers = 5 [(description) = "Number of viewers currently watching"]; optional uint64 views = 6 [(description) = "Number of total views of this channel"]; optional string thumbnail_url = 7 [(description) = "Current thumbnail URL"]; optional uint64 followers = 8 [(description) = "Number of followers of this channel"]; optional string headline = 9 [(description) = "short channel description"]; optional string avatar_url = 10 [(description) = "community avatar url"]; optional fixed64 broadcaster_steamid = 11 [(description) = "Current broadcaster streaming"]; optional uint64 subscribers = 12 [(description) = "Number of subscribers of this channel"]; optional string background_url = 13 [(description) = "Background image url"]; optional bool is_featured = 14 [(description) = "Whether the channel is featured"]; optional bool is_disabled = 15 [(description) = "Whether the channel is disabled"]; optional bool is_live = 16 [(description) = "Whether the channel is streaming"]; optional string language = 17 [(description) = "The language the stream is in"]; optional uint32 reports = 18 [(description) = "The number of reports the channel has"]; optional bool is_partnered = 19; } message CSteamTV_GetFollowedChannels_Response { repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of broadcasters"]; } message CSteamTV_GetSubscribedChannels_Request { } message CSteamTV_GetSubscribedChannels_Response { repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of broadcasters"]; } message CSteamTV_GetBroadcastChannelStatus_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; } message CSteamTV_GetBroadcastChannelStatus_Response { optional bool is_live = 1 [(description) = "Indicates whether the channel is streaming"]; optional bool is_disabled = 2 [(description) = "Indicates whether the channel has been disabled"]; optional uint32 appid = 3 [(description) = "The game ID the requested broadcaster is playing"]; optional uint64 viewers = 4 [(description) = "Number of viewers currently watching"]; optional uint64 views = 5 [(description) = "Number of total views of this channel"]; optional fixed64 broadcaster_steamid = 6 [(description) = "Current broadcaster streaming"]; optional string thumbnail_url = 7 [(description) = "Current thumbnail URL"]; optional uint64 followers = 8 [(description) = "Number of followers of this channel"]; optional uint64 subscribers = 9 [(description) = "Number of subscribers of this channel"]; optional string unique_name = 10; optional uint64 broadcast_session_id = 11; } message CSteamTV_FollowBroadcastChannel_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; optional bool undo = 2 [(description) = "Indicates this is an unfollow request"]; } message CSteamTV_FollowBroadcastChannel_Response { optional bool is_followed = 1 [(description) = "Whether the user is now following"]; } message CSteamTV_SubscribeBroadcastChannel_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; } message CSteamTV_SubscribeBroadcastChannel_Response { optional bool is_subscribed = 1 [(description) = "Whether the user is now subscribed"]; } message CSteamTV_GetBroadcastChannelClips_Request { optional fixed64 broadcast_channel_id = 1; } message CSteamTV_BroadcastClipInfo { optional uint64 broadcast_clip_id = 1 [(description) = "broadcast clip ID"]; optional uint64 channel_id = 2 [(description) = "Broadcast Channel ID"]; optional uint32 app_id = 3 [(description) = "App ID stream is tagged with"]; optional fixed64 broadcaster_steamid = 4 [(description) = "Broadcaster SteamID"]; optional fixed64 creator_steamid = 5 [(description) = "Clip-maker SteamID"]; optional string video_description = 6 [(description) = "Short name or description of this clip"]; optional uint32 live_time = 7 [(description) = "GMT time clip was broadcasted live"]; optional uint32 length_ms = 8 [(description) = "length of video in MS"]; optional string thumbnail_path = 9 [(description) = "relative path for thumbnail URL on host"]; } message CSteamTV_GetBroadcastChannelClips_Response { repeated .CSteamTV_BroadcastClipInfo clips = 1; optional string thumbnail_host = 2; } message CSteamTV_ReportBroadcastChannel_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; optional string reason = 2 [(description) = "The reason for the report"]; } message CSteamTV_ReportBroadcastChannel_Response { } message CSteamTV_GetBroadcastChannelInteraction_Request { optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"]; } message CSteamTV_GetBroadcastChannelInteraction_Response { optional bool is_followed = 1 [(description) = "Whether the user has followed this channel"]; optional bool is_subscribed = 2 [(description) = "Whether the user has subscribed to this channel"]; } message CSteamTV_GetGames_Request { optional uint32 appid = 1 [(description) = "The ID for the game"]; optional .EGetGamesAlgorithm algorithm = 2 [default = k_EGetGamesAlgorithm_Default, (description) = "The algorithm to use when picking games to return"]; optional uint32 count = 3 [(description) = "The maximum number of results to return"]; } message CSteamTV_Game { optional uint32 appid = 1 [(description) = "The ID for the game"]; optional string name = 2 [(description) = "The name for the game"]; optional string image = 3 [(description) = "The image for the game"]; optional uint64 viewers = 4 [(description) = "Number of people watching this game"]; repeated .GetBroadcastChannelEntry channels = 5 [(description) = "Live channels streaming this game"]; optional string release_date = 6; optional string developer = 7; optional string publisher = 8; } message CSteamTV_GetGames_Response { repeated .CSteamTV_Game results = 1 [(description) = "The list of games"]; } message CSteamTV_GetChannels_Request { optional .EGetChannelsAlgorithm algorithm = 1 [default = k_EGetChannelsAlgorithm_Default, (description) = "The algorithm to use when picking channels to return"]; optional uint32 count = 2 [(description) = "The maximum number of results to return"]; optional uint32 appid = 3 [(description) = "Filter results to only this appid"]; } message CSteamTV_GetChannels_Response { repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of featured broadcasters"]; } message CSteamTV_AddChatBan_Request { optional fixed64 broadcast_channel_id = 1; optional fixed64 chatter_steamid = 2; optional uint32 duration = 3; optional bool permanent = 4; optional bool undo = 5; } message CSteamTV_AddChatBan_Response { } message CSteamTV_GetChatBans_Request { optional fixed64 broadcast_channel_id = 1; } message CSteamTV_ChatBan { optional fixed64 issuer_steamid = 1; optional fixed64 chatter_steamid = 2; optional string time_expires = 3; optional bool permanent = 4; optional string name = 5; } message CSteamTV_GetChatBans_Response { repeated .CSteamTV_ChatBan results = 1 [(description) = "The list of bans"]; } message CSteamTV_AddChatModerator_Request { optional fixed64 broadcast_channel_id = 1; optional fixed64 moderator_steamid = 2; optional bool undo = 3; } message CSteamTV_AddChatModerator_Response { } message CSteamTV_GetChatModerators_Request { optional fixed64 broadcast_channel_id = 1; } message CSteamTV_ChatModerator { optional fixed64 steamid = 1; optional string name = 2; } message CSteamTV_GetChatModerators_Response { repeated .CSteamTV_ChatModerator results = 1 [(description) = "The list of moderators"]; } message CSteamTV_AddWordBan_Request { optional fixed64 broadcast_channel_id = 1; optional string word = 2; optional bool undo = 3; } message CSteamTV_AddWordBan_Response { } message CSteamTV_GetWordBans_Request { optional fixed64 broadcast_channel_id = 1; } message CSteamTV_GetWordBans_Response { repeated string results = 1 [(description) = "The list of banned words"]; } message CSteamTV_JoinChat_Request { optional fixed64 broadcast_channel_id = 1; } message CSteamTV_JoinChat_Response { optional fixed64 chat_id = 1; optional string view_url_template = 2; repeated uint64 flair_group_ids = 3; } message CSteamTV_Search_Request { optional string term = 1; } message CSteamTV_Search_Response { repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of broadcasters"]; } message CSteamTV_GetSteamTVUserSettings_Request { } message CSteamTV_GetSteamTVUserSettings_Response { optional bool stream_live_email = 1 [(description) = "Send email when followed stream starts"]; optional bool stream_live_notification = 2 [(description) = "Send Steam notification when followed stream starts"]; } message CSteamTV_SetSteamTVUserSettings_Request { optional bool stream_live_email = 1 [(description) = "Send email when followed stream starts"]; optional bool stream_live_notification = 2 [(description) = "Send Steam notification when followed stream starts"]; } message CSteamTV_SetSteamTVUserSettings_Response { } message CSteamTV_GetMyBroadcastChannels_Request { } message CSteamTV_GetMyBroadcastChannels_Response { repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of broadcasters"]; } message CSteamTV_GetHomePageContents_Request { } message CSteamTV_HomePageTemplate_Takeover { repeated .GetBroadcastChannelEntry broadcasts = 1; } message CSteamTV_HomePageTemplate_SingleGame { repeated .GetBroadcastChannelEntry broadcasts = 1; optional uint32 appid = 2; optional string title = 3; } message GameListEntry { optional uint32 appid = 1; optional string game_name = 2; optional .GetBroadcastChannelEntry broadcast = 3; } message CSteamTV_HomePageTemplate_GameList { repeated .GameListEntry entries = 1; optional string title = 2; } message CSteamTV_HomePageTemplate_QuickExplore { repeated .GetBroadcastChannelEntry broadcasts = 1; optional string title = 2; } message CSteamTV_HomePageTemplate_ConveyorBelt { repeated .GetBroadcastChannelEntry broadcasts = 1; optional string title = 2; } message CSteamTV_HomePageTemplate_WatchParty { optional .GetBroadcastChannelEntry broadcast = 1; optional string title = 2; optional uint64 chat_group_id = 3; } message CSteamTV_HomePageTemplate_Developer { optional .GetBroadcastChannelEntry broadcast = 1; optional string title = 2; } message CSteamTV_HomePageTemplate_Event { optional string title = 1; } message CSteamTV_HomePageContentRow { optional .ESteamTVContentTemplate template_type = 1 [default = k_ESteamTVContentTemplate_Invalid]; optional .CSteamTV_HomePageTemplate_Takeover takeover = 2; optional .CSteamTV_HomePageTemplate_SingleGame single_game = 3; optional .CSteamTV_HomePageTemplate_GameList game_list = 4; optional .CSteamTV_HomePageTemplate_QuickExplore quick_explore = 5; optional .CSteamTV_HomePageTemplate_ConveyorBelt conveyor_belt = 6; optional .CSteamTV_HomePageTemplate_WatchParty watch_party = 7; optional .CSteamTV_HomePageTemplate_Developer developer = 8; optional .CSteamTV_HomePageTemplate_Event event = 9; } message CSteamTV_GetHomePageContents_Response { repeated .CSteamTV_HomePageContentRow rows = 1; } message CSteamTV_AppCheer_SingleCheerType { optional uint32 cheer_type = 1 [(description) = "The type of cheer. App dependent (different teams, heroes, players, etc)"]; optional uint32 cheer_amount = 2 [(description) = "The amount of cheers."]; } message CSteamTV_AppCheer_Request { optional uint32 app_id = 1 [(description) = "App ID this cheer is for."]; optional fixed64 cheer_target_id = 2 [(description) = "The thing being cheered on. ID is app dependent (could be steam id, match id, lobby id, server id, etc)."]; repeated .CSteamTV_AppCheer_SingleCheerType cheers = 3 [(description) = "The set of cheers this request represents (could be multiple of different types)."]; } message CSteamTV_AppCheer_Response { optional uint32 aggregation_delay_ms = 1 [(description) = "The amount of time in milliseconds that the client should aggregate cheers before sending them. The server can control this dynamically to ask clients to slow down sending."]; } service SteamTV { option (service_description) = "Methods for Steam TV operations"; rpc CreateBroadcastChannel (.CSteamTV_CreateBroadcastChannel_Request) returns (.CSteamTV_CreateBroadcastChannel_Response) { option (method_description) = "Create a channel on SteamTV"; } rpc GetBroadcastChannelID (.CSteamTV_GetBroadcastChannelID_Request) returns (.CSteamTV_GetBroadcastChannelID_Response) { option (method_description) = "Get a broadcast channel ID for a channel by name or owner SteamID"; } rpc SetBroadcastChannelProfile (.CSteamTV_SetBroadcastChannelProfile_Request) returns (.CSteamTV_SetBroadcastChannelProfile_Response) { option (method_description) = "Set broadcast channel profile data"; } rpc GetBroadcastChannelProfile (.CSteamTV_GetBroadcastChannelProfile_Request) returns (.CSteamTV_GetBroadcastChannelProfile_Response) { option (method_description) = "Get broadcast channel profile data"; } rpc SetBroadcastChannelImage (.CSteamTV_SetBroadcastChannelImage_Request) returns (.CSteamTV_SetBroadcastChannelImage_Response) { option (method_description) = "Set broadcast channel image hash"; } rpc GetBroadcastChannelImages (.CSteamTV_GetBroadcastChannelImages_Request) returns (.CSteamTV_GetBroadcastChannelImages_Response) { option (method_description) = "Get broadcast channel images"; } rpc SetBroadcastChannelLinkRegions (.CSteamTV_SetBroadcastChannelLinkRegions_Request) returns (.CSteamTV_SetBroadcastChannelLinkRegions_Response) { option (method_description) = "Set broadcast channel link regions"; } rpc GetBroadcastChannelLinks (.CSteamTV_GetBroadcastChannelLinks_Request) returns (.CSteamTV_GetBroadcastChannelLinks_Response) { option (method_description) = "Get broadcast channel link regions"; } rpc GetBroadcastChannelBroadcasters (.CSteamTV_GetBroadcastChannelBroadcasters_Request) returns (.CSteamTV_GetBroadcastChannelBroadcasters_Response) { option (method_description) = "Get list of broadcaster info for this channel"; } rpc GetFollowedChannels (.CSteamTV_GetFollowedChannels_Request) returns (.CSteamTV_GetFollowedChannels_Response) { option (method_description) = "Get list of followed channels by a viewer"; } rpc GetSubscribedChannels (.CSteamTV_GetSubscribedChannels_Request) returns (.CSteamTV_GetSubscribedChannels_Response) { option (method_description) = "Get list of channels a user is subscribed to"; } rpc GetBroadcastChannelStatus (.CSteamTV_GetBroadcastChannelStatus_Request) returns (.CSteamTV_GetBroadcastChannelStatus_Response) { option (method_description) = "Get broadcast channel live status"; } rpc FollowBroadcastChannel (.CSteamTV_FollowBroadcastChannel_Request) returns (.CSteamTV_FollowBroadcastChannel_Response) { option (method_description) = "Follow a broadcast channel"; } rpc SubscribeBroadcastChannel (.CSteamTV_SubscribeBroadcastChannel_Request) returns (.CSteamTV_SubscribeBroadcastChannel_Response) { option (method_description) = "Subscribe to a broadcast channel"; } rpc GetBroadcastChannelClips (.CSteamTV_GetBroadcastChannelClips_Request) returns (.CSteamTV_GetBroadcastChannelClips_Response) { option (method_description) = "Get broadcast channel clips"; } rpc ReportBroadcastChannel (.CSteamTV_ReportBroadcastChannel_Request) returns (.CSteamTV_ReportBroadcastChannel_Response) { option (method_description) = "Report a broadcast channel"; } rpc GetBroadcastChannelInteraction (.CSteamTV_GetBroadcastChannelInteraction_Request) returns (.CSteamTV_GetBroadcastChannelInteraction_Response) { option (method_description) = "Get user's interaction status with a broadcast channel"; } rpc GetGames (.CSteamTV_GetGames_Request) returns (.CSteamTV_GetGames_Response) { option (method_description) = "Get list of games with active broadcasters"; } rpc GetChannels (.CSteamTV_GetChannels_Request) returns (.CSteamTV_GetChannels_Response) { option (method_description) = "Get the list of featured broadcast channels"; } rpc AddChatBan (.CSteamTV_AddChatBan_Request) returns (.CSteamTV_AddChatBan_Response) { option (method_description) = "Set the ban for a specific broadcaster. The issuer is the logged in steam account"; } rpc GetChatBans (.CSteamTV_GetChatBans_Request) returns (.CSteamTV_GetChatBans_Response) { option (method_description) = "Get list of bans for a specific broadcaster. "; } rpc AddChatModerator (.CSteamTV_AddChatModerator_Request) returns (.CSteamTV_AddChatModerator_Response) { option (method_description) = "Add or remove a moderator for this broadcast channel"; } rpc GetChatModerators (.CSteamTV_GetChatModerators_Request) returns (.CSteamTV_GetChatModerators_Response) { option (method_description) = "Returns the list of moderators for this broadcast channel"; } rpc AddWordBan (.CSteamTV_AddWordBan_Request) returns (.CSteamTV_AddWordBan_Response) { option (method_description) = "Add or remove a banned keyword in this broadcast channel chat"; } rpc GetWordBans (.CSteamTV_GetWordBans_Request) returns (.CSteamTV_GetWordBans_Response) { option (method_description) = "Returns the list of banned keywords for this broadcast channel"; } rpc JoinChat (.CSteamTV_JoinChat_Request) returns (.CSteamTV_JoinChat_Response) { option (method_description) = "Joins the chat channel for a broadcast"; } rpc Search (.CSteamTV_Search_Request) returns (.CSteamTV_Search_Response) { option (method_description) = "Searches for broadcast channels based on input keywords"; } rpc GetSteamTVUserSettings (.CSteamTV_GetSteamTVUserSettings_Request) returns (.CSteamTV_GetSteamTVUserSettings_Response) { option (method_description) = "Returns a user's SteamTV settings"; } rpc SetSteamTVUserSettings (.CSteamTV_SetSteamTVUserSettings_Request) returns (.CSteamTV_SetSteamTVUserSettings_Response) { option (method_description) = "Sets a user's SteamTV settings"; } rpc GetMyBroadcastChannels (.CSteamTV_GetMyBroadcastChannels_Request) returns (.CSteamTV_GetMyBroadcastChannels_Response) { option (method_description) = "Gets the broadcast channels that the current user owns"; } rpc GetHomePageContents (.CSteamTV_GetHomePageContents_Request) returns (.CSteamTV_GetHomePageContents_Response) { option (method_description) = "Returns homepage contents for user"; } rpc AppCheer (.CSteamTV_AppCheer_Request) returns (.CSteamTV_AppCheer_Response) { option (method_description) = "The user is cheering for a specific broadcast for a specific app."; } }