bitmovin-ruby 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/README.md +1 -1
- data/examples/create_encoding_finished_webhook.rb +21 -0
- data/examples/dash_hls_mp4_encoding_with_manifests.rb +502 -0
- data/examples/hls_multi_codec.rb +205 -0
- data/examples/simple_dash_with_http_input.rb +216 -0
- data/examples/simple_hls_with_aes128.rb +197 -0
- data/lib/bitmovin/encoding/codec_configurations/h265_configuration.rb +1 -0
- data/lib/bitmovin/encoding/encodings/muxings/drms/drm_muxing_resource.rb +54 -0
- data/lib/bitmovin/encoding/encodings/muxings/drms/drm_muxings.rb +6 -0
- data/lib/bitmovin/encoding/encodings/muxings/drms/ts_muxing_aes_encryption.rb +5 -0
- data/lib/bitmovin/encoding/encodings/muxings/drms/ts_muxing_aes_encryption_list.rb +15 -0
- data/lib/bitmovin/encoding/encodings/muxings/drms/ts_muxing_drm_list.rb +11 -0
- data/lib/bitmovin/encoding/encodings/muxings/mp4_muxing_list.rb +1 -1
- data/lib/bitmovin/encoding/encodings/muxings/ts_muxing.rb +15 -0
- data/lib/bitmovin/encoding/encodings/stream.rb +6 -1
- data/lib/bitmovin/encoding/encodings.rb +4 -0
- data/lib/bitmovin/encoding/inputs.rb +18 -0
- data/lib/bitmovin/encoding/manifests/hls_audio_media.rb +27 -0
- data/lib/bitmovin/encoding/manifests/hls_manifest.rb +43 -0
- data/lib/bitmovin/encoding/manifests/hls_variant_stream.rb +20 -0
- data/lib/bitmovin/encoding/manifests/hls_variant_stream_list.rb +22 -0
- data/lib/bitmovin/encoding/manifests/list.rb +39 -0
- data/lib/bitmovin/encoding/manifests.rb +3 -0
- data/lib/bitmovin/encoding/outputs.rb +2 -0
- data/lib/bitmovin/version.rb +1 -1
- data/lib/bitmovin/webhooks/encoding_finished_webhook.rb +5 -0
- data/lib/bitmovin/webhooks/webhook_encryption.rb +45 -0
- data/lib/bitmovin/webhooks/webhook_resource.rb +5 -0
- data/lib/bitmovin/webhooks/webhook_signature.rb +45 -0
- data/lib/bitmovin/webhooks.rb +8 -0
- data/lib/bitmovin-ruby.rb +1 -0
- metadata +22 -3
@@ -0,0 +1,15 @@
|
|
1
|
+
module Bitmovin::Encoding::Encodings::Muxings::Drms
|
2
|
+
class TsMuxingAesEncryptionList < Bitmovin::Encoding::Encodings::List
|
3
|
+
init "muxings", Bitmovin::Encoding::Encodings::Muxings::Drms::TsMuxingAesEncryption
|
4
|
+
|
5
|
+
attr_accessor :muxing_id
|
6
|
+
def initialize(encoding_id, muxing_id, hash = {})
|
7
|
+
@encoding_id = encoding_id
|
8
|
+
@muxing_id = muxing_id
|
9
|
+
end
|
10
|
+
|
11
|
+
def build(hash = {})
|
12
|
+
self.class.klass.new(@encoding_id, @muxing_id, hash)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,5 +1,20 @@
|
|
1
1
|
module Bitmovin::Encoding::Encodings::Muxings
|
2
2
|
class TsMuxing < MuxingResource
|
3
|
+
attr_accessor :id
|
4
|
+
attr_accessor :encoding_id
|
3
5
|
attr_accessor :segment_naming, :segment_length
|
6
|
+
attr_accessor :drms
|
7
|
+
|
8
|
+
def initialize(encoding_id, hash = {})
|
9
|
+
super(encoding_id, hash)
|
10
|
+
@encoding_id = encoding_id
|
11
|
+
end
|
12
|
+
|
13
|
+
def drms
|
14
|
+
if !persisted?
|
15
|
+
raise BitmovinError.new(self), "Cannot access drms of not persisted muxing"
|
16
|
+
end
|
17
|
+
Drms::TsMuxingDrmList.new(@encoding_id, @id)
|
18
|
+
end
|
4
19
|
end
|
5
20
|
end
|
@@ -2,6 +2,7 @@ module Bitmovin::Encoding::Encodings
|
|
2
2
|
class Stream < Bitmovin::Resource
|
3
3
|
attr_accessor :encoding_id
|
4
4
|
attr_accessor :id
|
5
|
+
attr_accessor :conditions
|
5
6
|
|
6
7
|
def initialize(encoding_id, hash = {})
|
7
8
|
set_defaults
|
@@ -13,6 +14,7 @@ module Bitmovin::Encoding::Encodings
|
|
13
14
|
@input_streams = (hsh[:input_streams] || []).map { |input| StreamInput.new(@encoding_id, @id, input) }
|
14
15
|
|
15
16
|
@errors = []
|
17
|
+
@conditions = nil
|
16
18
|
end
|
17
19
|
|
18
20
|
attr_accessor :name, :description, :created_at, :modified_at, :create_quality_meta_data
|
@@ -71,10 +73,13 @@ module Bitmovin::Encoding::Encodings
|
|
71
73
|
def collect_attributes
|
72
74
|
val = Hash.new
|
73
75
|
[:name, :description, :create_quality_meta_data,
|
74
|
-
:input_streams, :outputs, :codec_config_id].each do |name|
|
76
|
+
:input_streams, :outputs, :codec_config_id, :conditions].each do |name|
|
75
77
|
json_name = ActiveSupport::Inflector.camelize(name.to_s, false)
|
76
78
|
val[json_name] = instance_variable_get("@#{name}")
|
77
79
|
end
|
80
|
+
if @conditions.nil?
|
81
|
+
val.delete("conditions")
|
82
|
+
end
|
78
83
|
val
|
79
84
|
end
|
80
85
|
def validate!
|
@@ -22,3 +22,7 @@ require 'bitmovin/encoding/encodings/muxings/mp4_muxing'
|
|
22
22
|
require 'bitmovin/encoding/encodings/muxings/mp4_muxing_list'
|
23
23
|
require 'bitmovin/encoding/encodings/muxings/webm_muxing'
|
24
24
|
require 'bitmovin/encoding/encodings/muxings/webm_muxing_list'
|
25
|
+
require 'bitmovin/encoding/encodings/muxings/drms/drm_muxings'
|
26
|
+
require 'bitmovin/encoding/encodings/muxings/drms/ts_muxing_drm_list'
|
27
|
+
require 'bitmovin/encoding/encodings/muxings/drms/ts_muxing_aes_encryption_list'
|
28
|
+
require 'bitmovin/encoding/encodings/muxings/drms/drm_muxing_resource'
|
@@ -7,6 +7,24 @@ module Bitmovin::Encoding
|
|
7
7
|
case item['type'].downcase
|
8
8
|
when "s3"
|
9
9
|
S3Input.new(item)
|
10
|
+
when "gcs"
|
11
|
+
GcsInput.new(item)
|
12
|
+
when "http"
|
13
|
+
HttpInput.new(item)
|
14
|
+
when "https"
|
15
|
+
HttpsInput.new(item)
|
16
|
+
when "aspera"
|
17
|
+
AsperaInput.new(item)
|
18
|
+
when "rtmp"
|
19
|
+
RtmpInput.new(item)
|
20
|
+
when "generic-s3"
|
21
|
+
GenericS3Input.new(item)
|
22
|
+
when "azure"
|
23
|
+
AzureInput.new(item)
|
24
|
+
when "ftp"
|
25
|
+
FtpInput.new(item)
|
26
|
+
when "sftp"
|
27
|
+
SftpInput.new(item)
|
10
28
|
end
|
11
29
|
end
|
12
30
|
list
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Bitmovin::Encoding::Manifests
|
2
|
+
class HlsAudioMedia < Bitmovin::Resource
|
3
|
+
attr_accessor :manifest_id
|
4
|
+
attr_accessor :groupId
|
5
|
+
attr_accessor :language
|
6
|
+
attr_accessor :assocLanguage
|
7
|
+
attr_accessor :name
|
8
|
+
attr_accessor :isDefault
|
9
|
+
attr_accessor :autoselect
|
10
|
+
attr_accessor :characteristics
|
11
|
+
attr_accessor :segmentPath
|
12
|
+
attr_accessor :encodingId
|
13
|
+
attr_accessor :streamId
|
14
|
+
attr_accessor :muxingId
|
15
|
+
attr_accessor :drmId
|
16
|
+
attr_accessor :startSegmentNumber
|
17
|
+
attr_accessor :endSegmentNumber
|
18
|
+
attr_accessor :uri
|
19
|
+
|
20
|
+
def initialize(manifest_id, hash = {})
|
21
|
+
hsh = ActiveSupport::HashWithIndifferentAccess.new(underscore_hash(hash))
|
22
|
+
@manifest_id = manifest_id
|
23
|
+
self.class.init(File.join("/v1/encoding/manifests/hls/", manifest_id, "media/audio"))
|
24
|
+
super(hsh)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,7 +1,50 @@
|
|
1
1
|
module Bitmovin::Encoding::Manifests
|
2
2
|
class HlsManifest < Bitmovin::Resource
|
3
|
+
include Bitmovin::ChildCollection
|
3
4
|
init("/v1/encoding/manifests/hls")
|
4
5
|
|
5
6
|
attr_accessor :outputs, :manifest_name
|
7
|
+
|
8
|
+
def initialize(hash = {})
|
9
|
+
hsh = ActiveSupport::HashWithIndifferentAccess.new(underscore_hash(hash))
|
10
|
+
super(hash)
|
11
|
+
@outputs = (hsh[:outputs] || []).map { |output| Bitmovin::Encoding::StreamOutput.new(output) }
|
12
|
+
@streams = nil
|
13
|
+
@audio_media = nil
|
14
|
+
end
|
15
|
+
|
16
|
+
child_collection(:streams, "/v1/encoding/manifests/hls/%s/streams", [:id], Bitmovin::Encoding::Manifests::HlsVariantStream)
|
17
|
+
child_collection(:audio_media, "/v1/encoding/manifests/hls/%s/media/audio", [:id], Bitmovin::Encoding::Manifests::HlsAudioMedia)
|
18
|
+
|
19
|
+
def start!
|
20
|
+
path = File.join("/v1/encoding/manifests/hls/", @id, "start")
|
21
|
+
Bitmovin.client.post(path)
|
22
|
+
end
|
23
|
+
|
24
|
+
def full_status
|
25
|
+
path = File.join("/v1/encoding/manifests/hls/", @id, "status")
|
26
|
+
response = Bitmovin.client.get(path)
|
27
|
+
hash_to_struct(result(response))
|
28
|
+
end
|
29
|
+
|
30
|
+
def status
|
31
|
+
full_status.status
|
32
|
+
end
|
33
|
+
|
34
|
+
def progress
|
35
|
+
full_status.progress
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def collect_attributes
|
41
|
+
val = Hash.new
|
42
|
+
[:name, :description, :manifest_name].each do |name|
|
43
|
+
json_name = ActiveSupport::Inflector.camelize(name.to_s, false)
|
44
|
+
val[json_name] = instance_variable_get("@#{name}")
|
45
|
+
end
|
46
|
+
val["outputs"] = @outputs.map { |o| o.send(:collect_attributes) }
|
47
|
+
val
|
48
|
+
end
|
6
49
|
end
|
7
50
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Bitmovin::Encoding::Manifests
|
2
|
+
class HlsVariantStream < Bitmovin::Resource
|
3
|
+
attr_accessor :id, :manifest_id
|
4
|
+
|
5
|
+
# Required
|
6
|
+
attr_accessor :closed_captions, :segment_path, :uri
|
7
|
+
attr_accessor :encoding_id, :stream_id, :muxing_id
|
8
|
+
|
9
|
+
attr_accessor :audio, :video, :subtitles
|
10
|
+
attr_accessor :drm_id, :start_segment_number, :end_segment_number
|
11
|
+
|
12
|
+
|
13
|
+
def initialize(manifest_id, hash = {})
|
14
|
+
hsh = ActiveSupport::HashWithIndifferentAccess.new(underscore_hash(hash))
|
15
|
+
@manifest_id = manifest_id
|
16
|
+
self.class.init(File.join("/v1/encoding/manifests/hls/", manifest_id, "streams"))
|
17
|
+
super(hsh)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Bitmovin::Encoding::Manifests
|
2
|
+
class HlsVariantStreamList < Bitmovin::Resource
|
3
|
+
init "streams"
|
4
|
+
attr_accessor :manifest_id
|
5
|
+
|
6
|
+
def initialize(manifest_id)
|
7
|
+
@manifest_id = manifest_id
|
8
|
+
self.class.init(File.join("/v1/encoding/manifests/", manifest_id, "streams"))
|
9
|
+
#super(hsh)
|
10
|
+
end
|
11
|
+
|
12
|
+
def list(limit = 100, offset = 0)
|
13
|
+
path = File.join("/v1/encoding/manifests/hls", @manifest_id, self.class.resource_path)
|
14
|
+
response = Bitmovin.client.get(path, { limit: limit, offset: offset })
|
15
|
+
result(response)['items'].map { |item| self.class.klass.new(@manifest_id, item) }
|
16
|
+
end
|
17
|
+
|
18
|
+
def build(hash = {})
|
19
|
+
HlsVariantStream.new(@manifest_id, hash)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Bitmovin::Encoding::Manifests
|
2
|
+
class List
|
3
|
+
include Bitmovin::Helpers
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def init(path, klass)
|
7
|
+
@resource_path = path
|
8
|
+
@klass = klass
|
9
|
+
end
|
10
|
+
attr_reader :resource_path
|
11
|
+
attr_reader :klass
|
12
|
+
end
|
13
|
+
|
14
|
+
attr_accessor :manifest_id
|
15
|
+
def initialize(manifest_id)
|
16
|
+
@manifest_id = manifest_id
|
17
|
+
end
|
18
|
+
|
19
|
+
def list(limit = 100, offset = 0)
|
20
|
+
path = File.join("/v1/encoding/manifest/", @manifest_id, self.class.resource_path)
|
21
|
+
response = Bitmovin.client.get(path, { limit: limit, offset: offset })
|
22
|
+
result(response)['items'].map { |item| self.class.klass.new(@encoding_id, item) }
|
23
|
+
end
|
24
|
+
|
25
|
+
def add(stream)
|
26
|
+
raise "Not implemented yet. Please use #build and Stream#save! for the time being"
|
27
|
+
end
|
28
|
+
|
29
|
+
def build(hash = {})
|
30
|
+
self.class.klass.new(@manifest_id, hash)
|
31
|
+
end
|
32
|
+
|
33
|
+
def find(id)
|
34
|
+
path = File.join("/v1/encoding/manifests/", @manifest_id, self.class.resource_path, id)
|
35
|
+
response = Bitmovin.client.get(path)
|
36
|
+
self.class.klass.new(@manifest_id, result(response))
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -19,5 +19,8 @@ require 'bitmovin/encoding/manifests/audio_adaptation_set'
|
|
19
19
|
require 'bitmovin/encoding/manifests/video_adaptation_set'
|
20
20
|
require 'bitmovin/encoding/manifests/period'
|
21
21
|
require 'bitmovin/encoding/manifests/dash_manifest'
|
22
|
+
require 'bitmovin/encoding/manifests/hls_audio_media'
|
23
|
+
require 'bitmovin/encoding/manifests/hls_variant_stream'
|
22
24
|
require 'bitmovin/encoding/manifests/hls_manifest'
|
23
25
|
require 'bitmovin/encoding/manifests/dash_representations'
|
26
|
+
require 'bitmovin/encoding/manifests/hls_variant_stream_list'
|
data/lib/bitmovin/version.rb
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
module Bitmovin::Webhooks
|
2
|
+
class WebhookEncryption
|
3
|
+
def initialize(hash = {})
|
4
|
+
@errors = []
|
5
|
+
hash.each do |name, value|
|
6
|
+
instance_variable_set("@#{ActiveSupport::Inflector.underscore(name)}", value)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_accessor :type, :key
|
11
|
+
|
12
|
+
def valid?
|
13
|
+
validate!
|
14
|
+
@errors.empty?
|
15
|
+
end
|
16
|
+
|
17
|
+
def invalid?
|
18
|
+
!valid?
|
19
|
+
end
|
20
|
+
|
21
|
+
def errors
|
22
|
+
@errors
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_json(args)
|
26
|
+
collect_attributes.to_json(args)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def collect_attributes
|
32
|
+
val = Hash.new
|
33
|
+
[:type, :key].each do |name|
|
34
|
+
json_name = ActiveSupport::Inflector.camelize(name.to_s, false)
|
35
|
+
val[json_name] = instance_variable_get("@#{name}")
|
36
|
+
end
|
37
|
+
val
|
38
|
+
end
|
39
|
+
|
40
|
+
def validate!
|
41
|
+
@errors << "type cannot be blank" if @type.blank?
|
42
|
+
@errors << "key cannot be blank" if @key.blank?
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Bitmovin::Webhooks
|
2
|
+
class WebhookSignature
|
3
|
+
def initialize(hash = {})
|
4
|
+
@errors = []
|
5
|
+
hash.each do |name, value|
|
6
|
+
instance_variable_set("@#{ActiveSupport::Inflector.underscore(name)}", value)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_accessor :type, :key
|
11
|
+
|
12
|
+
def valid?
|
13
|
+
validate!
|
14
|
+
@errors.empty?
|
15
|
+
end
|
16
|
+
|
17
|
+
def invalid?
|
18
|
+
!valid?
|
19
|
+
end
|
20
|
+
|
21
|
+
def errors
|
22
|
+
@errors
|
23
|
+
end
|
24
|
+
|
25
|
+
def to_json(args)
|
26
|
+
collect_attributes.to_json(args)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def collect_attributes
|
32
|
+
val = Hash.new
|
33
|
+
[:type, :key].each do |name|
|
34
|
+
json_name = ActiveSupport::Inflector.camelize(name.to_s, false)
|
35
|
+
val[json_name] = instance_variable_get("@#{name}")
|
36
|
+
end
|
37
|
+
val
|
38
|
+
end
|
39
|
+
|
40
|
+
def validate!
|
41
|
+
@errors << "type cannot be blank" if @type.blank?
|
42
|
+
@errors << "key cannot be blank" if @key.blank?
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
data/lib/bitmovin-ruby.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitmovin-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Hoelbling-Inzko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -133,7 +133,12 @@ files:
|
|
133
133
|
- bin/console
|
134
134
|
- bin/setup
|
135
135
|
- bitmovin-ruby.gemspec
|
136
|
+
- examples/create_encoding_finished_webhook.rb
|
137
|
+
- examples/dash_hls_mp4_encoding_with_manifests.rb
|
138
|
+
- examples/hls_multi_codec.rb
|
136
139
|
- examples/simple_dash.rb
|
140
|
+
- examples/simple_dash_with_http_input.rb
|
141
|
+
- examples/simple_hls_with_aes128.rb
|
137
142
|
- lib/bitmovin-ruby.rb
|
138
143
|
- lib/bitmovin/bitmovin_error.rb
|
139
144
|
- lib/bitmovin/child_collection.rb
|
@@ -149,6 +154,11 @@ files:
|
|
149
154
|
- lib/bitmovin/encoding/encodings/encoding_task.rb
|
150
155
|
- lib/bitmovin/encoding/encodings/list.rb
|
151
156
|
- lib/bitmovin/encoding/encodings/muxing_list.rb
|
157
|
+
- lib/bitmovin/encoding/encodings/muxings/drms/drm_muxing_resource.rb
|
158
|
+
- lib/bitmovin/encoding/encodings/muxings/drms/drm_muxings.rb
|
159
|
+
- lib/bitmovin/encoding/encodings/muxings/drms/ts_muxing_aes_encryption.rb
|
160
|
+
- lib/bitmovin/encoding/encodings/muxings/drms/ts_muxing_aes_encryption_list.rb
|
161
|
+
- lib/bitmovin/encoding/encodings/muxings/drms/ts_muxing_drm_list.rb
|
152
162
|
- lib/bitmovin/encoding/encodings/muxings/fmp4_muxing.rb
|
153
163
|
- lib/bitmovin/encoding/encodings/muxings/fmp4_muxing_list.rb
|
154
164
|
- lib/bitmovin/encoding/encodings/muxings/mp4_muxing.rb
|
@@ -179,7 +189,11 @@ files:
|
|
179
189
|
- lib/bitmovin/encoding/manifests/dash_manifest.rb
|
180
190
|
- lib/bitmovin/encoding/manifests/dash_representations.rb
|
181
191
|
- lib/bitmovin/encoding/manifests/fmp4_representation.rb
|
192
|
+
- lib/bitmovin/encoding/manifests/hls_audio_media.rb
|
182
193
|
- lib/bitmovin/encoding/manifests/hls_manifest.rb
|
194
|
+
- lib/bitmovin/encoding/manifests/hls_variant_stream.rb
|
195
|
+
- lib/bitmovin/encoding/manifests/hls_variant_stream_list.rb
|
196
|
+
- lib/bitmovin/encoding/manifests/list.rb
|
183
197
|
- lib/bitmovin/encoding/manifests/manifest_resource.rb
|
184
198
|
- lib/bitmovin/encoding/manifests/period.rb
|
185
199
|
- lib/bitmovin/encoding/manifests/video_adaptation.rb
|
@@ -192,6 +206,11 @@ files:
|
|
192
206
|
- lib/bitmovin/input_resource.rb
|
193
207
|
- lib/bitmovin/resource.rb
|
194
208
|
- lib/bitmovin/version.rb
|
209
|
+
- lib/bitmovin/webhooks.rb
|
210
|
+
- lib/bitmovin/webhooks/encoding_finished_webhook.rb
|
211
|
+
- lib/bitmovin/webhooks/webhook_encryption.rb
|
212
|
+
- lib/bitmovin/webhooks/webhook_resource.rb
|
213
|
+
- lib/bitmovin/webhooks/webhook_signature.rb
|
195
214
|
homepage: https://github.com/bitmovin/bitmovin-ruby
|
196
215
|
licenses:
|
197
216
|
- MIT
|
@@ -212,7 +231,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
231
|
version: '0'
|
213
232
|
requirements: []
|
214
233
|
rubyforge_project:
|
215
|
-
rubygems_version: 2.6.
|
234
|
+
rubygems_version: 2.6.12
|
216
235
|
signing_key:
|
217
236
|
specification_version: 4
|
218
237
|
summary: Api Client for the Bitmovin API
|