mirror of
https://github.com/xaionaro-go/streamctl.git
synced 2025-10-25 00:20:23 +08:00
790 lines
21 KiB
Protocol Buffer
790 lines
21 KiB
Protocol Buffer
syntax = "proto3";
|
|
package streamd;
|
|
option go_package = "go/streamd_grpc";
|
|
|
|
import "player/player.proto";
|
|
|
|
service StreamD {
|
|
rpc Ping(PingRequest) returns (PingReply) {}
|
|
rpc SetLoggingLevel(SetLoggingLevelRequest) returns (SetLoggingLevelReply) {}
|
|
rpc GetLoggingLevel(GetLoggingLevelRequest) returns (GetLoggingLevelReply) {}
|
|
rpc GetConfig(GetConfigRequest) returns (GetConfigReply) {}
|
|
rpc SetConfig(SetConfigRequest) returns (SetConfigReply) {}
|
|
rpc SaveConfig(SaveConfigRequest) returns (SaveConfigReply) {}
|
|
rpc SubscribeToConfigChanges(SubscribeToConfigChangesRequest) returns (stream ConfigChange) {}
|
|
rpc ResetCache(ResetCacheRequest) returns (ResetCacheReply) {}
|
|
rpc InitCache(InitCacheRequest) returns (InitCacheReply) {}
|
|
rpc StartStream(StartStreamRequest) returns (StartStreamReply) {}
|
|
rpc EndStream(EndStreamRequest) returns (EndStreamReply) {}
|
|
rpc GetStreamStatus(GetStreamStatusRequest) returns (GetStreamStatusReply) {}
|
|
rpc IsBackendEnabled(IsBackendEnabledRequest) returns (IsBackendEnabledReply) {}
|
|
rpc GetBackendInfo(GetBackendInfoRequest) returns (GetBackendInfoReply) {}
|
|
rpc SubscribeToStreamsChanges(SubscribeToStreamsChangesRequest) returns (stream StreamsChange) {}
|
|
rpc Restart(RestartRequest) returns (RestartReply) {}
|
|
rpc SetTitle(SetTitleRequest) returns (SetTitleReply) {}
|
|
rpc SetDescription(SetDescriptionRequest) returns (SetDescriptionReply) {}
|
|
rpc ApplyProfile(ApplyProfileRequest) returns (ApplyProfileReply) {}
|
|
rpc UpdateStream(UpdateStreamRequest) returns (UpdateStreamReply) {}
|
|
rpc GetVariable(GetVariableRequest) returns(GetVariableReply) {}
|
|
rpc GetVariableHash(GetVariableHashRequest) returns(GetVariableHashReply) {}
|
|
rpc SetVariable(SetVariableRequest) returns(SetVariableReply) {}
|
|
|
|
rpc EXPERIMENTAL_ReinitStreamControllers(EXPERIMENTAL_ReinitStreamControllersRequest) returns (EXPERIMENTAL_ReinitStreamControllersReply) {}
|
|
|
|
rpc SubscribeToOAuthRequests(SubscribeToOAuthRequestsRequest) returns (stream OAuthRequest) {}
|
|
rpc SubmitOAuthCode(SubmitOAuthCodeRequest) returns (SubmitOAuthCodeReply) {}
|
|
|
|
rpc ListStreamServers(ListStreamServersRequest) returns (ListStreamServersReply) {}
|
|
rpc StartStreamServer(StartStreamServerRequest) returns (StartStreamServerReply) {}
|
|
rpc StopStreamServer(StopStreamServerRequest) returns (StopStreamServerReply) {}
|
|
rpc SubscribeToStreamServersChanges(SubscribeToStreamServersChangesRequest) returns (stream StreamServersChange) {}
|
|
rpc ListStreamDestinations(ListStreamDestinationsRequest) returns (ListStreamDestinationsReply) {}
|
|
rpc AddStreamDestination(AddStreamDestinationRequest) returns (AddStreamDestinationReply) {}
|
|
rpc UpdateStreamDestination(UpdateStreamDestinationRequest) returns (UpdateStreamDestinationReply) {}
|
|
rpc RemoveStreamDestination(RemoveStreamDestinationRequest) returns (RemoveStreamDestinationReply) {}
|
|
rpc SubscribeToStreamDestinationsChanges(SubscribeToStreamDestinationsChangesRequest) returns (stream StreamDestinationsChange) {}
|
|
rpc AddIncomingStream(AddIncomingStreamRequest) returns (AddIncomingStreamReply) {}
|
|
rpc RemoveIncomingStream(RemoveIncomingStreamRequest) returns (RemoveIncomingStreamReply) {}
|
|
rpc ListIncomingStreams(ListIncomingStreamsRequest) returns (ListIncomingStreamsReply) {}
|
|
rpc SubscribeToIncomingStreamsChanges(SubscribeToIncomingStreamsChangesRequest) returns (stream IncomingStreamsChange) {}
|
|
rpc ListStreamForwards(ListStreamForwardsRequest) returns (ListStreamForwardsReply) {}
|
|
rpc AddStreamForward(AddStreamForwardRequest) returns (AddStreamForwardReply) {}
|
|
rpc UpdateStreamForward(UpdateStreamForwardRequest) returns (UpdateStreamForwardReply) {}
|
|
rpc RemoveStreamForward(RemoveStreamForwardRequest) returns (RemoveStreamForwardReply) {}
|
|
rpc SubscribeToStreamForwardsChanges(SubscribeToStreamForwardsChangesRequest) returns (stream StreamForwardsChange) {}
|
|
rpc WaitForStreamPublisher(WaitForStreamPublisherRequest) returns (stream StreamPublisher) {}
|
|
rpc AddStreamPlayer(AddStreamPlayerRequest) returns (AddStreamPlayerReply) {}
|
|
rpc RemoveStreamPlayer(RemoveStreamPlayerRequest) returns (RemoveStreamPlayerReply) {}
|
|
rpc UpdateStreamPlayer(UpdateStreamPlayerRequest) returns (UpdateStreamPlayerReply) {}
|
|
rpc ListStreamPlayers(ListStreamPlayersRequest) returns (ListStreamPlayersReply) {}
|
|
rpc GetStreamPlayer(GetStreamPlayerRequest) returns (GetStreamPlayerReply) {}
|
|
rpc SubscribeToStreamPlayersChanges(SubscribeToStreamPlayersChangesRequest) returns (stream StreamPlayersChange) {}
|
|
|
|
rpc StreamPlayerOpen(StreamPlayerOpenRequest) returns (StreamPlayerOpenReply) {}
|
|
rpc StreamPlayerProcessTitle(StreamPlayerProcessTitleRequest) returns (StreamPlayerProcessTitleReply) {}
|
|
rpc StreamPlayerGetLink(StreamPlayerGetLinkRequest) returns (StreamPlayerGetLinkReply) {}
|
|
rpc StreamPlayerEndChan(StreamPlayerEndChanRequest) returns (stream StreamPlayerEndChanReply) {}
|
|
rpc StreamPlayerIsEnded(StreamPlayerIsEndedRequest) returns (StreamPlayerIsEndedReply) {}
|
|
rpc StreamPlayerGetPosition(StreamPlayerGetPositionRequest) returns (StreamPlayerGetPositionReply) {}
|
|
rpc StreamPlayerGetLength(StreamPlayerGetLengthRequest) returns (StreamPlayerGetLengthReply) {}
|
|
rpc StreamPlayerSetSpeed(StreamPlayerSetSpeedRequest) returns (StreamPlayerSetSpeedReply) {}
|
|
rpc StreamPlayerSetPause(StreamPlayerSetPauseRequest) returns (StreamPlayerSetPauseReply) {}
|
|
rpc StreamPlayerStop(StreamPlayerStopRequest) returns (StreamPlayerStopReply) {}
|
|
rpc StreamPlayerClose(StreamPlayerCloseRequest) returns (StreamPlayerCloseReply) {}
|
|
|
|
rpc AddTimer(AddTimerRequest) returns (AddTimerReply) {}
|
|
rpc RemoveTimer(RemoveTimerRequest) returns (RemoveTimerReply) {}
|
|
rpc ListTimers(ListTimersRequest) returns (ListTimersReply) {}
|
|
|
|
rpc ListTriggerRules(ListTriggerRulesRequest) returns (ListTriggerRulesReply) {}
|
|
rpc AddTriggerRule(AddTriggerRuleRequest) returns (AddTriggerRuleReply) {}
|
|
rpc RemoveTriggerRule(RemoveTriggerRuleRequest) returns (RemoveTriggerRuleReply) {}
|
|
rpc UpdateTriggerRule(UpdateTriggerRuleRequest) returns (UpdateTriggerRuleReply) {}
|
|
|
|
rpc SubmitEvent(SubmitEventRequest) returns (SubmitEventReply) {}
|
|
|
|
rpc SubscribeToChatMessages(SubscribeToChatMessagesRequest) returns (stream ChatMessage) {}
|
|
rpc SendChatMessage(SendChatMessageRequest) returns (SendChatMessageReply) {}
|
|
rpc RemoveChatMessage(RemoveChatMessageRequest) returns (RemoveChatMessageReply) {}
|
|
rpc BanUser(BanUserRequest) returns (BanUserReply) {}
|
|
|
|
rpc GetPeerIDs(GetPeerIDsRequest) returns (GetPeerIDsReply) {}
|
|
|
|
rpc LLMGenerate(LLMGenerateRequest) returns (LLMGenerateReply) {}
|
|
}
|
|
|
|
message PingRequest {
|
|
string payloadToReturn = 1;
|
|
string payloadToIgnore = 2;
|
|
int32 requestExtraPayloadSize = 3;
|
|
}
|
|
message PingReply {
|
|
string payload = 1;
|
|
}
|
|
|
|
|
|
enum LoggingLevel {
|
|
none = 0;
|
|
fatal = 1;
|
|
panic = 2;
|
|
error = 3;
|
|
warning = 4;
|
|
info = 5;
|
|
debug = 6;
|
|
trace = 7;
|
|
}
|
|
|
|
message SetLoggingLevelRequest {
|
|
LoggingLevel loggingLevel = 1;
|
|
}
|
|
message SetLoggingLevelReply {}
|
|
message GetLoggingLevelRequest {}
|
|
message GetLoggingLevelReply {
|
|
LoggingLevel loggingLevel = 1;
|
|
}
|
|
|
|
message GetConfigRequest {}
|
|
message GetConfigReply {
|
|
string config = 1;
|
|
}
|
|
message SetConfigRequest {
|
|
string config = 1;
|
|
}
|
|
message SetConfigReply {}
|
|
message SaveConfigRequest {}
|
|
message SaveConfigReply {}
|
|
message ResetCacheRequest {}
|
|
message ResetCacheReply {}
|
|
message InitCacheRequest {}
|
|
message InitCacheReply {}
|
|
message StartStreamRequest {
|
|
string platID = 1;
|
|
string title = 2;
|
|
string description = 3;
|
|
string profile = 4;
|
|
}
|
|
message StartStreamReply {}
|
|
message EndStreamRequest {
|
|
string platID = 1;
|
|
}
|
|
message EndStreamReply {}
|
|
message GetStreamStatusRequest {
|
|
string platID = 1;
|
|
bool noCache = 2;
|
|
}
|
|
message GetStreamStatusReply {
|
|
bool isActive = 1;
|
|
optional int64 started_at = 2;
|
|
string customData = 3;
|
|
optional uint64 viewers_count = 4;
|
|
}
|
|
message GetBackendInfoRequest {
|
|
string platID = 1;
|
|
}
|
|
message GetBackendInfoReply {
|
|
bool isInitialized = 1;
|
|
string data = 2;
|
|
repeated Capability capabilities = 3;
|
|
}
|
|
message IsBackendEnabledRequest {
|
|
string platID = 1;
|
|
}
|
|
message IsBackendEnabledReply {
|
|
bool isInitialized = 1;
|
|
}
|
|
enum Capability {
|
|
capabilityUndefined = 0;
|
|
SendChatMessage = 1;
|
|
DeleteChatMessage = 2;
|
|
BanUser = 3;
|
|
}
|
|
message RestartRequest {}
|
|
message RestartReply {}
|
|
|
|
message SetTitleRequest {
|
|
string platID = 1;
|
|
string title = 2;
|
|
}
|
|
message SetTitleReply {}
|
|
message SetDescriptionRequest {
|
|
string platID = 1;
|
|
string description = 2;
|
|
}
|
|
message SetDescriptionReply {}
|
|
message ApplyProfileRequest {
|
|
string platID = 1;
|
|
string profile = 2;
|
|
}
|
|
message ApplyProfileReply {}
|
|
message UpdateStreamRequest {
|
|
string platID = 1;
|
|
string title = 2;
|
|
string description = 3;
|
|
string profile = 4;
|
|
}
|
|
message UpdateStreamReply {}
|
|
|
|
|
|
message EXPERIMENTAL_ReinitStreamControllersRequest {}
|
|
message EXPERIMENTAL_ReinitStreamControllersReply {}
|
|
|
|
message OBSOLETE_FetchConfigRequest {}
|
|
message OBSOLETE_FetchConfigReply {}
|
|
message OBSOLETE_GetGitInfoRequest {}
|
|
message OBSOLETE_GetGitInfoReply {
|
|
bool isInitialized = 1;
|
|
}
|
|
message OBSOLETE_GitReloginRequest {}
|
|
message OBSOLETE_GitReloginReply {}
|
|
|
|
|
|
message SubscribeToOAuthRequestsRequest{
|
|
int32 listenPort = 1;
|
|
}
|
|
message OAuthRequest{
|
|
string platID = 1;
|
|
string authURL = 2;
|
|
}
|
|
|
|
message GetVariableRequest {
|
|
string key = 1;
|
|
}
|
|
message GetVariableReply {
|
|
string key = 1;
|
|
bytes value = 2;
|
|
}
|
|
message GetVariableHashRequest {
|
|
string key = 1;
|
|
HashType hashType = 2;
|
|
}
|
|
message GetVariableHashReply {
|
|
string key = 1;
|
|
HashType hashType = 2;
|
|
bytes hash = 3;
|
|
}
|
|
message SetVariableRequest {
|
|
string key = 1;
|
|
bytes value = 2;
|
|
}
|
|
message SetVariableReply {}
|
|
|
|
enum HashType {
|
|
HASH_SHA1 = 0;
|
|
}
|
|
|
|
message SubmitOAuthCodeRequest {
|
|
string platID = 1;
|
|
string code = 2;
|
|
}
|
|
message SubmitOAuthCodeReply {}
|
|
|
|
enum StreamServerType {
|
|
Undefined = 0;
|
|
RTSP = 1;
|
|
RTMP = 2;
|
|
SRT = 3;
|
|
}
|
|
|
|
message TLSCertificate {
|
|
oneof TLSCertificateOneOf {
|
|
bytes X509 = 1;
|
|
}
|
|
}
|
|
|
|
message PrivateKey {
|
|
oneof PrivateKeyOneOf {
|
|
bytes PKCS8 = 1;
|
|
}
|
|
}
|
|
|
|
message StreamServer {
|
|
StreamServerType serverType = 1;
|
|
string listenAddr = 2;
|
|
bool IsTLS = 3;
|
|
uint64 WriteQueueSize = 4;
|
|
uint64 WriteTimeoutNano = 5;
|
|
uint64 ReadTimeoutNano = 6;
|
|
optional TLSCertificate ServerCert = 7;
|
|
optional PrivateKey ServerKey = 8;
|
|
}
|
|
|
|
message StreamServerStatistics {
|
|
int64 NumBytesConsumerWrote = 1;
|
|
int64 NumBytesProducerRead = 2;
|
|
}
|
|
|
|
message StreamServerWithStatistics {
|
|
StreamServer config = 1;
|
|
StreamServerStatistics statistics = 2;
|
|
}
|
|
|
|
message ListStreamServersRequest {}
|
|
message ListStreamServersReply {
|
|
repeated StreamServerWithStatistics streamServers = 1;
|
|
}
|
|
|
|
message StartStreamServerRequest {
|
|
StreamServer config = 1;
|
|
}
|
|
message StartStreamServerReply {
|
|
}
|
|
|
|
message StopStreamServerRequest {
|
|
string listenAddr = 1;
|
|
}
|
|
message StopStreamServerReply {}
|
|
|
|
message StreamDestination {
|
|
string destinationID = 1;
|
|
string url = 2;
|
|
string streamKey = 3;
|
|
}
|
|
|
|
message ListStreamDestinationsRequest {}
|
|
message ListStreamDestinationsReply {
|
|
repeated StreamDestination streamDestinations = 1;
|
|
}
|
|
|
|
message AddStreamDestinationRequest {
|
|
StreamDestination config = 1;
|
|
}
|
|
message AddStreamDestinationReply {}
|
|
|
|
message UpdateStreamDestinationRequest {
|
|
StreamDestination config = 1;
|
|
}
|
|
message UpdateStreamDestinationReply {}
|
|
|
|
message RemoveStreamDestinationRequest {
|
|
string destinationID = 1;
|
|
}
|
|
message RemoveStreamDestinationReply {}
|
|
|
|
message IncomingStream {
|
|
string streamID = 1;
|
|
bool isActive = 2;
|
|
}
|
|
|
|
message AddIncomingStreamRequest {
|
|
string streamID = 1;
|
|
}
|
|
message AddIncomingStreamReply {}
|
|
|
|
message RemoveIncomingStreamRequest {
|
|
string streamID = 1;
|
|
}
|
|
message RemoveIncomingStreamReply {}
|
|
|
|
message ListIncomingStreamsRequest {}
|
|
message ListIncomingStreamsReply {
|
|
repeated IncomingStream incomingStreams = 1;
|
|
}
|
|
|
|
message RestartUntilYoutubeRecognizesStream {
|
|
bool enabled = 1;
|
|
double startTimeout = 2;
|
|
double stopStartDelay = 3;
|
|
}
|
|
|
|
message StartAfterYoutubeRecognizedStream {
|
|
bool enabled = 1;
|
|
}
|
|
|
|
message StreamForwardQuirks {
|
|
RestartUntilYoutubeRecognizesStream restartUntilYoutubeRecognizesStream = 1;
|
|
StartAfterYoutubeRecognizedStream startAfterYoutubeRecognizedStream = 2;
|
|
}
|
|
|
|
message StreamForward {
|
|
string streamID = 1;
|
|
string destinationID = 2;
|
|
bool enabled = 3;
|
|
EncoderConfig encode = 4;
|
|
StreamForwardQuirks quirks = 5;
|
|
}
|
|
|
|
message EncoderConfig {
|
|
bool enable = 1;
|
|
repeated OutputAudioTrack outputAudioTracks = 2;
|
|
repeated OutputVideoTrack outputVideoTracks = 3;
|
|
}
|
|
|
|
message OutputAudioTrack {
|
|
repeated uint64 inputTrackIDs = 1;
|
|
EncodeAudioConfig encode = 2;
|
|
}
|
|
|
|
message EncodeAudioConfig {
|
|
AudioCodec codec = 1;
|
|
AudioQuality quality = 2;
|
|
}
|
|
|
|
enum AudioCodec {
|
|
AudioCodecCopy = 0;
|
|
AudioCodecAAC = 1;
|
|
AudioCodecVorbis = 2;
|
|
AudioCodecOpus = 3;
|
|
}
|
|
|
|
message AudioQuality {
|
|
oneof AudioQuality {
|
|
uint32 constantBitrate = 1;
|
|
}
|
|
}
|
|
|
|
message OutputVideoTrack {
|
|
repeated uint64 inputTrackIDs = 1;
|
|
EncodeVideoConfig encode = 2;
|
|
}
|
|
|
|
message EncodeVideoConfig {
|
|
VideoCodec codec = 1;
|
|
VideoQuality quality = 2;
|
|
}
|
|
|
|
enum VideoCodec {
|
|
VideoCodecCopy = 0;
|
|
VideoCodecH264 = 1;
|
|
VideoCodecHEVC = 2;
|
|
VideoCodecAV1 = 3;
|
|
}
|
|
|
|
message VideoQuality {
|
|
oneof VideoQuality {
|
|
uint32 constantBitrate = 1;
|
|
uint32 constantQuality = 2;
|
|
}
|
|
}
|
|
|
|
message StreamForwardStatistics {
|
|
int64 numBytesWrote = 1;
|
|
int64 numBytesRead = 2;
|
|
}
|
|
|
|
message StreamForwardWithStatistics {
|
|
StreamForward config = 1;
|
|
StreamForwardStatistics statistics = 2;
|
|
}
|
|
|
|
message ListStreamForwardsRequest {}
|
|
message ListStreamForwardsReply {
|
|
repeated StreamForwardWithStatistics streamForwards = 1;
|
|
}
|
|
|
|
message AddStreamForwardRequest {
|
|
StreamForward config = 1;
|
|
}
|
|
message AddStreamForwardReply {}
|
|
|
|
message UpdateStreamForwardRequest {
|
|
StreamForward config = 1;
|
|
}
|
|
message UpdateStreamForwardReply {}
|
|
|
|
message RemoveStreamForwardRequest {
|
|
StreamForward config = 1;
|
|
}
|
|
message RemoveStreamForwardReply {}
|
|
|
|
message WaitForStreamPublisherRequest {
|
|
optional string streamID = 1;
|
|
bool waitForNext = 2;
|
|
}
|
|
message StreamPublisher {}
|
|
|
|
enum PlayerType {
|
|
PlayerTypeAuto = 0;
|
|
PlayerTypeLibVLC = 1;
|
|
PlayerTypeMPV = 2;
|
|
}
|
|
|
|
message StreamPlaybackConfig {
|
|
double JitterBufDurationSecs = 1;
|
|
double CatchupMaxSpeedFactor = 2;
|
|
double MaxCatchupAtLagSecs = 3;
|
|
double StartTimeoutSecs = 4;
|
|
double ReadTimeoutSecs = 5;
|
|
string overriddenURL = 6;
|
|
bool forceWaitForPublisher = 7;
|
|
bool enableObserver = 8;
|
|
}
|
|
message StreamPlayerConfig {
|
|
string streamID = 1;
|
|
PlayerType playerType = 2;
|
|
bool disabled = 3;
|
|
StreamPlaybackConfig streamPlaybackConfig = 4;
|
|
}
|
|
message AddStreamPlayerRequest {
|
|
StreamPlayerConfig config = 1;
|
|
}
|
|
message AddStreamPlayerReply {}
|
|
message RemoveStreamPlayerRequest {
|
|
string streamID = 1;
|
|
}
|
|
message RemoveStreamPlayerReply {}
|
|
message UpdateStreamPlayerRequest {
|
|
StreamPlayerConfig config = 1;
|
|
}
|
|
message UpdateStreamPlayerReply {}
|
|
|
|
message ListStreamPlayersRequest {}
|
|
message ListStreamPlayersReply {
|
|
repeated StreamPlayerConfig players = 1;
|
|
}
|
|
message GetStreamPlayerRequest {
|
|
string streamID = 1;
|
|
}
|
|
message GetStreamPlayerReply {
|
|
StreamPlayerConfig config = 1;
|
|
}
|
|
|
|
message StreamPlayerOpenRequest {
|
|
string streamID = 1;
|
|
player.OpenRequest request = 2;
|
|
}
|
|
message StreamPlayerOpenReply {
|
|
player.OpenReply reply = 1;
|
|
}
|
|
message StreamPlayerProcessTitleRequest {
|
|
string streamID = 1;
|
|
player.ProcessTitleRequest request = 2;
|
|
}
|
|
message StreamPlayerProcessTitleReply {
|
|
player.ProcessTitleReply reply = 1;
|
|
}
|
|
message StreamPlayerGetLinkRequest {
|
|
string streamID = 1;
|
|
player.GetLinkRequest request = 2;
|
|
}
|
|
message StreamPlayerGetLinkReply {
|
|
player.GetLinkReply reply = 1;
|
|
}
|
|
message StreamPlayerEndChanRequest {
|
|
string streamID = 1;
|
|
player.EndChanRequest request = 2;
|
|
}
|
|
message StreamPlayerEndChanReply {
|
|
player.EndChanReply reply = 1;
|
|
}
|
|
message StreamPlayerIsEndedRequest {
|
|
string streamID = 1;
|
|
player.IsEndedRequest request = 2;
|
|
}
|
|
message StreamPlayerIsEndedReply {
|
|
player.IsEndedReply reply = 1;
|
|
}
|
|
message StreamPlayerGetPositionRequest {
|
|
string streamID = 1;
|
|
player.GetPositionRequest request = 2;
|
|
}
|
|
message StreamPlayerGetPositionReply {
|
|
player.GetPositionReply reply = 1;
|
|
}
|
|
message StreamPlayerGetLengthRequest {
|
|
string streamID = 1;
|
|
player.GetLengthRequest request = 2;
|
|
}
|
|
message StreamPlayerGetLengthReply {
|
|
player.GetLengthReply reply = 1;
|
|
}
|
|
message StreamPlayerSetSpeedRequest {
|
|
string streamID = 1;
|
|
player.SetSpeedRequest request = 2;
|
|
}
|
|
message StreamPlayerSetSpeedReply {
|
|
player.SetSpeedReply reply = 1;
|
|
}
|
|
message StreamPlayerSetPauseRequest {
|
|
string streamID = 1;
|
|
player.SetPauseRequest request = 2;
|
|
}
|
|
message StreamPlayerSetPauseReply {
|
|
player.SetPauseReply reply = 1;
|
|
}
|
|
message StreamPlayerStopRequest {
|
|
string streamID = 1;
|
|
player.StopRequest request = 2;
|
|
}
|
|
message StreamPlayerStopReply {
|
|
player.StopReply reply = 1;
|
|
}
|
|
message StreamPlayerCloseRequest {
|
|
string streamID = 1;
|
|
player.CloseRequest request = 2;
|
|
}
|
|
message StreamPlayerCloseReply {
|
|
player.CloseReply reply = 1;
|
|
}
|
|
|
|
message SubscribeToConfigChangesRequest {}
|
|
message ConfigChange {}
|
|
message SubscribeToStreamsChangesRequest {}
|
|
message StreamsChange {}
|
|
message SubscribeToStreamServersChangesRequest {}
|
|
message StreamServersChange {}
|
|
message SubscribeToStreamDestinationsChangesRequest {}
|
|
message StreamDestinationsChange {}
|
|
message SubscribeToIncomingStreamsChangesRequest {}
|
|
message IncomingStreamsChange {}
|
|
message SubscribeToStreamForwardsChangesRequest {}
|
|
message StreamForwardsChange {}
|
|
message SubscribeToStreamPlayersChangesRequest {}
|
|
message StreamPlayersChange {}
|
|
|
|
message NoopRequest {}
|
|
|
|
message OBSActionItemShowHide {
|
|
optional string itemName = 1;
|
|
optional string itemUUID = 2;
|
|
string valueExpression = 3;
|
|
}
|
|
|
|
message OBSActionWindowCaptureSetSource {
|
|
optional string itemName = 1;
|
|
optional string itemUUID = 2;
|
|
string valueExpression = 3;
|
|
}
|
|
|
|
message OBSAction {
|
|
oneof OBSActionOneOf {
|
|
OBSActionItemShowHide itemShowHide = 1;
|
|
OBSActionWindowCaptureSetSource windowCaptureSetSource = 2;
|
|
}
|
|
}
|
|
|
|
message Action {
|
|
oneof ActionOneof {
|
|
NoopRequest noopRequest = 1;
|
|
StartStreamRequest startStreamRequest = 2;
|
|
EndStreamRequest endStreamRequest = 3;
|
|
OBSAction obsAction = 4;
|
|
}
|
|
}
|
|
|
|
message AddTimerRequest {
|
|
int64 triggerAtUnixNano = 1;
|
|
Action action = 2;
|
|
}
|
|
message AddTimerReply {
|
|
int64 timerID = 1;
|
|
}
|
|
|
|
message RemoveTimerRequest {
|
|
int64 timerID = 1;
|
|
}
|
|
message RemoveTimerReply {}
|
|
|
|
message Timer {
|
|
int64 timerID = 1;
|
|
int64 triggerAtUnixNano = 2;
|
|
Action action = 3;
|
|
}
|
|
|
|
message ListTimersRequest {}
|
|
message ListTimersReply {
|
|
repeated Timer timers = 1;
|
|
}
|
|
|
|
message EventQueryAnd {
|
|
repeated Event queries = 1;
|
|
}
|
|
|
|
message EventQueryOr {
|
|
repeated Event queries = 1;
|
|
}
|
|
|
|
message EventQueryNot {
|
|
Event query = 1;
|
|
}
|
|
|
|
message EventOBSSceneChange {
|
|
string sceneName = 1;
|
|
}
|
|
|
|
message EventWindowFocusChange {
|
|
optional string host = 1;
|
|
optional uint64 windowID = 2;
|
|
optional string windowTitle = 3;
|
|
optional uint64 processID = 4;
|
|
optional string processName = 5;
|
|
optional uint64 userID = 6;
|
|
optional bool isFocused = 7;
|
|
}
|
|
|
|
message EventQuery {
|
|
oneof EventQueryOneOf {
|
|
EventQueryAnd and = 1;
|
|
EventQueryOr or = 2;
|
|
EventQueryNot not = 3;
|
|
EventType eventType = 4;
|
|
Event event = 5;
|
|
}
|
|
}
|
|
|
|
enum EventType {
|
|
eventWindowFocusChange = 0;
|
|
eventOBSSceneChange = 1;
|
|
}
|
|
|
|
message Event {
|
|
oneof EventOneOf {
|
|
EventOBSSceneChange obsSceneChange = 1;
|
|
EventWindowFocusChange windowFocusChange = 2;
|
|
}
|
|
}
|
|
|
|
message TriggerRule {
|
|
string Description = 1;
|
|
EventQuery eventQuery = 2;
|
|
Action action = 3;
|
|
}
|
|
|
|
message ListTriggerRulesRequest {}
|
|
message ListTriggerRulesReply {
|
|
repeated TriggerRule rules = 1;
|
|
}
|
|
message AddTriggerRuleRequest {
|
|
TriggerRule rule = 1;
|
|
}
|
|
message AddTriggerRuleReply {
|
|
uint64 ruleID = 1;
|
|
}
|
|
message RemoveTriggerRuleRequest {
|
|
uint64 ruleID = 1;
|
|
}
|
|
message RemoveTriggerRuleReply {}
|
|
message UpdateTriggerRuleRequest {
|
|
uint64 ruleID = 1;
|
|
TriggerRule rule = 2;
|
|
}
|
|
message UpdateTriggerRuleReply {}
|
|
|
|
message SubmitEventRequest {
|
|
Event event = 1;
|
|
}
|
|
message SubmitEventReply {}
|
|
|
|
message SubscribeToChatMessagesRequest {
|
|
uint64 sinceUNIXNano = 1;
|
|
}
|
|
message ChatMessage {
|
|
uint64 createdAtUNIXNano = 1;
|
|
string platID = 2;
|
|
string userID = 3;
|
|
string username = 4;
|
|
string messageID = 5;
|
|
string message = 6;
|
|
}
|
|
|
|
message SendChatMessageRequest {
|
|
string platID = 1;
|
|
string message = 2;
|
|
}
|
|
message SendChatMessageReply {}
|
|
|
|
message RemoveChatMessageRequest {
|
|
string platID = 1;
|
|
string messageID = 2;
|
|
}
|
|
message RemoveChatMessageReply {}
|
|
message BanUserRequest {
|
|
string platID = 1;
|
|
string userID = 2;
|
|
string reason = 3;
|
|
optional int64 deadlineUnixNano = 4;
|
|
}
|
|
message BanUserReply {}
|
|
|
|
message GetPeerIDsRequest {}
|
|
message GetPeerIDsReply {
|
|
repeated string peerIDs = 1;
|
|
}
|
|
|
|
|
|
message LLMGenerateRequest {
|
|
string prompt = 1;
|
|
}
|
|
message LLMGenerateReply {
|
|
string response = 1;
|
|
}
|