steamutils 1.3.18 → 1.3.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (218) hide show
  1. package/.idea/deployment.xml +21 -0
  2. package/.idea/steamutils.iml +1 -1
  3. package/.idea/vcs.xml +1 -1
  4. package/SteamClient.js +4 -0
  5. package/free_packages.json +10048 -10048
  6. package/index.js +33 -37
  7. package/package.json +1 -1
  8. package/protos/csgo/base_gcmessages_csgo.proto +547 -547
  9. package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
  10. package/protos/csgo/clientmessages.proto +48 -48
  11. package/protos/csgo/connectionless_netmessages.proto +19 -19
  12. package/protos/csgo/cs_gameevents.proto +34 -34
  13. package/protos/csgo/cs_usercmd.proto +34 -34
  14. package/protos/csgo/cstrike15_gcmessages.proto +1402 -1402
  15. package/protos/csgo/cstrike15_usermessages.proto +596 -596
  16. package/protos/csgo/demo.proto +160 -160
  17. package/protos/csgo/econ_gcmessages.proto +228 -228
  18. package/protos/csgo/engine_gcmessages.proto +14 -14
  19. package/protos/csgo/enums_clientserver.proto +1529 -1529
  20. package/protos/csgo/fatdemo.proto +125 -125
  21. package/protos/csgo/gameevents.proto +120 -120
  22. package/protos/csgo/gcsdk_gcmessages.proto +323 -323
  23. package/protos/csgo/gcsystemmsgs.proto +242 -242
  24. package/protos/csgo/netmessages.proto +604 -604
  25. package/protos/csgo/network_connection.proto +126 -126
  26. package/protos/csgo/networkbasetypes.proto +244 -244
  27. package/protos/csgo/networksystem_protomessages.proto +17 -17
  28. package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
  29. package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
  30. package/protos/csgo/steammessages.proto +597 -597
  31. package/protos/csgo/steammessages_base.proto +301 -301
  32. package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
  33. package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
  34. package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
  35. package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
  36. package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
  37. package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
  38. package/protos/csgo/steammessages_steamlearn.steamworkssdk.proto +357 -357
  39. package/protos/csgo/steammessages_unified_base.steamworkssdk.proto +30 -30
  40. package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
  41. package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
  42. package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
  43. package/protos/csgo/te.proto +259 -259
  44. package/protos/csgo/uifontfile_format.proto +13 -13
  45. package/protos/csgo/usercmd.proto +38 -38
  46. package/protos/csgo/usermessages.proto +721 -721
  47. package/protos/csgo/valveextensions.proto +17 -17
  48. package/protos/google/protobuf/descriptor.proto +281 -281
  49. package/protos/steam/clientmetrics.proto +45 -45
  50. package/protos/steam/content_manifest.proto +62 -62
  51. package/protos/steam/contenthubs.proto +41 -41
  52. package/protos/steam/encrypted_app_ticket.proto +10 -10
  53. package/protos/steam/enums.proto +444 -444
  54. package/protos/steam/enums_clientserver.proto +1539 -1539
  55. package/protos/steam/enums_productinfo.proto +13 -13
  56. package/protos/steam/htmlmessages.proto +1027 -1027
  57. package/protos/steam/offline_ticket.proto +8 -8
  58. package/protos/steam/renderer/rendermessages.proto +893 -893
  59. package/protos/steam/steamdatagram_messages_auth.proto +65 -65
  60. package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
  61. package/protos/steam/steammessages_accounthardware.steamclient.proto +201 -201
  62. package/protos/steam/steammessages_appoverview.proto +187 -187
  63. package/protos/steam/steammessages_auth.steamclient.proto +435 -435
  64. package/protos/steam/steammessages_base.proto +332 -332
  65. package/protos/steam/steammessages_broadcast.steamclient.proto +759 -759
  66. package/protos/steam/steammessages_chat.steamclient.proto +1281 -1281
  67. package/protos/steam/steammessages_client_objects.proto +645 -645
  68. package/protos/steam/steammessages_clientlanp2p.proto +42 -42
  69. package/protos/steam/steammessages_clientmetrics.steamclient.proto +194 -194
  70. package/protos/steam/steammessages_clientnotificationtypes.proto +231 -231
  71. package/protos/steam/steammessages_clientserver.proto +392 -392
  72. package/protos/steam/steammessages_clientserver_2.proto +760 -760
  73. package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
  74. package/protos/steam/steammessages_clientserver_friends.proto +260 -260
  75. package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
  76. package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
  77. package/protos/steam/steammessages_clientserver_login.proto +167 -167
  78. package/protos/steam/steammessages_clientserver_ucm.proto +205 -205
  79. package/protos/steam/steammessages_clientserver_uds.proto +124 -124
  80. package/protos/steam/steammessages_clientserver_ufs.proto +172 -172
  81. package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
  82. package/protos/steam/steammessages_clientsettings.proto +168 -168
  83. package/protos/steam/steammessages_cloud.steamclient.proto +513 -513
  84. package/protos/steam/steammessages_contentsystem.steamclient.proto +115 -115
  85. package/protos/steam/steammessages_credentials.steamclient.proto +115 -115
  86. package/protos/steam/steammessages_datapublisher.steamclient.proto +116 -116
  87. package/protos/steam/steammessages_depotbuilder.steamclient.proto +118 -118
  88. package/protos/steam/steammessages_deviceauth.steamclient.proto +203 -203
  89. package/protos/steam/steammessages_econ.steamclient.proto +150 -150
  90. package/protos/steam/steammessages_friendmessages.steamclient.proto +168 -168
  91. package/protos/steam/steammessages_gamenetworking.steamclient.proto +32 -32
  92. package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
  93. package/protos/steam/steammessages_gamenotifications.steamclient.proto +156 -156
  94. package/protos/steam/steammessages_gameservers.steamclient.proto +152 -152
  95. package/protos/steam/steammessages_hiddevices.proto +157 -157
  96. package/protos/steam/steammessages_inventory.steamclient.proto +224 -224
  97. package/protos/steam/steammessages_linkfilter.steamclient.proto +49 -49
  98. package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +33 -33
  99. package/protos/steam/steammessages_market.steamclient.proto +26 -26
  100. package/protos/steam/steammessages_marketingmessages.steamclient.proto +274 -274
  101. package/protos/steam/steammessages_offline.steamclient.proto +40 -40
  102. package/protos/steam/steammessages_parental.steamclient.proto +228 -228
  103. package/protos/steam/steammessages_parties.steamclient.proto +94 -94
  104. package/protos/steam/steammessages_partnerapps.steamclient.proto +138 -138
  105. package/protos/steam/steammessages_player.steamclient.proto +1060 -1060
  106. package/protos/steam/steammessages_publishedfile.steamclient.proto +813 -813
  107. package/protos/steam/steammessages_qms.steamclient.proto +125 -125
  108. package/protos/steam/steammessages_remoteclient.proto +99 -99
  109. package/protos/steam/steammessages_remoteclient_discovery.proto +235 -235
  110. package/protos/steam/steammessages_remoteclient_service.steamclient.proto +86 -86
  111. package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
  112. package/protos/steam/steammessages_remoteplay.proto +976 -976
  113. package/protos/steam/steammessages_secrets.steamclient.proto +39 -39
  114. package/protos/steam/steammessages_shader.steamclient.proto +108 -108
  115. package/protos/steam/steammessages_site_license.steamclient.proto +128 -128
  116. package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
  117. package/protos/steam/steammessages_siteserverui.proto +130 -130
  118. package/protos/steam/steammessages_star.steamclient.proto +64 -64
  119. package/protos/steam/steammessages_steamtv.steamclient.proto +630 -630
  120. package/protos/steam/steammessages_store.steamclient.proto +371 -371
  121. package/protos/steam/steammessages_storebrowse.steamclient.proto +402 -402
  122. package/protos/steam/steammessages_timedtrial.steamclient.proto +50 -50
  123. package/protos/steam/steammessages_twofactor.steamclient.proto +186 -186
  124. package/protos/steam/steammessages_unified_base.steamclient.proto +33 -33
  125. package/protos/steam/steammessages_unified_test.steamclient.proto +61 -61
  126. package/protos/steam/steammessages_useraccount.steamclient.proto +249 -249
  127. package/protos/steam/steammessages_vac.steamclient.proto +44 -44
  128. package/protos/steam/steammessages_video.steamclient.proto +171 -171
  129. package/protos/steam/steammessages_virtualcontroller.proto +138 -138
  130. package/protos/steam/steammessages_workshop.steamclient.proto +23 -23
  131. package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
  132. package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
  133. package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
  134. package/protos/steam/webuimessages_base.proto +24 -24
  135. package/protos/steam/webuimessages_gamenotes.proto +21 -21
  136. package/protos/steam/webuimessages_steamengine.proto +32 -32
  137. package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
  138. package/protos/steam/webuimessages_systemmanager.proto +17 -17
  139. package/protos/steam/webuimessages_transport.proto +18 -18
  140. package/protos/steam/webuimessages_transportvalidation.proto +97 -97
  141. package/protos/webui/common.proto +5508 -5508
  142. package/protos/webui/common_base.proto +27 -27
  143. package/protos/webui/service_accountlinking.proto +27 -27
  144. package/protos/webui/service_accountprivacy.proto +42 -42
  145. package/protos/webui/service_auction.proto +97 -97
  146. package/protos/webui/service_authentication.proto +222 -222
  147. package/protos/webui/service_authenticationsupport.proto +74 -74
  148. package/protos/webui/service_broadcast.proto +562 -562
  149. package/protos/webui/service_chat.proto +11 -11
  150. package/protos/webui/service_chatroom.proto +810 -810
  151. package/protos/webui/service_chatusability.proto +107 -107
  152. package/protos/webui/service_clan.proto +41 -41
  153. package/protos/webui/service_clanchatrooms.proto +25 -25
  154. package/protos/webui/service_clanfaqs.proto +202 -202
  155. package/protos/webui/service_clientcomm.proto +150 -150
  156. package/protos/webui/service_clientmetrics.proto +63 -63
  157. package/protos/webui/service_cloud.proto +222 -222
  158. package/protos/webui/service_cloudconfigstore.proto +51 -51
  159. package/protos/webui/service_cloudgaming.proto +30 -30
  160. package/protos/webui/service_community.proto +365 -365
  161. package/protos/webui/service_econ.proto +134 -134
  162. package/protos/webui/service_embedded.proto +24 -24
  163. package/protos/webui/service_experimentservice.proto +6 -6
  164. package/protos/webui/service_fovasvideo.proto +15 -15
  165. package/protos/webui/service_friendmessages.proto +133 -133
  166. package/protos/webui/service_friendslist.proto +70 -70
  167. package/protos/webui/service_gamenotes.proto +15 -15
  168. package/protos/webui/service_helprequestlogs.proto +26 -26
  169. package/protos/webui/service_loyaltyrewards.proto +252 -252
  170. package/protos/webui/service_marketingmessages.proto +184 -184
  171. package/protos/webui/service_mobileapp.proto +18 -18
  172. package/protos/webui/service_mobileauth.proto +24 -24
  173. package/protos/webui/service_mobiledevice.proto +26 -26
  174. package/protos/webui/service_mobileperaccount.proto +31 -31
  175. package/protos/webui/service_news.proto +101 -101
  176. package/protos/webui/service_parental.proto +178 -178
  177. package/protos/webui/service_partnermembershipinvite.proto +29 -29
  178. package/protos/webui/service_partnerstorebrowse.proto +6 -6
  179. package/protos/webui/service_phone.proto +51 -51
  180. package/protos/webui/service_physicalgoods.proto +15 -15
  181. package/protos/webui/service_player.proto +885 -885
  182. package/protos/webui/service_promotioneventinvites.proto +50 -50
  183. package/protos/webui/service_promotionplanning.proto +72 -72
  184. package/protos/webui/service_publishedfile.proto +687 -687
  185. package/protos/webui/service_publishing.proto +119 -119
  186. package/protos/webui/service_quest.proto +127 -127
  187. package/protos/webui/service_salefeature.proto +315 -315
  188. package/protos/webui/service_saleitemrewards.proto +54 -54
  189. package/protos/webui/service_shoppingcart.proto +108 -108
  190. package/protos/webui/service_steamawards.proto +19 -19
  191. package/protos/webui/service_steamcharts.proto +75 -75
  192. package/protos/webui/service_steamengine.proto +36 -36
  193. package/protos/webui/service_steamlearn.proto +727 -727
  194. package/protos/webui/service_steamnotification.proto +84 -84
  195. package/protos/webui/service_steamtv.proto +495 -495
  196. package/protos/webui/service_steamvrvoicechat.proto +67 -67
  197. package/protos/webui/service_steamvrwebrtc.proto +48 -48
  198. package/protos/webui/service_storagedevicemanager.proto +104 -104
  199. package/protos/webui/service_store.proto +289 -289
  200. package/protos/webui/service_storeappsimilarity.proto +76 -76
  201. package/protos/webui/service_storebrowse.proto +73 -73
  202. package/protos/webui/service_storequery.proto +97 -97
  203. package/protos/webui/service_storesales.proto +15 -15
  204. package/protos/webui/service_storetopsellers.proto +44 -44
  205. package/protos/webui/service_systemmanager.proto +11 -11
  206. package/protos/webui/service_test_transporterror.proto +6 -6
  207. package/protos/webui/service_transportauth.proto +12 -12
  208. package/protos/webui/service_transportvalidation.proto +69 -69
  209. package/protos/webui/service_twofactor.proto +181 -181
  210. package/protos/webui/service_useraccount.proto +138 -138
  211. package/protos/webui/service_usergameactivity.proto +34 -34
  212. package/protos/webui/service_usergamenotes.proto +53 -53
  213. package/protos/webui/service_usernews.proto +68 -68
  214. package/protos/webui/service_userreviews.proto +96 -96
  215. package/protos/webui/service_video.proto +128 -128
  216. package/protos/webui/service_voicechat.proto +139 -139
  217. package/protos/webui/service_webrtc.proto +52 -52
  218. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
@@ -1,759 +1,759 @@
1
- import "steammessages_base.proto";
2
- import "steammessages_unified_base.steamclient.proto";
3
-
4
- option cc_generic_services = true;
5
-
6
- enum EBroadcastWatchLocation {
7
- k_EBroadcastWatchLocation_Invalid = 0;
8
- k_EBroadcastWatchLocation_SteamTV_Tab = 1;
9
- k_EBroadcastWatchLocation_SteamTV_WatchParty = 2;
10
- k_EBroadcastWatchLocation_Chat_Tab = 3;
11
- k_EBroadcastWatchLocation_Chat_WatchParty = 4;
12
- k_EBroadcastWatchLocation_CommunityPage = 5;
13
- k_EBroadcastWatchLocation_StoreAppPage = 6;
14
- k_EBroadcastWatchLocation_InGame = 7;
15
- k_EBroadcastWatchLocation_BigPicture = 8;
16
- k_EBroadcastWatchLocation_SalesPage = 9;
17
- k_EBroadcastWatchLocation_CuratorPage = 10;
18
- k_EBroadcastWatchLocation_DeveloperPage = 11;
19
- k_EBroadcastWatchLocation_Chat_Friends = 12;
20
- k_EBroadcastWatchLocation_SteamTV_Web = 13;
21
- k_EBroadcastWatchLocation_DesktopUI_Overlay = 14;
22
- }
23
-
24
- enum EBroadcastChatPermission {
25
- k_EBroadcastChatPermissionPublic = 0;
26
- k_EBroadcastChatPermissionOwnsApp = 1;
27
- }
28
-
29
- message CBroadcast_BeginBroadcastSession_Request {
30
- optional int32 permission = 1;
31
- optional uint64 gameid = 2;
32
- optional uint64 client_instance_id = 3;
33
- optional string title = 4;
34
- optional uint32 cellid = 5;
35
- optional uint64 rtmp_token = 6;
36
- optional bool thumbnail_upload = 7;
37
- optional string client_beta = 8;
38
- optional uint32 sysid = 9;
39
- optional bool allow_webrtc = 10;
40
- }
41
-
42
- message CBroadcast_BeginBroadcastSession_Response {
43
- optional fixed64 broadcast_id = 1;
44
- optional string thumbnail_upload_address = 2 [(description) = "Http address to upload the thumbnail data."];
45
- optional string thumbnail_upload_token = 3 [(description) = "token to authorize as broadcaster to upload content to the relay."];
46
- optional uint32 thumbnail_interval_seconds = 4 [(description) = "how many seconds between thumbnails"];
47
- optional uint32 heartbeat_interval_seconds = 5 [(description) = "how many seconds between session heartbeats"];
48
- }
49
-
50
- message CBroadcast_EndBroadcastSession_Request {
51
- optional fixed64 broadcast_id = 1;
52
- }
53
-
54
- message CBroadcast_EndBroadcastSession_Response {
55
- }
56
-
57
- message CBroadcast_StartBroadcastUpload_Request {
58
- optional fixed64 broadcast_id = 1;
59
- optional uint32 cellid = 2;
60
- optional bool as_rtmp = 3;
61
- optional uint32 delay_seconds = 4;
62
- optional uint64 rtmp_token = 5 [default = 0, (description) = "Only set during RTMP uploads; secret key from the user."];
63
- optional uint32 upload_ip_address = 6;
64
- optional bool is_replay = 7;
65
- optional uint32 sysid = 8;
66
- }
67
-
68
- message CBroadcast_StartBroadcastUpload_Response {
69
- optional string upload_token = 1;
70
- optional string upload_address = 2;
71
- optional fixed64 broadcast_upload_id = 3;
72
- optional bool enable_replay = 6;
73
- optional string http_address = 7;
74
- }
75
-
76
- message CBroadcast_NotifyBroadcastUploadStop_Notification {
77
- optional fixed64 broadcast_upload_id = 1;
78
- optional uint32 upload_result = 2;
79
- }
80
-
81
- message CBroadcast_WatchBroadcast_Request {
82
- optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
83
- optional fixed64 existing_broadcast_id = 2 [(description) = "broadcast session ID (optional, rejoin if specified)."];
84
- optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
85
- optional uint32 client_cell = 5;
86
- optional .EBroadcastWatchLocation watch_location = 6 [default = k_EBroadcastWatchLocation_Invalid];
87
- optional bool is_webrtc = 7;
88
- }
89
-
90
- message CBroadcast_WatchBroadcast_Response {
91
- enum EWatchResponse {
92
- k_EWatchResponseReady = 1;
93
- k_EWatchResponseNotAvailable = 2;
94
- k_EWatchResponseWaitingForApproval = 3;
95
- k_EWatchResponseWaitingForStart = 4;
96
- k_EWatchResponseInvalidSession = 5;
97
- k_EWatchResponseTooManyBroadcasts = 6;
98
- k_EWatchResponseWaitingForReconnect = 7;
99
- k_EWatchResponseSystemNotSupported = 8;
100
- k_EWatchResponseUserRestricted = 9;
101
- k_EWatchResponseClientOutOfDate = 10;
102
- k_EWatchResponsePoorUploadQuality = 11;
103
- k_EWatchResponseMissingSubscription = 12;
104
- }
105
-
106
- optional .CBroadcast_WatchBroadcast_Response.EWatchResponse response = 1 [default = k_EWatchResponseReady];
107
- optional string mpd_url = 2;
108
- optional fixed64 broadcast_id = 3;
109
- optional uint64 gameid = 4;
110
- optional string title = 5;
111
- optional uint32 num_viewers = 6;
112
- optional int32 permission = 7;
113
- optional bool is_rtmp = 8;
114
- optional int32 seconds_delay = 9;
115
- optional fixed64 viewer_token = 10;
116
- optional string hls_m3u8_master_url = 11;
117
- optional int32 heartbeat_interval = 12;
118
- optional string thumbnail_url = 13;
119
- optional bool is_webrtc = 14;
120
- optional fixed64 webrtc_session_id = 15;
121
- optional string webrtc_offer_sdp = 16;
122
- optional string webrtc_turn_server = 17;
123
- optional bool is_replay = 18;
124
- optional int32 duration = 19;
125
- optional string cdn_auth_url_parameters = 20;
126
- }
127
-
128
- message CBroadcast_HeartbeatBroadcast_Notification {
129
- optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
130
- optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID."];
131
- optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
132
- optional uint32 representation = 4 [(description) = "video stream representation watching"];
133
- }
134
-
135
- message CBroadcast_StopWatchingBroadcast_Notification {
136
- optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
137
- optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID."];
138
- optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
139
- }
140
-
141
- message CBroadcast_GetBroadcastStatus_Request {
142
- optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
143
- optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID to proof that user is allowed to see details."];
144
- }
145
-
146
- message CBroadcast_GetBroadcastStatus_Response {
147
- optional uint64 gameid = 1;
148
- optional string title = 2;
149
- optional uint32 num_viewers = 3;
150
- optional int32 permission = 4;
151
- optional bool is_rtmp = 5;
152
- optional int32 seconds_delay = 6;
153
- optional bool is_publisher = 7;
154
- optional string thumbnail_url = 8;
155
- optional int32 update_interval = 9;
156
- optional bool is_uploading = 10;
157
- optional uint32 duration = 11;
158
- optional bool is_replay = 12;
159
- optional bool is_capturing_vod = 13;
160
- optional bool is_store_whitelisted = 14;
161
- }
162
-
163
- message CBroadcast_GetBroadcastThumbnail_Request {
164
- optional fixed64 steamid = 1;
165
- optional fixed64 broadcast_id = 2;
166
- }
167
-
168
- message CBroadcast_GetBroadcastThumbnail_Response {
169
- optional string thumbnail_url = 1;
170
- optional int32 update_interval = 2;
171
- optional int32 num_viewers = 3;
172
- optional int32 duration = 4;
173
- }
174
-
175
- message CBroadcast_InviteToBroadcast_Request {
176
- optional fixed64 steamid = 1;
177
- optional bool approval_response = 2;
178
- }
179
-
180
- message CBroadcast_InviteToBroadcast_Response {
181
- optional bool success = 1;
182
- }
183
-
184
- message CBroadcast_SendBroadcastStateToServer_Request {
185
- optional int32 permission = 1;
186
- optional uint64 gameid = 2;
187
- optional string title = 3;
188
- optional string game_data_config = 4;
189
- }
190
-
191
- message CBroadcast_SendBroadcastStateToServer_Response {
192
- }
193
-
194
- message CBroadcast_NotifyBroadcastSessionHeartbeat_Notification {
195
- optional fixed64 broadcast_id = 1;
196
- }
197
-
198
- message CBroadcast_GetBroadcastChatInfo_Request {
199
- optional fixed64 steamid = 1;
200
- optional fixed64 broadcast_id = 2;
201
- optional uint32 client_ip = 3;
202
- optional uint32 client_cell = 4;
203
- }
204
-
205
- message CBroadcast_GetBroadcastChatInfo_Response {
206
- optional fixed64 chat_id = 1;
207
- optional string view_url_template = 3;
208
- repeated uint32 flair_group_ids = 4;
209
- }
210
-
211
- message CBroadcast_PostChatMessage_Request {
212
- optional fixed64 chat_id = 1;
213
- optional string message = 2;
214
- optional uint32 instance_id = 3;
215
- optional uint32 language = 4 [default = 0, (description) = "ELanguage of the user posting the message, default is english"];
216
- optional string country_code = 5 [(description) = "The two letter country code"];
217
- }
218
-
219
- message CBroadcast_PostChatMessage_Response {
220
- optional string persona_name = 1;
221
- optional bool in_game = 2;
222
- optional int32 result = 3;
223
- optional int32 cooldown_time_seconds = 4;
224
- }
225
-
226
- message CBroadcast_UpdateChatMessageFlair_Request {
227
- optional fixed64 chat_id = 1;
228
- optional string flair = 2;
229
- }
230
-
231
- message CBroadcast_UpdateChatMessageFlair_Response {
232
- optional int32 result = 1;
233
- optional fixed64 chat_id = 2;
234
- optional string flair = 3;
235
- }
236
-
237
- message CBroadcast_MuteBroadcastChatUser_Request {
238
- optional fixed64 chat_id = 1;
239
- optional fixed64 user_steamid = 2;
240
- optional bool muted = 3;
241
- }
242
-
243
- message CBroadcast_MuteBroadcastChatUser_Response {
244
- }
245
-
246
- message CBroadcast_RemoveUserChatText_Request {
247
- optional fixed64 chat_id = 1;
248
- optional fixed64 user_steamid = 2;
249
- }
250
-
251
- message CBroadcast_RemoveUserChatText_Response {
252
- }
253
-
254
- message CBroadcast_GetBroadcastChatUserNames_Request {
255
- optional fixed64 chat_id = 1;
256
- repeated fixed64 user_steamid = 2;
257
- }
258
-
259
- message CBroadcast_GetBroadcastChatUserNames_Response {
260
- message PersonaName {
261
- optional fixed64 steam_id = 1 [(allow_field_named_steam_id) = true];
262
- optional string persona = 2;
263
- }
264
-
265
- repeated .CBroadcast_GetBroadcastChatUserNames_Response.PersonaName persona_names = 1;
266
- }
267
-
268
- message CBroadcast_StartBuildClip_Request {
269
- optional fixed64 steamid = 1;
270
- optional fixed64 broadcast_session_id = 2;
271
- optional int32 first_segment = 3;
272
- optional int32 num_segments = 4;
273
- optional string clip_description = 5;
274
- }
275
-
276
- message CBroadcast_StartBuildClip_Response {
277
- optional fixed64 broadcast_clip_id = 1;
278
- }
279
-
280
- message CBroadcast_GetBuildClipStatus_Request {
281
- optional fixed64 broadcast_clip_id = 1;
282
- }
283
-
284
- message CBroadcast_GetBuildClipStatus_Response {
285
- }
286
-
287
- message CBroadcast_SetClipDetails_Request {
288
- optional uint64 broadcast_clip_id = 1 [(description) = "Clip ID"];
289
- optional uint32 start_time = 2 [(description) = "start time of the clip"];
290
- optional uint32 end_time = 3 [(description) = "end time of the clip"];
291
- optional string video_description = 4;
292
- }
293
-
294
- message CBroadcast_SetClipDetails_Response {
295
- }
296
-
297
- message CBroadcast_GetClipDetails_Request {
298
- optional uint64 broadcast_clip_id = 1 [(description) = "List of clip IDs we want details for"];
299
- }
300
-
301
- message CBroadcast_GetClipDetails_Response {
302
- optional uint64 broadcast_clip_id = 1 [(description) = "broadcast clip ID"];
303
- optional uint64 video_id = 2 [(description) = "matching unique video ID"];
304
- optional uint64 channel_id = 3 [(description) = "Broadcast Channel ID"];
305
- optional uint32 app_id = 4 [(description) = "App ID stream is tagged with"];
306
- optional uint32 accountid_broadcaster = 5 [(description) = "Account ID of broadcaster"];
307
- optional uint32 accountid_clipmaker = 6 [(description) = "Account ID of clip-maker"];
308
- optional string video_description = 7 [(description) = "Short name or description of this clip"];
309
- optional uint32 start_time = 8 [(description) = "Wall time clip was broadcasted live"];
310
- optional uint32 length_milliseconds = 9 [(description) = "length of video in MS"];
311
- optional string thumbnail_path = 10 [(description) = "Path for thumbnail URL"];
312
- }
313
-
314
- message CBroadcast_SetRTMPInfo_Request {
315
- optional int32 broadcast_permission = 1;
316
- optional bool update_token = 2;
317
- optional int32 broadcast_delay = 3;
318
- optional uint32 app_id = 4;
319
- optional uint32 required_app_id = 5;
320
- optional .EBroadcastChatPermission broadcast_chat_permission = 6 [default = k_EBroadcastChatPermissionPublic, (description) = "Who is permitted to send a chat message during broadcast"];
321
- optional int32 broadcast_buffer = 7 [(description) = "Previous seconds we keep of the stream available"];
322
- optional fixed64 steamid = 8 [(description) = "broadcaster steamID if not logged-in user"];
323
- optional uint32 chat_rate_limit = 9 [(description) = "Seconds required between chat messages"];
324
- optional bool enable_replay = 10 [(description) = "Enable replay of last upload"];
325
- optional bool is_partner_chat_only = 11 [(description) = "When true, then only steamwork partner can create chat messages."];
326
- optional string wordban_list = 12;
327
- }
328
-
329
- message CBroadcast_SetRTMPInfo_Response {
330
- }
331
-
332
- message CBroadcast_GetRTMPInfo_Request {
333
- optional uint32 ip = 1;
334
- optional fixed64 steamid = 2 [(description) = "broadcaster steamID if not logged-in user"];
335
- }
336
-
337
- message CBroadcast_GetRTMPInfo_Response {
338
- optional int32 broadcast_permission = 1;
339
- optional string rtmp_host = 2;
340
- optional string rtmp_token = 3;
341
- optional int32 broadcast_delay = 4;
342
- optional uint32 app_id = 5;
343
- optional uint32 required_app_id = 6;
344
- optional .EBroadcastChatPermission broadcast_chat_permission = 7 [default = k_EBroadcastChatPermissionPublic, (description) = "Who is permitted to send a chat message during broadcast"];
345
- optional int32 broadcast_buffer = 8 [(description) = "Seconds we keep streams available"];
346
- optional fixed64 steamid = 9 [(description) = "broadcaster steamID"];
347
- optional uint32 chat_rate_limit = 10 [(description) = "Seconds required between chat messages"];
348
- optional bool enable_replay = 11 [(description) = "Enable replay of last upload"];
349
- optional bool is_partner_chat_only = 12 [(description) = "When true, then only steamwork partner can create chat messages."];
350
- optional string wordban_list = 13;
351
- }
352
-
353
- message CBroadcast_WebRTCHaveTURNServer_Notification {
354
- optional fixed64 broadcast_session_id = 1;
355
- optional string turn_server = 2;
356
- }
357
-
358
- message CBroadcast_WebRTCStartResult_Request {
359
- optional fixed64 webrtc_session_id = 1;
360
- optional bool started = 2;
361
- optional string offer = 3;
362
- optional uint32 resolution_x = 4;
363
- optional uint32 resolution_y = 5;
364
- optional uint32 fps = 6;
365
- }
366
-
367
- message CBroadcast_WebRTCStartResult_Response {
368
- }
369
-
370
- message CBroadcast_WebRTCStopped_Request {
371
- optional fixed64 webrtc_session_id = 1;
372
- }
373
-
374
- message CBroadcast_WebRTCStopped_Response {
375
- }
376
-
377
- message CBroadcast_WebRTCSetAnswer_Request {
378
- optional fixed64 broadcaster_steamid = 1;
379
- optional fixed64 webrtc_session_id = 2;
380
- optional string answer = 3;
381
- }
382
-
383
- message CBroadcast_WebRTCSetAnswer_Response {
384
- }
385
-
386
- message CBroadcast_WebRTCLookupTURNServer_Request {
387
- optional uint32 cellid = 1;
388
- }
389
-
390
- message CBroadcast_WebRTCLookupTURNServer_Response {
391
- optional string turn_server = 1;
392
- }
393
-
394
- message CBroadcast_WebRTC_Candidate {
395
- optional string sdp_mid = 1;
396
- optional int32 sdp_mline_index = 2;
397
- optional string candidate = 3;
398
- }
399
-
400
- message CBroadcast_WebRTCAddHostCandidate_Request {
401
- optional fixed64 webrtc_session_id = 1;
402
- optional .CBroadcast_WebRTC_Candidate candidate = 2;
403
- }
404
-
405
- message CBroadcast_WebRTCAddHostCandidate_Response {
406
- }
407
-
408
- message CBroadcast_WebRTCAddViewerCandidate_Request {
409
- optional fixed64 broadcaster_steamid = 1;
410
- optional fixed64 webrtc_session_id = 2;
411
- optional .CBroadcast_WebRTC_Candidate candidate = 3;
412
- }
413
-
414
- message CBroadcast_WebRTCAddViewerCandidate_Response {
415
- }
416
-
417
- message CBroadcast_WebRTCGetHostCandidates_Request {
418
- optional fixed64 broadcaster_steamid = 1;
419
- optional fixed64 webrtc_session_id = 2;
420
- optional uint32 candidate_generation = 3;
421
- }
422
-
423
- message CBroadcast_WebRTCGetHostCandidates_Response {
424
- optional uint32 candidate_generation = 1;
425
- repeated .CBroadcast_WebRTC_Candidate candidates = 2;
426
- }
427
-
428
- message CBroadcast_GetBroadcastUploadStats_Request {
429
- optional uint32 row_limit = 1 [default = 100, (description) = "How many at maximum to return."];
430
- optional uint32 start_time = 2 [default = 0, (description) = "Start time"];
431
- optional uint64 upload_id = 3 [(description) = "Optional relay upload ID - not compatible with session_id"];
432
- optional fixed64 steamid = 4 [(description) = "Optional the steamid whose stats you want, otherwise the user logged in - admin only"];
433
- optional uint64 session_id = 5 [(description) = "Optional broadcast session ID - not compatiable with upload_id"];
434
- }
435
-
436
- message CBroadcast_GetBroadcastUploadStats_Response {
437
- message UploadStats {
438
- optional uint32 upload_result = 1 [(description) = ""];
439
- optional uint32 time_stopped = 2 [(description) = "time broadcast upload stopped"];
440
- optional uint32 seconds_uploaded = 3 [(description) = "seconds of vido uploaded"];
441
- optional uint32 max_viewers = 4 [(description) = "max concurrent viewers"];
442
- optional uint32 resolution_x = 5 [(description) = "horizontal resultion"];
443
- optional uint32 resolution_y = 6 [(description) = "vertical resultion"];
444
- optional uint32 avg_bandwidth = 7 [(description) = ""];
445
- optional uint64 total_bytes = 8 [(description) = "total byte uploaded by broadcaster"];
446
- optional uint32 app_id = 9 [(description) = "game broadcasted"];
447
- optional uint32 total_unique_viewers = 10 [(description) = "total unique viewers seen"];
448
- optional uint64 total_seconds_watched = 11 [(description) = "total number of seconds watched by all viewers"];
449
- optional uint32 time_started = 12 [(description) = "time broadcast upload started"];
450
- optional uint64 upload_id = 13 [(description) = "broadcast relay upload id"];
451
- optional string local_address = 14 [(description) = "upload to server address"];
452
- optional string remote_address = 15 [(description) = "upload from client address"];
453
- optional uint32 frames_per_second = 16 [(description) = "frames per second"];
454
- optional uint32 num_representations = 17 [(description) = "number of video represetations"];
455
- optional string app_name = 18 [(description) = "game name"];
456
- optional bool is_replay = 19 [(description) = "replay of previous recording"];
457
- optional uint64 session_id = 20 [(description) = "broadcast session id"];
458
- }
459
-
460
- repeated .CBroadcast_GetBroadcastUploadStats_Response.UploadStats upload_stats = 1;
461
- }
462
-
463
- message CBroadcast_GetBroadcastViewerStats_Request {
464
- optional uint64 upload_id = 1 [(description) = "Get stats for this stream"];
465
- optional fixed64 steamid = 2 [(description) = "Optional: The steamid of the broadcast whose details you are requesting."];
466
- }
467
-
468
- message CBroadcast_GetBroadcastViewerStats_Response {
469
- message ViewerStats {
470
- optional uint32 time = 1 [(description) = "time of record"];
471
- optional uint32 num_viewers = 2 [(description) = "current number of viewers"];
472
- }
473
-
474
- message CountryStats {
475
- optional string country_code = 1 [(description) = "country code"];
476
- optional uint32 num_viewers = 2 [(description) = "number of viewers"];
477
- }
478
-
479
- repeated .CBroadcast_GetBroadcastViewerStats_Response.ViewerStats viewer_stats = 1;
480
- repeated .CBroadcast_GetBroadcastViewerStats_Response.CountryStats country_stats = 2;
481
- }
482
-
483
- message CBroadcast_BroadcastViewerState_Notification {
484
- enum EViewerState {
485
- k_EViewerNeedsApproval = 1;
486
- k_EViewerWatching = 2;
487
- k_EViewerLeft = 3;
488
- }
489
-
490
- optional fixed64 steamid = 1;
491
- optional .CBroadcast_BroadcastViewerState_Notification.EViewerState state = 2 [default = k_EViewerNeedsApproval];
492
- }
493
-
494
- message CBroadcast_WaitingBroadcastViewer_Notification {
495
- optional fixed64 broadcast_id = 1;
496
- }
497
-
498
- message CBroadcast_BroadcastUploadStarted_Notification {
499
- optional fixed64 broadcast_id = 1;
500
- optional string upload_token = 2;
501
- optional string upload_address = 3;
502
- optional string http_address = 4;
503
- optional fixed64 broadcast_upload_id = 5;
504
- optional uint32 heartbeat_interval_seconds = 6 [(description) = "how many seconds between session heartbeats"];
505
- optional bool is_rtmp = 7;
506
- }
507
-
508
- message CBroadcast_StopBroadcastUpload_Notification {
509
- optional fixed64 broadcast_id = 1;
510
- optional fixed64 broadcast_relay_id = 2;
511
- optional uint32 upload_result = 3;
512
- optional bool too_many_poor_uploads = 4;
513
- }
514
-
515
- message CBroadcast_SessionClosed_Notification {
516
- optional fixed64 broadcast_id = 1;
517
- }
518
-
519
- message CBroadcast_ViewerBroadcastInvite_Notification {
520
- optional fixed64 broadcaster_steamid = 1;
521
- }
522
-
523
- message CBroadcast_BroadcastStatus_Notification {
524
- optional fixed64 broadcast_id = 1;
525
- optional int32 num_viewers = 2;
526
- }
527
-
528
- message CBroadcast_BroadcastChannelLive_Notification {
529
- optional fixed64 broadcast_channel_id = 1;
530
- optional string broadcast_channel_name = 2;
531
- optional string broadcast_channel_avatar = 3;
532
- }
533
-
534
- message CBroadcast_SendThumbnailToRelay_Notification {
535
- optional string thumbnail_upload_token = 1;
536
- optional fixed64 thumbnail_broadcast_session_id = 2;
537
- optional bytes thumbnail_data = 3;
538
- optional uint32 thumbnail_width = 4;
539
- optional uint32 thumbnail_height = 5;
540
- }
541
-
542
- message CBroadcast_WebRTCNeedTURNServer_Notification {
543
- optional fixed64 broadcast_session_id = 1;
544
- }
545
-
546
- message CBroadcast_WebRTCStart_Notification {
547
- optional fixed64 broadcast_session_id = 1;
548
- optional fixed64 webrtc_session_id = 2;
549
- optional fixed64 viewer_steamid = 3;
550
- optional fixed64 viewer_token = 4;
551
- }
552
-
553
- message CBroadcast_WebRTCSetAnswer_Notification {
554
- optional fixed64 broadcast_session_id = 1;
555
- optional fixed64 webrtc_session_id = 2;
556
- optional string answer = 3;
557
- }
558
-
559
- message CBroadcast_WebRTCAddViewerCandidate_Notification {
560
- optional fixed64 broadcast_session_id = 1;
561
- optional fixed64 webrtc_session_id = 2;
562
- optional .CBroadcast_WebRTC_Candidate candidate = 3;
563
- }
564
-
565
- service Broadcast {
566
- option (service_description) = "Methods for Steam broadcast operations";
567
-
568
- rpc BeginBroadcastSession (.CBroadcast_BeginBroadcastSession_Request) returns (.CBroadcast_BeginBroadcastSession_Response) {
569
- option (method_description) = "Request from client to directory to begin a broadcast session. No data being sent to relay; just available for broadcast.";
570
- }
571
-
572
- rpc EndBroadcastSession (.CBroadcast_EndBroadcastSession_Request) returns (.CBroadcast_EndBroadcastSession_Response) {
573
- option (method_description) = "Request from client to stop a broadcast session. Any uploads will terminate.";
574
- }
575
-
576
- rpc StartBroadcastUpload (.CBroadcast_StartBroadcastUpload_Request) returns (.CBroadcast_StartBroadcastUpload_Response) {
577
- option (method_description) = "Request from client to begin sending video for a broadcast.";
578
- }
579
-
580
- rpc NotifyBroadcastUploadStop (.CBroadcast_NotifyBroadcastUploadStop_Notification) returns (.NoResponse) {
581
- option (method_description) = "Tells directory that client stopped uploading broadcast";
582
- }
583
-
584
- rpc WatchBroadcast (.CBroadcast_WatchBroadcast_Request) returns (.CBroadcast_WatchBroadcast_Response) {
585
- option (method_description) = "Request from viewer to watch a broadcast";
586
- }
587
-
588
- rpc HeartbeatBroadcast (.CBroadcast_HeartbeatBroadcast_Notification) returns (.NoResponse) {
589
- option (method_description) = "Notify directory that user is still watching.";
590
- }
591
-
592
- rpc StopWatchingBroadcast (.CBroadcast_StopWatchingBroadcast_Notification) returns (.NoResponse) {
593
- option (method_description) = "Request to immediately stop watching a broadcast. Optional Method, if not called, viewer will time out.";
594
- }
595
-
596
- rpc GetBroadcastStatus (.CBroadcast_GetBroadcastStatus_Request) returns (.CBroadcast_GetBroadcastStatus_Response) {
597
- option (method_description) = "Request from viewer about broadcast details";
598
- }
599
-
600
- rpc GetBroadcastThumbnail (.CBroadcast_GetBroadcastThumbnail_Request) returns (.CBroadcast_GetBroadcastThumbnail_Response) {
601
- option (method_description) = "Request thumbnail URL for broadcast";
602
- }
603
-
604
- rpc InviteToBroadcast (.CBroadcast_InviteToBroadcast_Request) returns (.CBroadcast_InviteToBroadcast_Response) {
605
- option (method_description) = "Invites another steam user to watch the caller's broadcast";
606
- }
607
-
608
- rpc SendBroadcastStateToServer (.CBroadcast_SendBroadcastStateToServer_Request) returns (.CBroadcast_SendBroadcastStateToServer_Response) {
609
- option (method_description) = "Sends users current broadcast state (permissions, game) to the server";
610
- }
611
-
612
- rpc NotifyBroadcastSessionHeartbeat (.CBroadcast_NotifyBroadcastSessionHeartbeat_Notification) returns (.NoResponse) {
613
- option (method_description) = "Tells directory broadcast session is still available";
614
- }
615
-
616
- rpc GetBroadcastChatInfo (.CBroadcast_GetBroadcastChatInfo_Request) returns (.CBroadcast_GetBroadcastChatInfo_Response) {
617
- option (method_description) = "Gets chat room info for a broadcast";
618
- }
619
-
620
- rpc PostChatMessage (.CBroadcast_PostChatMessage_Request) returns (.CBroadcast_PostChatMessage_Response) {
621
- option (method_description) = "Post chat message to specified chat room";
622
- }
623
-
624
- rpc UpdateChatMessageFlair (.CBroadcast_UpdateChatMessageFlair_Request) returns (.CBroadcast_UpdateChatMessageFlair_Response) {
625
- option (method_description) = "Update chat message flair in the specified chat room";
626
- }
627
-
628
- rpc MuteBroadcastChatUser (.CBroadcast_MuteBroadcastChatUser_Request) returns (.CBroadcast_MuteBroadcastChatUser_Response) {
629
- option (method_description) = "Mute a user in your broadcast chat";
630
- }
631
-
632
- rpc RemoveUserChatText (.CBroadcast_RemoveUserChatText_Request) returns (.CBroadcast_RemoveUserChatText_Response) {
633
- option (method_description) = "Tell all viewers to remove user chat text";
634
- }
635
-
636
- rpc GetBroadcastChatUserNames (.CBroadcast_GetBroadcastChatUserNames_Request) returns (.CBroadcast_GetBroadcastChatUserNames_Response) {
637
- option (method_description) = "Get names for list of users in chat";
638
- }
639
-
640
- rpc StartBuildClip (.CBroadcast_StartBuildClip_Request) returns (.CBroadcast_StartBuildClip_Response) {
641
- option (method_description) = "Start building a broadcast clip";
642
- }
643
-
644
- rpc GetBuildClipStatus (.CBroadcast_GetBuildClipStatus_Request) returns (.CBroadcast_GetBuildClipStatus_Response) {
645
- option (method_description) = "Start building a broadcast clip";
646
- }
647
-
648
- rpc SetClipDetails (.CBroadcast_SetClipDetails_Request) returns (.CBroadcast_SetClipDetails_Response) {
649
- option (method_description) = "Updates a broadcast clip";
650
- }
651
-
652
- rpc GetClipDetails (.CBroadcast_GetClipDetails_Request) returns (.CBroadcast_GetClipDetails_Response) {
653
- option (method_description) = "Get details for Broadcast Clips";
654
- }
655
-
656
- rpc SetRTMPInfo (.CBroadcast_SetRTMPInfo_Request) returns (.CBroadcast_SetRTMPInfo_Response) {
657
- option (method_description) = "Sets RTMP broadcast info";
658
- }
659
-
660
- rpc GetRTMPInfo (.CBroadcast_GetRTMPInfo_Request) returns (.CBroadcast_GetRTMPInfo_Response) {
661
- option (method_description) = "Gets RTMP broadcast info";
662
- }
663
-
664
- rpc NotifyWebRTCHaveTURNServer (.CBroadcast_WebRTCHaveTURNServer_Notification) returns (.NoResponse) {
665
- option (method_description) = "Notification from client to server with the client's TURN server";
666
- }
667
-
668
- rpc WebRTCStartResult (.CBroadcast_WebRTCStartResult_Request) returns (.CBroadcast_WebRTCStartResult_Response) {
669
- option (method_description) = "Notify the server that a WebRTC session has been created by the host";
670
- }
671
-
672
- rpc WebRTCStopped (.CBroadcast_WebRTCStopped_Request) returns (.CBroadcast_WebRTCStopped_Response) {
673
- option (method_description) = "Notify the server that a WebRTC session has been stopped by the host";
674
- }
675
-
676
- rpc WebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Request) returns (.CBroadcast_WebRTCSetAnswer_Response) {
677
- option (method_description) = "Notify the server that a WebRTC session has been created by the viewer";
678
- }
679
-
680
- rpc WebRTCLookupTURNServer (.CBroadcast_WebRTCLookupTURNServer_Request) returns (.CBroadcast_WebRTCLookupTURNServer_Response) {
681
- option (method_description) = "Lookup the best TURN server for this client";
682
- }
683
-
684
- rpc WebRTCAddHostCandidate (.CBroadcast_WebRTCAddHostCandidate_Request) returns (.CBroadcast_WebRTCAddHostCandidate_Response) {
685
- option (method_description) = "Add an ICE candidate for the host side of a WebRTC session";
686
- }
687
-
688
- rpc WebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Request) returns (.CBroadcast_WebRTCAddViewerCandidate_Response) {
689
- option (method_description) = "Add an ICE candidate for the viewer side of a WebRTC session";
690
- }
691
-
692
- rpc WebRTCGetHostCandidates (.CBroadcast_WebRTCGetHostCandidates_Request) returns (.CBroadcast_WebRTCGetHostCandidates_Response) {
693
- option (method_description) = "Get the ICE candidates for the host side of a WebRTC session";
694
- }
695
-
696
- rpc GetBroadcastUploadStats (.CBroadcast_GetBroadcastUploadStats_Request) returns (.CBroadcast_GetBroadcastUploadStats_Response) {
697
- option (method_description) = "Gets broadcast upload stats for user";
698
- }
699
-
700
- rpc GetBroadcastViewerStats (.CBroadcast_GetBroadcastViewerStats_Request) returns (.CBroadcast_GetBroadcastViewerStats_Response) {
701
- option (method_description) = "Gets viewer stats for given broadcast";
702
- }
703
- }
704
-
705
- service BroadcastClient {
706
- option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
707
-
708
- rpc NotifyBroadcastViewerState (.CBroadcast_BroadcastViewerState_Notification) returns (.NoResponse) {
709
- option (method_description) = "Notification from server to client that a viewers state has changed";
710
- }
711
-
712
- rpc NotifyWaitingBroadcastViewer (.CBroadcast_WaitingBroadcastViewer_Notification) returns (.NoResponse) {
713
- option (method_description) = "Notification from server to client one or more users is waiting for user to start broadcast";
714
- }
715
-
716
- rpc NotifyBroadcastUploadStarted (.CBroadcast_BroadcastUploadStarted_Notification) returns (.NoResponse) {
717
- option (method_description) = "Notification from server to client with information about a broadcast";
718
- }
719
-
720
- rpc NotifyStopBroadcastUpload (.CBroadcast_StopBroadcastUpload_Notification) returns (.NoResponse) {
721
- option (method_description) = "Notification from server to client telling it to stop uploading when the last viewer has disconnected from their broadcast";
722
- }
723
-
724
- rpc NotifySessionClosed (.CBroadcast_SessionClosed_Notification) returns (.NoResponse) {
725
- option (method_description) = "Notification from server to client telling it a session has been closed unexpectedly by the directory";
726
- }
727
-
728
- rpc NotifyViewerBroadcastInvite (.CBroadcast_ViewerBroadcastInvite_Notification) returns (.NoResponse) {
729
- option (method_description) = "Notification from server to client that a broadcaster is inviting a viewer to watch their broadcast";
730
- }
731
-
732
- rpc NotifyBroadcastStatus (.CBroadcast_BroadcastStatus_Notification) returns (.NoResponse) {
733
- option (method_description) = "Notification from server to client about current broadcast status";
734
- }
735
-
736
- rpc NotifyBroadcastChannelLive (.CBroadcast_BroadcastChannelLive_Notification) returns (.NoResponse) {
737
- option (method_description) = "Notification from server to client about current broadcast status";
738
- }
739
-
740
- rpc SendThumbnailToRelay (.CBroadcast_SendThumbnailToRelay_Notification) returns (.NoResponse) {
741
- option (method_description) = "Send thumbnails to relay";
742
- }
743
-
744
- rpc NotifyWebRTCNeedTURNServer (.CBroadcast_WebRTCNeedTURNServer_Notification) returns (.NoResponse) {
745
- option (method_description) = "Notification from server to client that it needs the client's TURN server";
746
- }
747
-
748
- rpc NotifyWebRTCStart (.CBroadcast_WebRTCStart_Notification) returns (.NoResponse) {
749
- option (method_description) = "Notification from server to client that it should start a WebRTC session";
750
- }
751
-
752
- rpc NotifyWebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Notification) returns (.NoResponse) {
753
- option (method_description) = "Notification from server to client about the broadcast viewer WebRTC answer";
754
- }
755
-
756
- rpc NotifyWebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Notification) returns (.NoResponse) {
757
- option (method_description) = "Notification from server to client about a broadcast viewer WebRTC ICE candidate";
758
- }
759
- }
1
+ import "steammessages_base.proto";
2
+ import "steammessages_unified_base.steamclient.proto";
3
+
4
+ option cc_generic_services = true;
5
+
6
+ enum EBroadcastWatchLocation {
7
+ k_EBroadcastWatchLocation_Invalid = 0;
8
+ k_EBroadcastWatchLocation_SteamTV_Tab = 1;
9
+ k_EBroadcastWatchLocation_SteamTV_WatchParty = 2;
10
+ k_EBroadcastWatchLocation_Chat_Tab = 3;
11
+ k_EBroadcastWatchLocation_Chat_WatchParty = 4;
12
+ k_EBroadcastWatchLocation_CommunityPage = 5;
13
+ k_EBroadcastWatchLocation_StoreAppPage = 6;
14
+ k_EBroadcastWatchLocation_InGame = 7;
15
+ k_EBroadcastWatchLocation_BigPicture = 8;
16
+ k_EBroadcastWatchLocation_SalesPage = 9;
17
+ k_EBroadcastWatchLocation_CuratorPage = 10;
18
+ k_EBroadcastWatchLocation_DeveloperPage = 11;
19
+ k_EBroadcastWatchLocation_Chat_Friends = 12;
20
+ k_EBroadcastWatchLocation_SteamTV_Web = 13;
21
+ k_EBroadcastWatchLocation_DesktopUI_Overlay = 14;
22
+ }
23
+
24
+ enum EBroadcastChatPermission {
25
+ k_EBroadcastChatPermissionPublic = 0;
26
+ k_EBroadcastChatPermissionOwnsApp = 1;
27
+ }
28
+
29
+ message CBroadcast_BeginBroadcastSession_Request {
30
+ optional int32 permission = 1;
31
+ optional uint64 gameid = 2;
32
+ optional uint64 client_instance_id = 3;
33
+ optional string title = 4;
34
+ optional uint32 cellid = 5;
35
+ optional uint64 rtmp_token = 6;
36
+ optional bool thumbnail_upload = 7;
37
+ optional string client_beta = 8;
38
+ optional uint32 sysid = 9;
39
+ optional bool allow_webrtc = 10;
40
+ }
41
+
42
+ message CBroadcast_BeginBroadcastSession_Response {
43
+ optional fixed64 broadcast_id = 1;
44
+ optional string thumbnail_upload_address = 2 [(description) = "Http address to upload the thumbnail data."];
45
+ optional string thumbnail_upload_token = 3 [(description) = "token to authorize as broadcaster to upload content to the relay."];
46
+ optional uint32 thumbnail_interval_seconds = 4 [(description) = "how many seconds between thumbnails"];
47
+ optional uint32 heartbeat_interval_seconds = 5 [(description) = "how many seconds between session heartbeats"];
48
+ }
49
+
50
+ message CBroadcast_EndBroadcastSession_Request {
51
+ optional fixed64 broadcast_id = 1;
52
+ }
53
+
54
+ message CBroadcast_EndBroadcastSession_Response {
55
+ }
56
+
57
+ message CBroadcast_StartBroadcastUpload_Request {
58
+ optional fixed64 broadcast_id = 1;
59
+ optional uint32 cellid = 2;
60
+ optional bool as_rtmp = 3;
61
+ optional uint32 delay_seconds = 4;
62
+ optional uint64 rtmp_token = 5 [default = 0, (description) = "Only set during RTMP uploads; secret key from the user."];
63
+ optional uint32 upload_ip_address = 6;
64
+ optional bool is_replay = 7;
65
+ optional uint32 sysid = 8;
66
+ }
67
+
68
+ message CBroadcast_StartBroadcastUpload_Response {
69
+ optional string upload_token = 1;
70
+ optional string upload_address = 2;
71
+ optional fixed64 broadcast_upload_id = 3;
72
+ optional bool enable_replay = 6;
73
+ optional string http_address = 7;
74
+ }
75
+
76
+ message CBroadcast_NotifyBroadcastUploadStop_Notification {
77
+ optional fixed64 broadcast_upload_id = 1;
78
+ optional uint32 upload_result = 2;
79
+ }
80
+
81
+ message CBroadcast_WatchBroadcast_Request {
82
+ optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
83
+ optional fixed64 existing_broadcast_id = 2 [(description) = "broadcast session ID (optional, rejoin if specified)."];
84
+ optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
85
+ optional uint32 client_cell = 5;
86
+ optional .EBroadcastWatchLocation watch_location = 6 [default = k_EBroadcastWatchLocation_Invalid];
87
+ optional bool is_webrtc = 7;
88
+ }
89
+
90
+ message CBroadcast_WatchBroadcast_Response {
91
+ enum EWatchResponse {
92
+ k_EWatchResponseReady = 1;
93
+ k_EWatchResponseNotAvailable = 2;
94
+ k_EWatchResponseWaitingForApproval = 3;
95
+ k_EWatchResponseWaitingForStart = 4;
96
+ k_EWatchResponseInvalidSession = 5;
97
+ k_EWatchResponseTooManyBroadcasts = 6;
98
+ k_EWatchResponseWaitingForReconnect = 7;
99
+ k_EWatchResponseSystemNotSupported = 8;
100
+ k_EWatchResponseUserRestricted = 9;
101
+ k_EWatchResponseClientOutOfDate = 10;
102
+ k_EWatchResponsePoorUploadQuality = 11;
103
+ k_EWatchResponseMissingSubscription = 12;
104
+ }
105
+
106
+ optional .CBroadcast_WatchBroadcast_Response.EWatchResponse response = 1 [default = k_EWatchResponseReady];
107
+ optional string mpd_url = 2;
108
+ optional fixed64 broadcast_id = 3;
109
+ optional uint64 gameid = 4;
110
+ optional string title = 5;
111
+ optional uint32 num_viewers = 6;
112
+ optional int32 permission = 7;
113
+ optional bool is_rtmp = 8;
114
+ optional int32 seconds_delay = 9;
115
+ optional fixed64 viewer_token = 10;
116
+ optional string hls_m3u8_master_url = 11;
117
+ optional int32 heartbeat_interval = 12;
118
+ optional string thumbnail_url = 13;
119
+ optional bool is_webrtc = 14;
120
+ optional fixed64 webrtc_session_id = 15;
121
+ optional string webrtc_offer_sdp = 16;
122
+ optional string webrtc_turn_server = 17;
123
+ optional bool is_replay = 18;
124
+ optional int32 duration = 19;
125
+ optional string cdn_auth_url_parameters = 20;
126
+ }
127
+
128
+ message CBroadcast_HeartbeatBroadcast_Notification {
129
+ optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
130
+ optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID."];
131
+ optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
132
+ optional uint32 representation = 4 [(description) = "video stream representation watching"];
133
+ }
134
+
135
+ message CBroadcast_StopWatchingBroadcast_Notification {
136
+ optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
137
+ optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID."];
138
+ optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
139
+ }
140
+
141
+ message CBroadcast_GetBroadcastStatus_Request {
142
+ optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
143
+ optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID to proof that user is allowed to see details."];
144
+ }
145
+
146
+ message CBroadcast_GetBroadcastStatus_Response {
147
+ optional uint64 gameid = 1;
148
+ optional string title = 2;
149
+ optional uint32 num_viewers = 3;
150
+ optional int32 permission = 4;
151
+ optional bool is_rtmp = 5;
152
+ optional int32 seconds_delay = 6;
153
+ optional bool is_publisher = 7;
154
+ optional string thumbnail_url = 8;
155
+ optional int32 update_interval = 9;
156
+ optional bool is_uploading = 10;
157
+ optional uint32 duration = 11;
158
+ optional bool is_replay = 12;
159
+ optional bool is_capturing_vod = 13;
160
+ optional bool is_store_whitelisted = 14;
161
+ }
162
+
163
+ message CBroadcast_GetBroadcastThumbnail_Request {
164
+ optional fixed64 steamid = 1;
165
+ optional fixed64 broadcast_id = 2;
166
+ }
167
+
168
+ message CBroadcast_GetBroadcastThumbnail_Response {
169
+ optional string thumbnail_url = 1;
170
+ optional int32 update_interval = 2;
171
+ optional int32 num_viewers = 3;
172
+ optional int32 duration = 4;
173
+ }
174
+
175
+ message CBroadcast_InviteToBroadcast_Request {
176
+ optional fixed64 steamid = 1;
177
+ optional bool approval_response = 2;
178
+ }
179
+
180
+ message CBroadcast_InviteToBroadcast_Response {
181
+ optional bool success = 1;
182
+ }
183
+
184
+ message CBroadcast_SendBroadcastStateToServer_Request {
185
+ optional int32 permission = 1;
186
+ optional uint64 gameid = 2;
187
+ optional string title = 3;
188
+ optional string game_data_config = 4;
189
+ }
190
+
191
+ message CBroadcast_SendBroadcastStateToServer_Response {
192
+ }
193
+
194
+ message CBroadcast_NotifyBroadcastSessionHeartbeat_Notification {
195
+ optional fixed64 broadcast_id = 1;
196
+ }
197
+
198
+ message CBroadcast_GetBroadcastChatInfo_Request {
199
+ optional fixed64 steamid = 1;
200
+ optional fixed64 broadcast_id = 2;
201
+ optional uint32 client_ip = 3;
202
+ optional uint32 client_cell = 4;
203
+ }
204
+
205
+ message CBroadcast_GetBroadcastChatInfo_Response {
206
+ optional fixed64 chat_id = 1;
207
+ optional string view_url_template = 3;
208
+ repeated uint32 flair_group_ids = 4;
209
+ }
210
+
211
+ message CBroadcast_PostChatMessage_Request {
212
+ optional fixed64 chat_id = 1;
213
+ optional string message = 2;
214
+ optional uint32 instance_id = 3;
215
+ optional uint32 language = 4 [default = 0, (description) = "ELanguage of the user posting the message, default is english"];
216
+ optional string country_code = 5 [(description) = "The two letter country code"];
217
+ }
218
+
219
+ message CBroadcast_PostChatMessage_Response {
220
+ optional string persona_name = 1;
221
+ optional bool in_game = 2;
222
+ optional int32 result = 3;
223
+ optional int32 cooldown_time_seconds = 4;
224
+ }
225
+
226
+ message CBroadcast_UpdateChatMessageFlair_Request {
227
+ optional fixed64 chat_id = 1;
228
+ optional string flair = 2;
229
+ }
230
+
231
+ message CBroadcast_UpdateChatMessageFlair_Response {
232
+ optional int32 result = 1;
233
+ optional fixed64 chat_id = 2;
234
+ optional string flair = 3;
235
+ }
236
+
237
+ message CBroadcast_MuteBroadcastChatUser_Request {
238
+ optional fixed64 chat_id = 1;
239
+ optional fixed64 user_steamid = 2;
240
+ optional bool muted = 3;
241
+ }
242
+
243
+ message CBroadcast_MuteBroadcastChatUser_Response {
244
+ }
245
+
246
+ message CBroadcast_RemoveUserChatText_Request {
247
+ optional fixed64 chat_id = 1;
248
+ optional fixed64 user_steamid = 2;
249
+ }
250
+
251
+ message CBroadcast_RemoveUserChatText_Response {
252
+ }
253
+
254
+ message CBroadcast_GetBroadcastChatUserNames_Request {
255
+ optional fixed64 chat_id = 1;
256
+ repeated fixed64 user_steamid = 2;
257
+ }
258
+
259
+ message CBroadcast_GetBroadcastChatUserNames_Response {
260
+ message PersonaName {
261
+ optional fixed64 steam_id = 1 [(allow_field_named_steam_id) = true];
262
+ optional string persona = 2;
263
+ }
264
+
265
+ repeated .CBroadcast_GetBroadcastChatUserNames_Response.PersonaName persona_names = 1;
266
+ }
267
+
268
+ message CBroadcast_StartBuildClip_Request {
269
+ optional fixed64 steamid = 1;
270
+ optional fixed64 broadcast_session_id = 2;
271
+ optional int32 first_segment = 3;
272
+ optional int32 num_segments = 4;
273
+ optional string clip_description = 5;
274
+ }
275
+
276
+ message CBroadcast_StartBuildClip_Response {
277
+ optional fixed64 broadcast_clip_id = 1;
278
+ }
279
+
280
+ message CBroadcast_GetBuildClipStatus_Request {
281
+ optional fixed64 broadcast_clip_id = 1;
282
+ }
283
+
284
+ message CBroadcast_GetBuildClipStatus_Response {
285
+ }
286
+
287
+ message CBroadcast_SetClipDetails_Request {
288
+ optional uint64 broadcast_clip_id = 1 [(description) = "Clip ID"];
289
+ optional uint32 start_time = 2 [(description) = "start time of the clip"];
290
+ optional uint32 end_time = 3 [(description) = "end time of the clip"];
291
+ optional string video_description = 4;
292
+ }
293
+
294
+ message CBroadcast_SetClipDetails_Response {
295
+ }
296
+
297
+ message CBroadcast_GetClipDetails_Request {
298
+ optional uint64 broadcast_clip_id = 1 [(description) = "List of clip IDs we want details for"];
299
+ }
300
+
301
+ message CBroadcast_GetClipDetails_Response {
302
+ optional uint64 broadcast_clip_id = 1 [(description) = "broadcast clip ID"];
303
+ optional uint64 video_id = 2 [(description) = "matching unique video ID"];
304
+ optional uint64 channel_id = 3 [(description) = "Broadcast Channel ID"];
305
+ optional uint32 app_id = 4 [(description) = "App ID stream is tagged with"];
306
+ optional uint32 accountid_broadcaster = 5 [(description) = "Account ID of broadcaster"];
307
+ optional uint32 accountid_clipmaker = 6 [(description) = "Account ID of clip-maker"];
308
+ optional string video_description = 7 [(description) = "Short name or description of this clip"];
309
+ optional uint32 start_time = 8 [(description) = "Wall time clip was broadcasted live"];
310
+ optional uint32 length_milliseconds = 9 [(description) = "length of video in MS"];
311
+ optional string thumbnail_path = 10 [(description) = "Path for thumbnail URL"];
312
+ }
313
+
314
+ message CBroadcast_SetRTMPInfo_Request {
315
+ optional int32 broadcast_permission = 1;
316
+ optional bool update_token = 2;
317
+ optional int32 broadcast_delay = 3;
318
+ optional uint32 app_id = 4;
319
+ optional uint32 required_app_id = 5;
320
+ optional .EBroadcastChatPermission broadcast_chat_permission = 6 [default = k_EBroadcastChatPermissionPublic, (description) = "Who is permitted to send a chat message during broadcast"];
321
+ optional int32 broadcast_buffer = 7 [(description) = "Previous seconds we keep of the stream available"];
322
+ optional fixed64 steamid = 8 [(description) = "broadcaster steamID if not logged-in user"];
323
+ optional uint32 chat_rate_limit = 9 [(description) = "Seconds required between chat messages"];
324
+ optional bool enable_replay = 10 [(description) = "Enable replay of last upload"];
325
+ optional bool is_partner_chat_only = 11 [(description) = "When true, then only steamwork partner can create chat messages."];
326
+ optional string wordban_list = 12;
327
+ }
328
+
329
+ message CBroadcast_SetRTMPInfo_Response {
330
+ }
331
+
332
+ message CBroadcast_GetRTMPInfo_Request {
333
+ optional uint32 ip = 1;
334
+ optional fixed64 steamid = 2 [(description) = "broadcaster steamID if not logged-in user"];
335
+ }
336
+
337
+ message CBroadcast_GetRTMPInfo_Response {
338
+ optional int32 broadcast_permission = 1;
339
+ optional string rtmp_host = 2;
340
+ optional string rtmp_token = 3;
341
+ optional int32 broadcast_delay = 4;
342
+ optional uint32 app_id = 5;
343
+ optional uint32 required_app_id = 6;
344
+ optional .EBroadcastChatPermission broadcast_chat_permission = 7 [default = k_EBroadcastChatPermissionPublic, (description) = "Who is permitted to send a chat message during broadcast"];
345
+ optional int32 broadcast_buffer = 8 [(description) = "Seconds we keep streams available"];
346
+ optional fixed64 steamid = 9 [(description) = "broadcaster steamID"];
347
+ optional uint32 chat_rate_limit = 10 [(description) = "Seconds required between chat messages"];
348
+ optional bool enable_replay = 11 [(description) = "Enable replay of last upload"];
349
+ optional bool is_partner_chat_only = 12 [(description) = "When true, then only steamwork partner can create chat messages."];
350
+ optional string wordban_list = 13;
351
+ }
352
+
353
+ message CBroadcast_WebRTCHaveTURNServer_Notification {
354
+ optional fixed64 broadcast_session_id = 1;
355
+ optional string turn_server = 2;
356
+ }
357
+
358
+ message CBroadcast_WebRTCStartResult_Request {
359
+ optional fixed64 webrtc_session_id = 1;
360
+ optional bool started = 2;
361
+ optional string offer = 3;
362
+ optional uint32 resolution_x = 4;
363
+ optional uint32 resolution_y = 5;
364
+ optional uint32 fps = 6;
365
+ }
366
+
367
+ message CBroadcast_WebRTCStartResult_Response {
368
+ }
369
+
370
+ message CBroadcast_WebRTCStopped_Request {
371
+ optional fixed64 webrtc_session_id = 1;
372
+ }
373
+
374
+ message CBroadcast_WebRTCStopped_Response {
375
+ }
376
+
377
+ message CBroadcast_WebRTCSetAnswer_Request {
378
+ optional fixed64 broadcaster_steamid = 1;
379
+ optional fixed64 webrtc_session_id = 2;
380
+ optional string answer = 3;
381
+ }
382
+
383
+ message CBroadcast_WebRTCSetAnswer_Response {
384
+ }
385
+
386
+ message CBroadcast_WebRTCLookupTURNServer_Request {
387
+ optional uint32 cellid = 1;
388
+ }
389
+
390
+ message CBroadcast_WebRTCLookupTURNServer_Response {
391
+ optional string turn_server = 1;
392
+ }
393
+
394
+ message CBroadcast_WebRTC_Candidate {
395
+ optional string sdp_mid = 1;
396
+ optional int32 sdp_mline_index = 2;
397
+ optional string candidate = 3;
398
+ }
399
+
400
+ message CBroadcast_WebRTCAddHostCandidate_Request {
401
+ optional fixed64 webrtc_session_id = 1;
402
+ optional .CBroadcast_WebRTC_Candidate candidate = 2;
403
+ }
404
+
405
+ message CBroadcast_WebRTCAddHostCandidate_Response {
406
+ }
407
+
408
+ message CBroadcast_WebRTCAddViewerCandidate_Request {
409
+ optional fixed64 broadcaster_steamid = 1;
410
+ optional fixed64 webrtc_session_id = 2;
411
+ optional .CBroadcast_WebRTC_Candidate candidate = 3;
412
+ }
413
+
414
+ message CBroadcast_WebRTCAddViewerCandidate_Response {
415
+ }
416
+
417
+ message CBroadcast_WebRTCGetHostCandidates_Request {
418
+ optional fixed64 broadcaster_steamid = 1;
419
+ optional fixed64 webrtc_session_id = 2;
420
+ optional uint32 candidate_generation = 3;
421
+ }
422
+
423
+ message CBroadcast_WebRTCGetHostCandidates_Response {
424
+ optional uint32 candidate_generation = 1;
425
+ repeated .CBroadcast_WebRTC_Candidate candidates = 2;
426
+ }
427
+
428
+ message CBroadcast_GetBroadcastUploadStats_Request {
429
+ optional uint32 row_limit = 1 [default = 100, (description) = "How many at maximum to return."];
430
+ optional uint32 start_time = 2 [default = 0, (description) = "Start time"];
431
+ optional uint64 upload_id = 3 [(description) = "Optional relay upload ID - not compatible with session_id"];
432
+ optional fixed64 steamid = 4 [(description) = "Optional the steamid whose stats you want, otherwise the user logged in - admin only"];
433
+ optional uint64 session_id = 5 [(description) = "Optional broadcast session ID - not compatiable with upload_id"];
434
+ }
435
+
436
+ message CBroadcast_GetBroadcastUploadStats_Response {
437
+ message UploadStats {
438
+ optional uint32 upload_result = 1 [(description) = ""];
439
+ optional uint32 time_stopped = 2 [(description) = "time broadcast upload stopped"];
440
+ optional uint32 seconds_uploaded = 3 [(description) = "seconds of vido uploaded"];
441
+ optional uint32 max_viewers = 4 [(description) = "max concurrent viewers"];
442
+ optional uint32 resolution_x = 5 [(description) = "horizontal resultion"];
443
+ optional uint32 resolution_y = 6 [(description) = "vertical resultion"];
444
+ optional uint32 avg_bandwidth = 7 [(description) = ""];
445
+ optional uint64 total_bytes = 8 [(description) = "total byte uploaded by broadcaster"];
446
+ optional uint32 app_id = 9 [(description) = "game broadcasted"];
447
+ optional uint32 total_unique_viewers = 10 [(description) = "total unique viewers seen"];
448
+ optional uint64 total_seconds_watched = 11 [(description) = "total number of seconds watched by all viewers"];
449
+ optional uint32 time_started = 12 [(description) = "time broadcast upload started"];
450
+ optional uint64 upload_id = 13 [(description) = "broadcast relay upload id"];
451
+ optional string local_address = 14 [(description) = "upload to server address"];
452
+ optional string remote_address = 15 [(description) = "upload from client address"];
453
+ optional uint32 frames_per_second = 16 [(description) = "frames per second"];
454
+ optional uint32 num_representations = 17 [(description) = "number of video represetations"];
455
+ optional string app_name = 18 [(description) = "game name"];
456
+ optional bool is_replay = 19 [(description) = "replay of previous recording"];
457
+ optional uint64 session_id = 20 [(description) = "broadcast session id"];
458
+ }
459
+
460
+ repeated .CBroadcast_GetBroadcastUploadStats_Response.UploadStats upload_stats = 1;
461
+ }
462
+
463
+ message CBroadcast_GetBroadcastViewerStats_Request {
464
+ optional uint64 upload_id = 1 [(description) = "Get stats for this stream"];
465
+ optional fixed64 steamid = 2 [(description) = "Optional: The steamid of the broadcast whose details you are requesting."];
466
+ }
467
+
468
+ message CBroadcast_GetBroadcastViewerStats_Response {
469
+ message ViewerStats {
470
+ optional uint32 time = 1 [(description) = "time of record"];
471
+ optional uint32 num_viewers = 2 [(description) = "current number of viewers"];
472
+ }
473
+
474
+ message CountryStats {
475
+ optional string country_code = 1 [(description) = "country code"];
476
+ optional uint32 num_viewers = 2 [(description) = "number of viewers"];
477
+ }
478
+
479
+ repeated .CBroadcast_GetBroadcastViewerStats_Response.ViewerStats viewer_stats = 1;
480
+ repeated .CBroadcast_GetBroadcastViewerStats_Response.CountryStats country_stats = 2;
481
+ }
482
+
483
+ message CBroadcast_BroadcastViewerState_Notification {
484
+ enum EViewerState {
485
+ k_EViewerNeedsApproval = 1;
486
+ k_EViewerWatching = 2;
487
+ k_EViewerLeft = 3;
488
+ }
489
+
490
+ optional fixed64 steamid = 1;
491
+ optional .CBroadcast_BroadcastViewerState_Notification.EViewerState state = 2 [default = k_EViewerNeedsApproval];
492
+ }
493
+
494
+ message CBroadcast_WaitingBroadcastViewer_Notification {
495
+ optional fixed64 broadcast_id = 1;
496
+ }
497
+
498
+ message CBroadcast_BroadcastUploadStarted_Notification {
499
+ optional fixed64 broadcast_id = 1;
500
+ optional string upload_token = 2;
501
+ optional string upload_address = 3;
502
+ optional string http_address = 4;
503
+ optional fixed64 broadcast_upload_id = 5;
504
+ optional uint32 heartbeat_interval_seconds = 6 [(description) = "how many seconds between session heartbeats"];
505
+ optional bool is_rtmp = 7;
506
+ }
507
+
508
+ message CBroadcast_StopBroadcastUpload_Notification {
509
+ optional fixed64 broadcast_id = 1;
510
+ optional fixed64 broadcast_relay_id = 2;
511
+ optional uint32 upload_result = 3;
512
+ optional bool too_many_poor_uploads = 4;
513
+ }
514
+
515
+ message CBroadcast_SessionClosed_Notification {
516
+ optional fixed64 broadcast_id = 1;
517
+ }
518
+
519
+ message CBroadcast_ViewerBroadcastInvite_Notification {
520
+ optional fixed64 broadcaster_steamid = 1;
521
+ }
522
+
523
+ message CBroadcast_BroadcastStatus_Notification {
524
+ optional fixed64 broadcast_id = 1;
525
+ optional int32 num_viewers = 2;
526
+ }
527
+
528
+ message CBroadcast_BroadcastChannelLive_Notification {
529
+ optional fixed64 broadcast_channel_id = 1;
530
+ optional string broadcast_channel_name = 2;
531
+ optional string broadcast_channel_avatar = 3;
532
+ }
533
+
534
+ message CBroadcast_SendThumbnailToRelay_Notification {
535
+ optional string thumbnail_upload_token = 1;
536
+ optional fixed64 thumbnail_broadcast_session_id = 2;
537
+ optional bytes thumbnail_data = 3;
538
+ optional uint32 thumbnail_width = 4;
539
+ optional uint32 thumbnail_height = 5;
540
+ }
541
+
542
+ message CBroadcast_WebRTCNeedTURNServer_Notification {
543
+ optional fixed64 broadcast_session_id = 1;
544
+ }
545
+
546
+ message CBroadcast_WebRTCStart_Notification {
547
+ optional fixed64 broadcast_session_id = 1;
548
+ optional fixed64 webrtc_session_id = 2;
549
+ optional fixed64 viewer_steamid = 3;
550
+ optional fixed64 viewer_token = 4;
551
+ }
552
+
553
+ message CBroadcast_WebRTCSetAnswer_Notification {
554
+ optional fixed64 broadcast_session_id = 1;
555
+ optional fixed64 webrtc_session_id = 2;
556
+ optional string answer = 3;
557
+ }
558
+
559
+ message CBroadcast_WebRTCAddViewerCandidate_Notification {
560
+ optional fixed64 broadcast_session_id = 1;
561
+ optional fixed64 webrtc_session_id = 2;
562
+ optional .CBroadcast_WebRTC_Candidate candidate = 3;
563
+ }
564
+
565
+ service Broadcast {
566
+ option (service_description) = "Methods for Steam broadcast operations";
567
+
568
+ rpc BeginBroadcastSession (.CBroadcast_BeginBroadcastSession_Request) returns (.CBroadcast_BeginBroadcastSession_Response) {
569
+ option (method_description) = "Request from client to directory to begin a broadcast session. No data being sent to relay; just available for broadcast.";
570
+ }
571
+
572
+ rpc EndBroadcastSession (.CBroadcast_EndBroadcastSession_Request) returns (.CBroadcast_EndBroadcastSession_Response) {
573
+ option (method_description) = "Request from client to stop a broadcast session. Any uploads will terminate.";
574
+ }
575
+
576
+ rpc StartBroadcastUpload (.CBroadcast_StartBroadcastUpload_Request) returns (.CBroadcast_StartBroadcastUpload_Response) {
577
+ option (method_description) = "Request from client to begin sending video for a broadcast.";
578
+ }
579
+
580
+ rpc NotifyBroadcastUploadStop (.CBroadcast_NotifyBroadcastUploadStop_Notification) returns (.NoResponse) {
581
+ option (method_description) = "Tells directory that client stopped uploading broadcast";
582
+ }
583
+
584
+ rpc WatchBroadcast (.CBroadcast_WatchBroadcast_Request) returns (.CBroadcast_WatchBroadcast_Response) {
585
+ option (method_description) = "Request from viewer to watch a broadcast";
586
+ }
587
+
588
+ rpc HeartbeatBroadcast (.CBroadcast_HeartbeatBroadcast_Notification) returns (.NoResponse) {
589
+ option (method_description) = "Notify directory that user is still watching.";
590
+ }
591
+
592
+ rpc StopWatchingBroadcast (.CBroadcast_StopWatchingBroadcast_Notification) returns (.NoResponse) {
593
+ option (method_description) = "Request to immediately stop watching a broadcast. Optional Method, if not called, viewer will time out.";
594
+ }
595
+
596
+ rpc GetBroadcastStatus (.CBroadcast_GetBroadcastStatus_Request) returns (.CBroadcast_GetBroadcastStatus_Response) {
597
+ option (method_description) = "Request from viewer about broadcast details";
598
+ }
599
+
600
+ rpc GetBroadcastThumbnail (.CBroadcast_GetBroadcastThumbnail_Request) returns (.CBroadcast_GetBroadcastThumbnail_Response) {
601
+ option (method_description) = "Request thumbnail URL for broadcast";
602
+ }
603
+
604
+ rpc InviteToBroadcast (.CBroadcast_InviteToBroadcast_Request) returns (.CBroadcast_InviteToBroadcast_Response) {
605
+ option (method_description) = "Invites another steam user to watch the caller's broadcast";
606
+ }
607
+
608
+ rpc SendBroadcastStateToServer (.CBroadcast_SendBroadcastStateToServer_Request) returns (.CBroadcast_SendBroadcastStateToServer_Response) {
609
+ option (method_description) = "Sends users current broadcast state (permissions, game) to the server";
610
+ }
611
+
612
+ rpc NotifyBroadcastSessionHeartbeat (.CBroadcast_NotifyBroadcastSessionHeartbeat_Notification) returns (.NoResponse) {
613
+ option (method_description) = "Tells directory broadcast session is still available";
614
+ }
615
+
616
+ rpc GetBroadcastChatInfo (.CBroadcast_GetBroadcastChatInfo_Request) returns (.CBroadcast_GetBroadcastChatInfo_Response) {
617
+ option (method_description) = "Gets chat room info for a broadcast";
618
+ }
619
+
620
+ rpc PostChatMessage (.CBroadcast_PostChatMessage_Request) returns (.CBroadcast_PostChatMessage_Response) {
621
+ option (method_description) = "Post chat message to specified chat room";
622
+ }
623
+
624
+ rpc UpdateChatMessageFlair (.CBroadcast_UpdateChatMessageFlair_Request) returns (.CBroadcast_UpdateChatMessageFlair_Response) {
625
+ option (method_description) = "Update chat message flair in the specified chat room";
626
+ }
627
+
628
+ rpc MuteBroadcastChatUser (.CBroadcast_MuteBroadcastChatUser_Request) returns (.CBroadcast_MuteBroadcastChatUser_Response) {
629
+ option (method_description) = "Mute a user in your broadcast chat";
630
+ }
631
+
632
+ rpc RemoveUserChatText (.CBroadcast_RemoveUserChatText_Request) returns (.CBroadcast_RemoveUserChatText_Response) {
633
+ option (method_description) = "Tell all viewers to remove user chat text";
634
+ }
635
+
636
+ rpc GetBroadcastChatUserNames (.CBroadcast_GetBroadcastChatUserNames_Request) returns (.CBroadcast_GetBroadcastChatUserNames_Response) {
637
+ option (method_description) = "Get names for list of users in chat";
638
+ }
639
+
640
+ rpc StartBuildClip (.CBroadcast_StartBuildClip_Request) returns (.CBroadcast_StartBuildClip_Response) {
641
+ option (method_description) = "Start building a broadcast clip";
642
+ }
643
+
644
+ rpc GetBuildClipStatus (.CBroadcast_GetBuildClipStatus_Request) returns (.CBroadcast_GetBuildClipStatus_Response) {
645
+ option (method_description) = "Start building a broadcast clip";
646
+ }
647
+
648
+ rpc SetClipDetails (.CBroadcast_SetClipDetails_Request) returns (.CBroadcast_SetClipDetails_Response) {
649
+ option (method_description) = "Updates a broadcast clip";
650
+ }
651
+
652
+ rpc GetClipDetails (.CBroadcast_GetClipDetails_Request) returns (.CBroadcast_GetClipDetails_Response) {
653
+ option (method_description) = "Get details for Broadcast Clips";
654
+ }
655
+
656
+ rpc SetRTMPInfo (.CBroadcast_SetRTMPInfo_Request) returns (.CBroadcast_SetRTMPInfo_Response) {
657
+ option (method_description) = "Sets RTMP broadcast info";
658
+ }
659
+
660
+ rpc GetRTMPInfo (.CBroadcast_GetRTMPInfo_Request) returns (.CBroadcast_GetRTMPInfo_Response) {
661
+ option (method_description) = "Gets RTMP broadcast info";
662
+ }
663
+
664
+ rpc NotifyWebRTCHaveTURNServer (.CBroadcast_WebRTCHaveTURNServer_Notification) returns (.NoResponse) {
665
+ option (method_description) = "Notification from client to server with the client's TURN server";
666
+ }
667
+
668
+ rpc WebRTCStartResult (.CBroadcast_WebRTCStartResult_Request) returns (.CBroadcast_WebRTCStartResult_Response) {
669
+ option (method_description) = "Notify the server that a WebRTC session has been created by the host";
670
+ }
671
+
672
+ rpc WebRTCStopped (.CBroadcast_WebRTCStopped_Request) returns (.CBroadcast_WebRTCStopped_Response) {
673
+ option (method_description) = "Notify the server that a WebRTC session has been stopped by the host";
674
+ }
675
+
676
+ rpc WebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Request) returns (.CBroadcast_WebRTCSetAnswer_Response) {
677
+ option (method_description) = "Notify the server that a WebRTC session has been created by the viewer";
678
+ }
679
+
680
+ rpc WebRTCLookupTURNServer (.CBroadcast_WebRTCLookupTURNServer_Request) returns (.CBroadcast_WebRTCLookupTURNServer_Response) {
681
+ option (method_description) = "Lookup the best TURN server for this client";
682
+ }
683
+
684
+ rpc WebRTCAddHostCandidate (.CBroadcast_WebRTCAddHostCandidate_Request) returns (.CBroadcast_WebRTCAddHostCandidate_Response) {
685
+ option (method_description) = "Add an ICE candidate for the host side of a WebRTC session";
686
+ }
687
+
688
+ rpc WebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Request) returns (.CBroadcast_WebRTCAddViewerCandidate_Response) {
689
+ option (method_description) = "Add an ICE candidate for the viewer side of a WebRTC session";
690
+ }
691
+
692
+ rpc WebRTCGetHostCandidates (.CBroadcast_WebRTCGetHostCandidates_Request) returns (.CBroadcast_WebRTCGetHostCandidates_Response) {
693
+ option (method_description) = "Get the ICE candidates for the host side of a WebRTC session";
694
+ }
695
+
696
+ rpc GetBroadcastUploadStats (.CBroadcast_GetBroadcastUploadStats_Request) returns (.CBroadcast_GetBroadcastUploadStats_Response) {
697
+ option (method_description) = "Gets broadcast upload stats for user";
698
+ }
699
+
700
+ rpc GetBroadcastViewerStats (.CBroadcast_GetBroadcastViewerStats_Request) returns (.CBroadcast_GetBroadcastViewerStats_Response) {
701
+ option (method_description) = "Gets viewer stats for given broadcast";
702
+ }
703
+ }
704
+
705
+ service BroadcastClient {
706
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
707
+
708
+ rpc NotifyBroadcastViewerState (.CBroadcast_BroadcastViewerState_Notification) returns (.NoResponse) {
709
+ option (method_description) = "Notification from server to client that a viewers state has changed";
710
+ }
711
+
712
+ rpc NotifyWaitingBroadcastViewer (.CBroadcast_WaitingBroadcastViewer_Notification) returns (.NoResponse) {
713
+ option (method_description) = "Notification from server to client one or more users is waiting for user to start broadcast";
714
+ }
715
+
716
+ rpc NotifyBroadcastUploadStarted (.CBroadcast_BroadcastUploadStarted_Notification) returns (.NoResponse) {
717
+ option (method_description) = "Notification from server to client with information about a broadcast";
718
+ }
719
+
720
+ rpc NotifyStopBroadcastUpload (.CBroadcast_StopBroadcastUpload_Notification) returns (.NoResponse) {
721
+ option (method_description) = "Notification from server to client telling it to stop uploading when the last viewer has disconnected from their broadcast";
722
+ }
723
+
724
+ rpc NotifySessionClosed (.CBroadcast_SessionClosed_Notification) returns (.NoResponse) {
725
+ option (method_description) = "Notification from server to client telling it a session has been closed unexpectedly by the directory";
726
+ }
727
+
728
+ rpc NotifyViewerBroadcastInvite (.CBroadcast_ViewerBroadcastInvite_Notification) returns (.NoResponse) {
729
+ option (method_description) = "Notification from server to client that a broadcaster is inviting a viewer to watch their broadcast";
730
+ }
731
+
732
+ rpc NotifyBroadcastStatus (.CBroadcast_BroadcastStatus_Notification) returns (.NoResponse) {
733
+ option (method_description) = "Notification from server to client about current broadcast status";
734
+ }
735
+
736
+ rpc NotifyBroadcastChannelLive (.CBroadcast_BroadcastChannelLive_Notification) returns (.NoResponse) {
737
+ option (method_description) = "Notification from server to client about current broadcast status";
738
+ }
739
+
740
+ rpc SendThumbnailToRelay (.CBroadcast_SendThumbnailToRelay_Notification) returns (.NoResponse) {
741
+ option (method_description) = "Send thumbnails to relay";
742
+ }
743
+
744
+ rpc NotifyWebRTCNeedTURNServer (.CBroadcast_WebRTCNeedTURNServer_Notification) returns (.NoResponse) {
745
+ option (method_description) = "Notification from server to client that it needs the client's TURN server";
746
+ }
747
+
748
+ rpc NotifyWebRTCStart (.CBroadcast_WebRTCStart_Notification) returns (.NoResponse) {
749
+ option (method_description) = "Notification from server to client that it should start a WebRTC session";
750
+ }
751
+
752
+ rpc NotifyWebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Notification) returns (.NoResponse) {
753
+ option (method_description) = "Notification from server to client about the broadcast viewer WebRTC answer";
754
+ }
755
+
756
+ rpc NotifyWebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Notification) returns (.NoResponse) {
757
+ option (method_description) = "Notification from server to client about a broadcast viewer WebRTC ICE candidate";
758
+ }
759
+ }