steamutils 1.2.51 → 1.2.53

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