livekit-server-sdk 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 37c0af8d011a1a96a75436dd27ce5c7b589742a2ba2d8b92783800900b77ed9a
4
- data.tar.gz: '08f6fba37c2a8caa53199222983bcc9fc68fceb21c77c9983dd5aafd64a75de5'
3
+ metadata.gz: aeefcd6261651616958b5ce4bcae8b16a90d655684786d64f8c0d5f0b1c77550
4
+ data.tar.gz: 4aaa7825155508e4595d96051df098124401d16f7a2e36e0a1812b93e9f9b1c8
5
5
  SHA512:
6
- metadata.gz: a56e5d01778aee68272c42385c4c201a3ea6328643086ce16f608414c44f9664f6a9e717f16c2daaea8d6e2aba26f293d0a172777d1e1555e578bb250674b484
7
- data.tar.gz: 387588e04efaf6b702d0998128ba322890093900e7d53981b5f8426e5e63968b7f010a69d29c4934dc110c4a6a83f2514503e167cfc7b56a6bad7d0d484c34eb
6
+ metadata.gz: 398a4cb7de533fe4585d1b3ca8ee087261170c9b90d5822e8b70c7261d20d93ac1998118b5a559057b7eaa00cf44bbf935c6d64cb416f09bf2ee111b6177760b
7
+ data.tar.gz: f591ff5488228ca9b68c1da4277b3eb356f549f6005afa027a5f4fd0522f3298d528879d71f24e3cc369b0cca270a6ef16e99fa964a4d433d0015632161230b4
Binary file
Binary file
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- livekit-server-sdk (0.5.0)
4
+ livekit-server-sdk (0.5.3)
5
5
  google-protobuf (>= 3.21.0, < 4.0)
6
6
  jwt (>= 2.2.3, < 3.0)
7
7
  rack (>= 2.2.3, < 3.0)
@@ -17,7 +17,6 @@ GEM
17
17
  ruby2_keywords (>= 0.0.4)
18
18
  faraday-net_http (3.0.2)
19
19
  google-protobuf (3.22.2)
20
- google-protobuf (3.22.2-x86_64-linux)
21
20
  jwt (2.7.0)
22
21
  method_source (1.0.0)
23
22
  pry (0.14.2)
data/README.md CHANGED
@@ -1,6 +1,14 @@
1
+ <!--BEGIN_BANNER_IMAGE-->
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="/.github/banner_dark.png">
4
+ <source media="(prefers-color-scheme: light)" srcset="/.github/banner_light.png">
5
+ <img style="width:100%;" alt="The LiveKit icon, the name of the repository and some sample code in the background." src="/.github/banner_light.png">
6
+ </picture>
7
+ <!--END_BANNER_IMAGE-->
8
+
1
9
  # LiveKit Server API for Ruby
2
10
 
3
- Ruby API for server-side integrations with LiveKit. This gem provides the ability to create access tokens as well as access RoomService.
11
+ <!--BEGIN_DESCRIPTION-->Use this SDK to manage <a href="https://livekit.io/">LiveKit</a> rooms and create access tokens from your Ruby backend.<!--END_DESCRIPTION-->
4
12
 
5
13
  This library is designed to work with Ruby 2.6.0 and above.
6
14
 
@@ -122,3 +130,16 @@ You may store credentials in environment variables. If api-key or api-secret is
122
130
  ## License
123
131
 
124
132
  The gem is available as open source under the terms of Apache 2.0 License.
133
+
134
+ <!--BEGIN_REPO_NAV-->
135
+ <br/><table>
136
+ <thead><tr><th colspan="2">LiveKit Ecosystem</th></tr></thead>
137
+ <tbody>
138
+ <tr><td>Client SDKs</td><td><a href="https://github.com/livekit/components-js">Components</a> · <a href="https://github.com/livekit/client-sdk-js">JavaScript</a> · <a href="https://github.com/livekit/client-sdk-rust">Rust</a> · <a href="https://github.com/livekit/client-sdk-swift">iOS/macOS</a> · <a href="https://github.com/livekit/client-sdk-android">Android</a> · <a href="https://github.com/livekit/client-sdk-flutter">Flutter</a> · <a href="https://github.com/livekit/client-sdk-unity-web">Unity (web)</a> · <a href="https://github.com/livekit/client-sdk-react-native">React Native (beta)</a></td></tr><tr></tr>
139
+ <tr><td>Server SDKs</td><td><a href="https://github.com/livekit/server-sdk-js">Node.js</a> · <a href="https://github.com/livekit/server-sdk-go">Golang</a> · <b>Ruby</b> · <a href="https://github.com/livekit/server-sdk-kotlin">Java/Kotlin</a> · <a href="https://github.com/agence104/livekit-server-sdk-php">PHP (community)</a> · <a href="https://github.com/tradablebits/livekit-server-sdk-python">Python (community)</a></td></tr><tr></tr>
140
+ <tr><td>Services</td><td><a href="https://github.com/livekit/livekit">Livekit server</a> · <a href="https://github.com/livekit/egress">Egress</a> · <a href="https://github.com/livekit/ingress">Ingress</a></td></tr><tr></tr>
141
+ <tr><td>Resources</td><td><a href="https://docs.livekit.io">Docs</a> · <a href="https://github.com/livekit-examples">Example apps</a> · <a href="https://livekit.io/cloud">Cloud</a> · <a href="https://docs.livekit.io/oss/deployment">Self-hosting</a> · <a href="https://github.com/livekit/livekit-cli">CLI</a></td></tr>
142
+ </tbody>
143
+ </table>
144
+ <!--END_REPO_NAV-->
145
+
@@ -108,7 +108,9 @@ module LiveKit
108
108
  # true to record only audio
109
109
  audio_only: false,
110
110
  # true to record only video
111
- video_only: false
111
+ video_only: false,
112
+ # true to await START_RECORDING chrome log
113
+ await_start_signal: false
112
114
  )
113
115
  request = Proto::WebEgressRequest.new(
114
116
  url: url,
@@ -116,6 +118,7 @@ module LiveKit
116
118
  advanced: advanced,
117
119
  audio_only: audio_only,
118
120
  video_only: video_only,
121
+ await_start_signal: await_start_signal,
119
122
  )
120
123
  self.set_output(request, output)
121
124
  self.rpc(
@@ -34,8 +34,8 @@ module LiveKit
34
34
 
35
35
  class VideoGrant
36
36
  attr_accessor :roomCreate, :roomJoin, :roomList, :roomRecord, :roomAdmin,
37
- :room, :canPublish, :canSubscribe, :canPublishData, :hidden, :recorder,
38
- :ingressAdmin
37
+ :room, :canPublish, :canPublishSources, :canSubscribe, :canPublishData,
38
+ :canUpdateOwnMetadata, :hidden, :recorder, :ingressAdmin
39
39
 
40
40
  def initialize(
41
41
  # true if can create or delete rooms
@@ -52,10 +52,14 @@ module LiveKit
52
52
  room: nil,
53
53
  # for join tokens, can participant publish, true by default
54
54
  canPublish: nil,
55
+ # TrackSource types that a participant may publish
56
+ canPublishSources: nil,
55
57
  # for join tokens, can participant subscribe, true by default
56
58
  canSubscribe: nil,
57
59
  # for join tokens, can participant publish data messages, true by default
58
60
  canPublishData: nil,
61
+ # by default, a participant is not allowed to update its own metadata
62
+ canUpdateOwnMetadata: nil,
59
63
  # if participant should remain invisible to others
60
64
  hidden: nil,
61
65
  # if participant is recording the room
@@ -70,8 +74,10 @@ module LiveKit
70
74
  @roomAdmin = roomAdmin
71
75
  @room = room
72
76
  @canPublish = canPublish
77
+ @canPublishSources = canPublishSources
73
78
  @canSubscribe = canSubscribe
74
79
  @canPublishData = canPublishData
80
+ @canUpdateOwnMetadata = canUpdateOwnMetadata
75
81
  @hidden = hidden
76
82
  @recorder = recorder
77
83
  @ingressAdmin = ingressAdmin
@@ -90,8 +96,10 @@ module LiveKit
90
96
  roomAdmin: hash["roomAdmin"],
91
97
  room: hash["room"],
92
98
  canPublish: hash["canPublish"],
99
+ canPublishSources: hash["canPublishSources"],
93
100
  canSubscribe: hash["canSubscribe"],
94
101
  canPublishData: hash["canPublishData"],
102
+ canUpdateOwnMetadata: hash["canUpdateOwnMetadata"],
95
103
  hidden: hash["hidden"],
96
104
  recorder: hash["recorder"],
97
105
  ingressAdmin: hash["ingressAdmin"]
@@ -14,7 +14,6 @@ module LiveKit
14
14
  end
15
15
 
16
16
  def create_ingress(
17
- # currently :RTMP_INPUT is the only supported type
18
17
  input_type,
19
18
  # optional, name to identify the ingress
20
19
  name: nil,
@@ -27,7 +26,9 @@ module LiveKit
27
26
  # optional, LiveKit::Proto::IngressAudioOptions
28
27
  audio: nil,
29
28
  # optional, LiveKit::Proto::IngressVideoOptions
30
- video: nil
29
+ video: nil,
30
+ # optional, whether to forward input media unprocessed, for WHIP only
31
+ bypass_transcoding: nil
31
32
  )
32
33
  request = Proto::CreateIngressRequest.new(
33
34
  input_type: input_type,
@@ -37,6 +38,7 @@ module LiveKit
37
38
  participant_name: participant_name,
38
39
  audio: audio,
39
40
  video: video,
41
+ bypass_transcoding: bypass_transcoding,
40
42
  )
41
43
  self.rpc(
42
44
  :CreateIngress,
@@ -58,7 +60,9 @@ module LiveKit
58
60
  # optional, LiveKit::Proto::IngressAudioOptions
59
61
  audio: nil,
60
62
  # optional, LiveKit::Proto::IngressVideoOptions
61
- video: nil
63
+ video: nil,
64
+ # optional, whether to forward input media unprocessed, for WHIP only
65
+ bypass_transcoding: nil
62
66
  )
63
67
  request = Proto::UpdateIngressRequest.new(
64
68
  ingress_id: ingress_id,
@@ -68,6 +72,7 @@ module LiveKit
68
72
  participant_name: participant_name,
69
73
  audio: audio,
70
74
  video: video,
75
+ bypass_transcoding: bypass_transcoding,
71
76
  )
72
77
  self.rpc(
73
78
  :UpdateIngress,
@@ -30,6 +30,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
30
30
  optional :url, :string, 1
31
31
  optional :audio_only, :bool, 2
32
32
  optional :video_only, :bool, 3
33
+ optional :await_start_signal, :bool, 12
33
34
  repeated :file_outputs, :message, 9, "livekit.EncodedFileOutput"
34
35
  repeated :stream_outputs, :message, 10, "livekit.StreamOutput"
35
36
  repeated :segment_outputs, :message, 11, "livekit.SegmentedFileOutput"
@@ -13,6 +13,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
13
13
  optional :room_name, :string, 3
14
14
  optional :participant_identity, :string, 4
15
15
  optional :participant_name, :string, 5
16
+ optional :bypass_transcoding, :bool, 8
16
17
  optional :audio, :message, 6, "livekit.IngressAudioOptions"
17
18
  optional :video, :message, 7, "livekit.IngressVideoOptions"
18
19
  end
@@ -49,6 +50,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
49
50
  optional :stream_key, :string, 3
50
51
  optional :url, :string, 4
51
52
  optional :input_type, :enum, 5, "livekit.IngressInput"
53
+ optional :bypass_transcoding, :bool, 13
52
54
  optional :audio, :message, 6, "livekit.IngressAudioOptions"
53
55
  optional :video, :message, 7, "livekit.IngressVideoOptions"
54
56
  optional :room_name, :string, 8
@@ -90,6 +92,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
90
92
  optional :room_name, :string, 3
91
93
  optional :participant_identity, :string, 4
92
94
  optional :participant_name, :string, 5
95
+ proto3_optional :bypass_transcoding, :bool, 8
93
96
  optional :audio, :message, 6, "livekit.IngressAudioOptions"
94
97
  optional :video, :message, 7, "livekit.IngressVideoOptions"
95
98
  end
@@ -104,6 +107,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
104
107
  end
105
108
  add_enum "livekit.IngressInput" do
106
109
  value :RTMP_INPUT, 0
110
+ value :WHIP_INPUT, 1
107
111
  end
108
112
  add_enum "livekit.IngressAudioEncodingPreset" do
109
113
  value :OPUS_STEREO_96KBPS, 0
@@ -17,6 +17,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
17
17
  repeated :enabled_codecs, :message, 7, "livekit.Codec"
18
18
  optional :metadata, :string, 8
19
19
  optional :num_participants, :uint32, 9
20
+ optional :num_publishers, :uint32, 11
20
21
  optional :active_recording, :bool, 10
21
22
  end
22
23
  add_message "livekit.Codec" do
@@ -165,6 +166,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
165
166
  end
166
167
  add_message "livekit.DisabledCodecs" do
167
168
  repeated :codecs, :message, 1, "livekit.Codec"
169
+ repeated :publish, :message, 2, "livekit.Codec"
168
170
  end
169
171
  add_message "livekit.RTPStats" do
170
172
  optional :start_time, :message, 1, "google.protobuf.Timestamp"
@@ -208,6 +210,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
208
210
  optional :last_key_frame, :message, 34, "google.protobuf.Timestamp"
209
211
  optional :layer_lock_plis, :uint32, 35
210
212
  optional :last_layer_lock_pli, :message, 36, "google.protobuf.Timestamp"
213
+ optional :sample_rate, :double, 42
214
+ optional :drift_ms, :double, 43
211
215
  end
212
216
  add_message "livekit.TimedVersion" do
213
217
  optional :unix_micro, :int64, 1
@@ -270,6 +274,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
270
274
  value :RR_SUBSCRIBER_FAILED, 3
271
275
  value :RR_SWITCH_CANDIDATE, 4
272
276
  end
277
+ add_enum "livekit.SubscriptionError" do
278
+ value :SE_UNKOWN, 0
279
+ value :SE_CODEC_UNSUPPORTED, 1
280
+ value :SE_TRACK_NOTFOUND, 2
281
+ end
273
282
  end
274
283
  end
275
284
 
@@ -309,5 +318,6 @@ module LiveKit
309
318
  ClientConfigSetting = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.ClientConfigSetting").enummodule
310
319
  DisconnectReason = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.DisconnectReason").enummodule
311
320
  ReconnectReason = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.ReconnectReason").enummodule
321
+ SubscriptionError = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("livekit.SubscriptionError").enummodule
312
322
  end
313
323
  end
@@ -18,6 +18,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
18
18
  optional :track, :message, 8, "livekit.TrackInfo"
19
19
  optional :id, :string, 6
20
20
  optional :created_at, :int64, 7
21
+ optional :num_dropped, :int32, 11
21
22
  end
22
23
  end
23
24
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LiveKit
4
- VERSION = "0.5.4"
4
+ VERSION = "0.5.5"
5
5
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livekit-server-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Omri Gabay
8
8
  - David Zhao
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-05-22 00:00:00.000000000 Z
12
+ date: 2023-06-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-protobuf
@@ -91,7 +91,7 @@ dependencies:
91
91
  - - "<"
92
92
  - !ruby/object:Gem::Version
93
93
  version: '2.0'
94
- description:
94
+ description:
95
95
  email:
96
96
  - omri@omrigabay.me
97
97
  - dz@livekit.io
@@ -100,6 +100,8 @@ extensions: []
100
100
  extra_rdoc_files: []
101
101
  files:
102
102
  - ".editorconfig"
103
+ - ".github/banner_dark.png"
104
+ - ".github/banner_light.png"
103
105
  - ".github/workflows/test.yml"
104
106
  - ".gitignore"
105
107
  - ".gitmodules"
@@ -155,7 +157,7 @@ homepage: https://livekit.io
155
157
  licenses:
156
158
  - Apache-2.0
157
159
  metadata: {}
158
- post_install_message:
160
+ post_install_message:
159
161
  rdoc_options: []
160
162
  require_paths:
161
163
  - lib
@@ -170,8 +172,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
170
172
  - !ruby/object:Gem::Version
171
173
  version: '0'
172
174
  requirements: []
173
- rubygems_version: 3.4.6
174
- signing_key:
175
+ rubygems_version: 3.0.3.1
176
+ signing_key:
175
177
  specification_version: 4
176
178
  summary: LiveKit Server SDK for Ruby
177
179
  test_files: []