kaltura-client 3.3.0 → 14.15.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README +23 -23
- data/lib/kaltura_client.rb +2054 -1860
- data/lib/kaltura_client_base.rb +4 -1
- data/lib/kaltura_enums.rb +612 -36
- data/lib/kaltura_plugins/kaltura_activiti_business_process_notification_client_plugin.rb +96 -0
- data/lib/kaltura_plugins/kaltura_ad_cue_point_client_plugin.rb +46 -17
- data/lib/kaltura_plugins/kaltura_admin_console_client_plugin.rb +61 -251
- data/lib/kaltura_plugins/kaltura_annotation_client_plugin.rb +131 -60
- data/lib/kaltura_plugins/kaltura_aspera_client_plugin.rb +62 -0
- data/lib/kaltura_plugins/kaltura_attachment_client_plugin.rb +83 -55
- data/lib/kaltura_plugins/kaltura_audit_client_plugin.rb +613 -0
- data/lib/kaltura_plugins/kaltura_avn_distribution_client_plugin.rb +109 -0
- data/lib/kaltura_plugins/kaltura_bpm_event_notification_integration_client_plugin.rb +61 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_client_plugin.rb +17 -19
- data/lib/kaltura_plugins/kaltura_bulk_upload_csv_client_plugin.rb +7 -6
- data/lib/kaltura_plugins/kaltura_bulk_upload_filter_client_plugin.rb +33 -13
- data/lib/kaltura_plugins/kaltura_bulk_upload_xml_client_plugin.rb +1 -2
- data/lib/kaltura_plugins/kaltura_business_process_notification_client_plugin.rb +545 -0
- data/lib/kaltura_plugins/kaltura_caption_client_plugin.rb +235 -114
- data/lib/kaltura_plugins/kaltura_caption_search_client_plugin.rb +86 -29
- data/lib/kaltura_plugins/kaltura_cielo24client_plugin.rb +39 -17
- data/lib/kaltura_plugins/kaltura_code_cue_point_client_plugin.rb +49 -18
- data/lib/kaltura_plugins/kaltura_comcast_mrss_distribution_client_plugin.rb +163 -0
- data/lib/kaltura_plugins/kaltura_content_distribution_client_plugin.rb +846 -439
- data/lib/kaltura_plugins/kaltura_cross_kaltura_distribution_client_plugin.rb +232 -0
- data/lib/kaltura_plugins/kaltura_cue_point_client_plugin.rb +229 -74
- data/lib/kaltura_plugins/kaltura_dailymotion_distribution_client_plugin.rb +199 -0
- data/lib/kaltura_plugins/kaltura_document_client_plugin.rb +140 -97
- data/lib/kaltura_plugins/kaltura_double_click_distribution_client_plugin.rb +142 -0
- data/lib/kaltura_plugins/kaltura_drm_client_plugin.rb +635 -0
- data/lib/kaltura_plugins/kaltura_drop_folder_client_plugin.rb +485 -196
- data/lib/kaltura_plugins/kaltura_drop_folder_xml_bulk_upload_client_plugin.rb +19 -1
- data/lib/kaltura_plugins/kaltura_elastic_search_client_plugin.rb +1228 -0
- data/lib/kaltura_plugins/kaltura_email_notification_client_plugin.rb +178 -89
- data/lib/kaltura_plugins/kaltura_event_cue_point_client_plugin.rb +10 -4
- data/lib/kaltura_plugins/kaltura_event_notification_client_plugin.rb +205 -95
- data/lib/kaltura_plugins/kaltura_external_media_client_plugin.rb +43 -32
- data/lib/kaltura_plugins/kaltura_facebook_distribution_client_plugin.rb +183 -0
- data/lib/kaltura_plugins/kaltura_fairplay_client_plugin.rb +62 -0
- data/lib/kaltura_plugins/kaltura_feed_drop_folder_client_plugin.rb +40 -16
- data/lib/kaltura_plugins/kaltura_file_sync_client_plugin.rb +182 -67
- data/lib/kaltura_plugins/kaltura_freewheel_distribution_client_plugin.rb +157 -0
- data/lib/kaltura_plugins/kaltura_freewheel_generic_distribution_client_plugin.rb +172 -0
- data/lib/kaltura_plugins/kaltura_ftp_distribution_client_plugin.rb +258 -0
- data/lib/kaltura_plugins/kaltura_http_notification_client_plugin.rb +154 -102
- data/lib/kaltura_plugins/kaltura_hulu_distribution_client_plugin.rb +213 -0
- data/lib/kaltura_plugins/kaltura_idetic_distribution_client_plugin.rb +131 -0
- data/lib/kaltura_plugins/kaltura_integration_client_plugin.rb +19 -10
- data/lib/kaltura_plugins/kaltura_kaltura_internal_tools_client_plugin.rb +1 -87
- data/lib/kaltura_plugins/kaltura_kontiki_client_plugin.rb +19 -10
- data/lib/kaltura_plugins/kaltura_like_client_plugin.rb +45 -25
- data/lib/kaltura_plugins/kaltura_metadata_client_plugin.rb +435 -213
- data/lib/kaltura_plugins/kaltura_metro_pcs_distribution_client_plugin.rb +155 -0
- data/lib/kaltura_plugins/kaltura_msn_distribution_client_plugin.rb +186 -0
- data/lib/kaltura_plugins/kaltura_play_ready_client_plugin.rb +482 -0
- data/lib/kaltura_plugins/kaltura_poll_client_plugin.rb +116 -0
- data/lib/kaltura_plugins/kaltura_push_notification_client_plugin.rb +154 -0
- data/lib/kaltura_plugins/kaltura_quick_play_distribution_client_plugin.rb +187 -0
- data/lib/kaltura_plugins/kaltura_quiz_client_plugin.rb +155 -58
- data/lib/kaltura_plugins/kaltura_schedule_bulk_upload_client_plugin.rb +107 -0
- data/lib/kaltura_plugins/kaltura_schedule_client_plugin.rb +1580 -0
- data/lib/kaltura_plugins/kaltura_schedule_drop_folder_client_plugin.rb +52 -0
- data/lib/kaltura_plugins/kaltura_scheduled_task_client_plugin.rb +277 -71
- data/lib/kaltura_plugins/kaltura_scheduled_task_content_distribution_client_plugin.rb +4 -3
- data/lib/kaltura_plugins/kaltura_scheduled_task_event_notification_client_plugin.rb +4 -3
- data/lib/kaltura_plugins/kaltura_scheduled_task_metadata_client_plugin.rb +10 -7
- data/lib/kaltura_plugins/kaltura_short_link_client_plugin.rb +113 -66
- data/lib/kaltura_plugins/kaltura_system_partner_client_plugin.rb +81 -517
- data/lib/kaltura_plugins/kaltura_tag_search_client_plugin.rb +63 -30
- data/lib/kaltura_plugins/kaltura_thumb_cue_point_client_plugin.rb +40 -16
- data/lib/kaltura_plugins/kaltura_transcript_client_plugin.rb +44 -8
- data/lib/kaltura_plugins/kaltura_unicorn_distribution_client_plugin.rb +212 -0
- data/lib/kaltura_plugins/kaltura_var_console_client_plugin.rb +75 -74
- data/lib/kaltura_plugins/kaltura_velocix_client_plugin.rb +10 -4
- data/lib/kaltura_plugins/kaltura_view_history_client_plugin.rb +112 -0
- data/lib/kaltura_plugins/kaltura_virus_scan_client_plugin.rb +119 -59
- data/lib/kaltura_plugins/kaltura_voicebase_client_plugin.rb +34 -19
- data/lib/kaltura_plugins/kaltura_webex_drop_folder_client_plugin.rb +207 -0
- data/lib/kaltura_plugins/kaltura_widevine_client_plugin.rb +299 -0
- data/lib/kaltura_plugins/kaltura_wowza_client_plugin.rb +22 -13
- data/lib/kaltura_plugins/kaltura_yahoo_distribution_client_plugin.rb +155 -0
- data/lib/kaltura_plugins/kaltura_you_tube_distribution_client_plugin.rb +382 -0
- data/lib/kaltura_plugins/kaltura_youtube_api_distribution_client_plugin.rb +219 -0
- data/lib/kaltura_types.rb +10305 -4858
- data/test/access_control_service_test.rb +43 -20
- data/test/base_entry_service_test.rb +57 -67
- data/test/configuration_test.rb +2 -34
- data/test/cue_point_service_test.rb +1 -1
- data/test/data_service_test.rb +19 -5
- data/test/document_service_test.rb +1 -1
- data/test/media_service_test.rb +296 -296
- data/test/metadata_profile_service_test.rb +1 -1
- metadata +52 -21
@@ -0,0 +1,155 @@
|
|
1
|
+
# ===================================================================================================
|
2
|
+
# _ __ _ _
|
3
|
+
# | |/ /__ _| | |_ _ _ _ _ __ _
|
4
|
+
# | ' </ _` | | _| || | '_/ _` |
|
5
|
+
# |_|\_\__,_|_|\__|\_,_|_| \__,_|
|
6
|
+
#
|
7
|
+
# This file is part of the Kaltura Collaborative Media Suite which allows users
|
8
|
+
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
|
+
# text.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2006-2019 Kaltura Inc.
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU Affero General Public License as
|
15
|
+
# published by the Free Software Foundation, either version 3 of the
|
16
|
+
# License, or (at your option) any later version.
|
17
|
+
#
|
18
|
+
# This program is distributed in the hope that it will be useful,
|
19
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
|
+
# GNU Affero General Public License for more details.
|
22
|
+
#
|
23
|
+
# You should have received a copy of the GNU Affero General Public License
|
24
|
+
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
25
|
+
#
|
26
|
+
# @ignore
|
27
|
+
# ===================================================================================================
|
28
|
+
require 'kaltura_client.rb'
|
29
|
+
require File.dirname(__FILE__) + '/kaltura_content_distribution_client_plugin.rb'
|
30
|
+
|
31
|
+
module Kaltura
|
32
|
+
|
33
|
+
class KalturaMetroPcsDistributionProfileOrderBy
|
34
|
+
CREATED_AT_ASC = "+createdAt"
|
35
|
+
UPDATED_AT_ASC = "+updatedAt"
|
36
|
+
CREATED_AT_DESC = "-createdAt"
|
37
|
+
UPDATED_AT_DESC = "-updatedAt"
|
38
|
+
end
|
39
|
+
|
40
|
+
class KalturaMetroPcsDistributionProviderOrderBy
|
41
|
+
end
|
42
|
+
|
43
|
+
class KalturaMetroPcsDistributionProvider < KalturaDistributionProvider
|
44
|
+
|
45
|
+
|
46
|
+
def from_xml(xml_element)
|
47
|
+
super
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
class KalturaMetroPcsDistributionJobProviderData < KalturaConfigurableDistributionJobProviderData
|
53
|
+
attr_accessor :asset_local_paths
|
54
|
+
attr_accessor :thumb_urls
|
55
|
+
|
56
|
+
|
57
|
+
def from_xml(xml_element)
|
58
|
+
super
|
59
|
+
if xml_element.elements['assetLocalPaths'] != nil
|
60
|
+
self.asset_local_paths = xml_element.elements['assetLocalPaths'].text
|
61
|
+
end
|
62
|
+
if xml_element.elements['thumbUrls'] != nil
|
63
|
+
self.thumb_urls = xml_element.elements['thumbUrls'].text
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
class KalturaMetroPcsDistributionProfile < KalturaConfigurableDistributionProfile
|
70
|
+
attr_accessor :ftp_host
|
71
|
+
attr_accessor :ftp_login
|
72
|
+
attr_accessor :ftp_pass
|
73
|
+
attr_accessor :ftp_path
|
74
|
+
attr_accessor :provider_name
|
75
|
+
attr_accessor :provider_id
|
76
|
+
attr_accessor :copyright
|
77
|
+
attr_accessor :entitlements
|
78
|
+
attr_accessor :rating
|
79
|
+
attr_accessor :item_type
|
80
|
+
|
81
|
+
|
82
|
+
def from_xml(xml_element)
|
83
|
+
super
|
84
|
+
if xml_element.elements['ftpHost'] != nil
|
85
|
+
self.ftp_host = xml_element.elements['ftpHost'].text
|
86
|
+
end
|
87
|
+
if xml_element.elements['ftpLogin'] != nil
|
88
|
+
self.ftp_login = xml_element.elements['ftpLogin'].text
|
89
|
+
end
|
90
|
+
if xml_element.elements['ftpPass'] != nil
|
91
|
+
self.ftp_pass = xml_element.elements['ftpPass'].text
|
92
|
+
end
|
93
|
+
if xml_element.elements['ftpPath'] != nil
|
94
|
+
self.ftp_path = xml_element.elements['ftpPath'].text
|
95
|
+
end
|
96
|
+
if xml_element.elements['providerName'] != nil
|
97
|
+
self.provider_name = xml_element.elements['providerName'].text
|
98
|
+
end
|
99
|
+
if xml_element.elements['providerId'] != nil
|
100
|
+
self.provider_id = xml_element.elements['providerId'].text
|
101
|
+
end
|
102
|
+
if xml_element.elements['copyright'] != nil
|
103
|
+
self.copyright = xml_element.elements['copyright'].text
|
104
|
+
end
|
105
|
+
if xml_element.elements['entitlements'] != nil
|
106
|
+
self.entitlements = xml_element.elements['entitlements'].text
|
107
|
+
end
|
108
|
+
if xml_element.elements['rating'] != nil
|
109
|
+
self.rating = xml_element.elements['rating'].text
|
110
|
+
end
|
111
|
+
if xml_element.elements['itemType'] != nil
|
112
|
+
self.item_type = xml_element.elements['itemType'].text
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
118
|
+
class KalturaMetroPcsDistributionProviderBaseFilter < KalturaDistributionProviderFilter
|
119
|
+
|
120
|
+
|
121
|
+
def from_xml(xml_element)
|
122
|
+
super
|
123
|
+
end
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
class KalturaMetroPcsDistributionProviderFilter < KalturaMetroPcsDistributionProviderBaseFilter
|
128
|
+
|
129
|
+
|
130
|
+
def from_xml(xml_element)
|
131
|
+
super
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
class KalturaMetroPcsDistributionProfileBaseFilter < KalturaConfigurableDistributionProfileFilter
|
137
|
+
|
138
|
+
|
139
|
+
def from_xml(xml_element)
|
140
|
+
super
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
class KalturaMetroPcsDistributionProfileFilter < KalturaMetroPcsDistributionProfileBaseFilter
|
146
|
+
|
147
|
+
|
148
|
+
def from_xml(xml_element)
|
149
|
+
super
|
150
|
+
end
|
151
|
+
|
152
|
+
end
|
153
|
+
|
154
|
+
|
155
|
+
end
|
@@ -0,0 +1,186 @@
|
|
1
|
+
# ===================================================================================================
|
2
|
+
# _ __ _ _
|
3
|
+
# | |/ /__ _| | |_ _ _ _ _ __ _
|
4
|
+
# | ' </ _` | | _| || | '_/ _` |
|
5
|
+
# |_|\_\__,_|_|\__|\_,_|_| \__,_|
|
6
|
+
#
|
7
|
+
# This file is part of the Kaltura Collaborative Media Suite which allows users
|
8
|
+
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
|
+
# text.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2006-2019 Kaltura Inc.
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU Affero General Public License as
|
15
|
+
# published by the Free Software Foundation, either version 3 of the
|
16
|
+
# License, or (at your option) any later version.
|
17
|
+
#
|
18
|
+
# This program is distributed in the hope that it will be useful,
|
19
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
|
+
# GNU Affero General Public License for more details.
|
22
|
+
#
|
23
|
+
# You should have received a copy of the GNU Affero General Public License
|
24
|
+
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
25
|
+
#
|
26
|
+
# @ignore
|
27
|
+
# ===================================================================================================
|
28
|
+
require 'kaltura_client.rb'
|
29
|
+
require File.dirname(__FILE__) + '/kaltura_content_distribution_client_plugin.rb'
|
30
|
+
|
31
|
+
module Kaltura
|
32
|
+
|
33
|
+
class KalturaMsnDistributionProfileOrderBy
|
34
|
+
CREATED_AT_ASC = "+createdAt"
|
35
|
+
UPDATED_AT_ASC = "+updatedAt"
|
36
|
+
CREATED_AT_DESC = "-createdAt"
|
37
|
+
UPDATED_AT_DESC = "-updatedAt"
|
38
|
+
end
|
39
|
+
|
40
|
+
class KalturaMsnDistributionProviderOrderBy
|
41
|
+
end
|
42
|
+
|
43
|
+
class KalturaMsnDistributionProvider < KalturaDistributionProvider
|
44
|
+
|
45
|
+
|
46
|
+
def from_xml(xml_element)
|
47
|
+
super
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
class KalturaMsnDistributionJobProviderData < KalturaConfigurableDistributionJobProviderData
|
53
|
+
attr_accessor :xml
|
54
|
+
|
55
|
+
|
56
|
+
def from_xml(xml_element)
|
57
|
+
super
|
58
|
+
if xml_element.elements['xml'] != nil
|
59
|
+
self.xml = xml_element.elements['xml'].text
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
class KalturaMsnDistributionProfile < KalturaConfigurableDistributionProfile
|
66
|
+
attr_accessor :username
|
67
|
+
attr_accessor :password
|
68
|
+
attr_accessor :domain
|
69
|
+
attr_accessor :cs_id
|
70
|
+
attr_accessor :source
|
71
|
+
attr_accessor :source_friendly_name
|
72
|
+
attr_accessor :page_group
|
73
|
+
attr_accessor :source_flavor_params_id
|
74
|
+
attr_accessor :wmv_flavor_params_id
|
75
|
+
attr_accessor :flv_flavor_params_id
|
76
|
+
attr_accessor :sl_flavor_params_id
|
77
|
+
attr_accessor :sl_hd_flavor_params_id
|
78
|
+
attr_accessor :msnvideo_cat
|
79
|
+
attr_accessor :msnvideo_top
|
80
|
+
attr_accessor :msnvideo_top_cat
|
81
|
+
|
82
|
+
def source_flavor_params_id=(val)
|
83
|
+
@source_flavor_params_id = val.to_i
|
84
|
+
end
|
85
|
+
def wmv_flavor_params_id=(val)
|
86
|
+
@wmv_flavor_params_id = val.to_i
|
87
|
+
end
|
88
|
+
def flv_flavor_params_id=(val)
|
89
|
+
@flv_flavor_params_id = val.to_i
|
90
|
+
end
|
91
|
+
def sl_flavor_params_id=(val)
|
92
|
+
@sl_flavor_params_id = val.to_i
|
93
|
+
end
|
94
|
+
def sl_hd_flavor_params_id=(val)
|
95
|
+
@sl_hd_flavor_params_id = val.to_i
|
96
|
+
end
|
97
|
+
|
98
|
+
def from_xml(xml_element)
|
99
|
+
super
|
100
|
+
if xml_element.elements['username'] != nil
|
101
|
+
self.username = xml_element.elements['username'].text
|
102
|
+
end
|
103
|
+
if xml_element.elements['password'] != nil
|
104
|
+
self.password = xml_element.elements['password'].text
|
105
|
+
end
|
106
|
+
if xml_element.elements['domain'] != nil
|
107
|
+
self.domain = xml_element.elements['domain'].text
|
108
|
+
end
|
109
|
+
if xml_element.elements['csId'] != nil
|
110
|
+
self.cs_id = xml_element.elements['csId'].text
|
111
|
+
end
|
112
|
+
if xml_element.elements['source'] != nil
|
113
|
+
self.source = xml_element.elements['source'].text
|
114
|
+
end
|
115
|
+
if xml_element.elements['sourceFriendlyName'] != nil
|
116
|
+
self.source_friendly_name = xml_element.elements['sourceFriendlyName'].text
|
117
|
+
end
|
118
|
+
if xml_element.elements['pageGroup'] != nil
|
119
|
+
self.page_group = xml_element.elements['pageGroup'].text
|
120
|
+
end
|
121
|
+
if xml_element.elements['sourceFlavorParamsId'] != nil
|
122
|
+
self.source_flavor_params_id = xml_element.elements['sourceFlavorParamsId'].text
|
123
|
+
end
|
124
|
+
if xml_element.elements['wmvFlavorParamsId'] != nil
|
125
|
+
self.wmv_flavor_params_id = xml_element.elements['wmvFlavorParamsId'].text
|
126
|
+
end
|
127
|
+
if xml_element.elements['flvFlavorParamsId'] != nil
|
128
|
+
self.flv_flavor_params_id = xml_element.elements['flvFlavorParamsId'].text
|
129
|
+
end
|
130
|
+
if xml_element.elements['slFlavorParamsId'] != nil
|
131
|
+
self.sl_flavor_params_id = xml_element.elements['slFlavorParamsId'].text
|
132
|
+
end
|
133
|
+
if xml_element.elements['slHdFlavorParamsId'] != nil
|
134
|
+
self.sl_hd_flavor_params_id = xml_element.elements['slHdFlavorParamsId'].text
|
135
|
+
end
|
136
|
+
if xml_element.elements['msnvideoCat'] != nil
|
137
|
+
self.msnvideo_cat = xml_element.elements['msnvideoCat'].text
|
138
|
+
end
|
139
|
+
if xml_element.elements['msnvideoTop'] != nil
|
140
|
+
self.msnvideo_top = xml_element.elements['msnvideoTop'].text
|
141
|
+
end
|
142
|
+
if xml_element.elements['msnvideoTopCat'] != nil
|
143
|
+
self.msnvideo_top_cat = xml_element.elements['msnvideoTopCat'].text
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|
148
|
+
|
149
|
+
class KalturaMsnDistributionProviderBaseFilter < KalturaDistributionProviderFilter
|
150
|
+
|
151
|
+
|
152
|
+
def from_xml(xml_element)
|
153
|
+
super
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
class KalturaMsnDistributionProviderFilter < KalturaMsnDistributionProviderBaseFilter
|
159
|
+
|
160
|
+
|
161
|
+
def from_xml(xml_element)
|
162
|
+
super
|
163
|
+
end
|
164
|
+
|
165
|
+
end
|
166
|
+
|
167
|
+
class KalturaMsnDistributionProfileBaseFilter < KalturaConfigurableDistributionProfileFilter
|
168
|
+
|
169
|
+
|
170
|
+
def from_xml(xml_element)
|
171
|
+
super
|
172
|
+
end
|
173
|
+
|
174
|
+
end
|
175
|
+
|
176
|
+
class KalturaMsnDistributionProfileFilter < KalturaMsnDistributionProfileBaseFilter
|
177
|
+
|
178
|
+
|
179
|
+
def from_xml(xml_element)
|
180
|
+
super
|
181
|
+
end
|
182
|
+
|
183
|
+
end
|
184
|
+
|
185
|
+
|
186
|
+
end
|
@@ -0,0 +1,482 @@
|
|
1
|
+
# ===================================================================================================
|
2
|
+
# _ __ _ _
|
3
|
+
# | |/ /__ _| | |_ _ _ _ _ __ _
|
4
|
+
# | ' </ _` | | _| || | '_/ _` |
|
5
|
+
# |_|\_\__,_|_|\__|\_,_|_| \__,_|
|
6
|
+
#
|
7
|
+
# This file is part of the Kaltura Collaborative Media Suite which allows users
|
8
|
+
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
|
+
# text.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2006-2019 Kaltura Inc.
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU Affero General Public License as
|
15
|
+
# published by the Free Software Foundation, either version 3 of the
|
16
|
+
# License, or (at your option) any later version.
|
17
|
+
#
|
18
|
+
# This program is distributed in the hope that it will be useful,
|
19
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
|
+
# GNU Affero General Public License for more details.
|
22
|
+
#
|
23
|
+
# You should have received a copy of the GNU Affero General Public License
|
24
|
+
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
25
|
+
#
|
26
|
+
# @ignore
|
27
|
+
# ===================================================================================================
|
28
|
+
require 'kaltura_client.rb'
|
29
|
+
require File.dirname(__FILE__) + '/kaltura_drm_client_plugin.rb'
|
30
|
+
|
31
|
+
module Kaltura
|
32
|
+
|
33
|
+
class KalturaPlayReadyAnalogVideoOPL
|
34
|
+
MIN_100 = 100
|
35
|
+
MIN_150 = 150
|
36
|
+
MIN_200 = 200
|
37
|
+
end
|
38
|
+
|
39
|
+
class KalturaPlayReadyCompressedDigitalVideoOPL
|
40
|
+
MIN_400 = 400
|
41
|
+
MIN_500 = 500
|
42
|
+
end
|
43
|
+
|
44
|
+
class KalturaPlayReadyDigitalAudioOPL
|
45
|
+
MIN_100 = 100
|
46
|
+
MIN_150 = 150
|
47
|
+
MIN_200 = 200
|
48
|
+
MIN_250 = 250
|
49
|
+
MIN_300 = 300
|
50
|
+
end
|
51
|
+
|
52
|
+
class KalturaPlayReadyLicenseRemovalPolicy
|
53
|
+
FIXED_FROM_EXPIRATION = 1
|
54
|
+
ENTRY_SCHEDULING_END = 2
|
55
|
+
NONE = 3
|
56
|
+
end
|
57
|
+
|
58
|
+
class KalturaPlayReadyMinimumLicenseSecurityLevel
|
59
|
+
NON_COMMERCIAL_QUALITY = 150
|
60
|
+
COMMERCIAL_QUALITY = 2000
|
61
|
+
end
|
62
|
+
|
63
|
+
class KalturaPlayReadyUncompressedDigitalVideoOPL
|
64
|
+
MIN_100 = 100
|
65
|
+
MIN_250 = 250
|
66
|
+
MIN_270 = 270
|
67
|
+
MIN_300 = 300
|
68
|
+
end
|
69
|
+
|
70
|
+
class KalturaPlayReadyAnalogVideoOPId
|
71
|
+
EXPLICIT_ANALOG_TV = "2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3"
|
72
|
+
BEST_EFFORT_EXPLICIT_ANALOG_TV = "225CD36F-F132-49EF-BA8C-C91EA28E4369"
|
73
|
+
IMAGE_CONSTRAINT_VIDEO = "811C5110-46C8-4C6E-8163-C0482A15D47E"
|
74
|
+
AGC_AND_COLOR_STRIPE = "C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA"
|
75
|
+
IMAGE_CONSTRAINT_MONITOR = "D783A191-E083-4BAF-B2DA-E69F910B3772"
|
76
|
+
end
|
77
|
+
|
78
|
+
class KalturaPlayReadyCopyEnablerType
|
79
|
+
CSS = "3CAF2814-A7AB-467C-B4DF-54ACC56C66DC"
|
80
|
+
PRINTER = "3CF2E054-F4D5-46cd-85A6-FCD152AD5FBE"
|
81
|
+
DEVICE = "6848955D-516B-4EB0-90E8-8F6D5A77B85F"
|
82
|
+
CLIPBOARD = "6E76C588-C3A9-47ea-A875-546D5209FF38"
|
83
|
+
SDC = "79F78A0D-0B69-401e-8A90-8BEF30BCE192"
|
84
|
+
SDC_PREVIEW = "81BD9AD4-A720-4ea1-B510-5D4E6FFB6A4D"
|
85
|
+
AACS = "C3CF56E0-7FF2-4491-809F-53E21D3ABF07"
|
86
|
+
HELIX = "CCB0B4E3-8B46-409e-A998-82556E3F5AF4"
|
87
|
+
CPRM = "CDD801AD-A577-48DB-950E-46D5F1592FAE"
|
88
|
+
PC = "CE480EDE-516B-40B3-90E1-D6CFC47630C5"
|
89
|
+
SDC_LIMITED = "E6785609-64CC-4bfa-B82D-6B619733B746"
|
90
|
+
ORANGE_BOOK_CD = "EC930B7D-1F2D-4682-A38B-8AB977721D0D"
|
91
|
+
end
|
92
|
+
|
93
|
+
class KalturaPlayReadyDigitalAudioOPId
|
94
|
+
SCMS = "6D5CFA59-C250-4426-930E-FAC72C8FCFA6"
|
95
|
+
end
|
96
|
+
|
97
|
+
class KalturaPlayReadyPlayEnablerType
|
98
|
+
HELIX = "002F9772-38A0-43E5-9F79-0F6361DCC62A"
|
99
|
+
HDCP_WIVU = "1B4542E3-B5CF-4C99-B3BA-829AF46C92F8"
|
100
|
+
AIRPLAY = "5ABF0F0D-DC29-4B82-9982-FD8E57525BFC"
|
101
|
+
UNKNOWN = "786627D8-C2A6-44BE-8F88-08AE255B01A"
|
102
|
+
HDCP_MIRACAST = "A340C256-0941-4D4C-AD1D-0B6735C0CB24"
|
103
|
+
UNKNOWN_520 = "B621D91F-EDCC-4035-8D4B-DC71760D43E9"
|
104
|
+
DTCP = "D685030B-0F4F-43A6-BBAD-356F1EA0049A"
|
105
|
+
end
|
106
|
+
|
107
|
+
class KalturaPlayReadyPolicyOrderBy
|
108
|
+
end
|
109
|
+
|
110
|
+
class KalturaPlayReadyProfileOrderBy
|
111
|
+
ID_ASC = "+id"
|
112
|
+
NAME_ASC = "+name"
|
113
|
+
ID_DESC = "-id"
|
114
|
+
NAME_DESC = "-name"
|
115
|
+
end
|
116
|
+
|
117
|
+
class KalturaPlayReadyAnalogVideoOPIdHolder < KalturaObjectBase
|
118
|
+
# The type of the play enabler
|
119
|
+
attr_accessor :type
|
120
|
+
|
121
|
+
|
122
|
+
def from_xml(xml_element)
|
123
|
+
super
|
124
|
+
if xml_element.elements['type'] != nil
|
125
|
+
self.type = xml_element.elements['type'].text
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
end
|
130
|
+
|
131
|
+
class KalturaPlayReadyContentKey < KalturaObjectBase
|
132
|
+
# Guid - key id of the specific content
|
133
|
+
attr_accessor :key_id
|
134
|
+
# License content key 64 bit encoded
|
135
|
+
attr_accessor :content_key
|
136
|
+
|
137
|
+
|
138
|
+
def from_xml(xml_element)
|
139
|
+
super
|
140
|
+
if xml_element.elements['keyId'] != nil
|
141
|
+
self.key_id = xml_element.elements['keyId'].text
|
142
|
+
end
|
143
|
+
if xml_element.elements['contentKey'] != nil
|
144
|
+
self.content_key = xml_element.elements['contentKey'].text
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
|
150
|
+
class KalturaPlayReadyCopyEnablerHolder < KalturaObjectBase
|
151
|
+
# The type of the copy enabler
|
152
|
+
attr_accessor :type
|
153
|
+
|
154
|
+
|
155
|
+
def from_xml(xml_element)
|
156
|
+
super
|
157
|
+
if xml_element.elements['type'] != nil
|
158
|
+
self.type = xml_element.elements['type'].text
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
end
|
163
|
+
|
164
|
+
class KalturaPlayReadyDigitalAudioOPIdHolder < KalturaObjectBase
|
165
|
+
# The type of the play enabler
|
166
|
+
attr_accessor :type
|
167
|
+
|
168
|
+
|
169
|
+
def from_xml(xml_element)
|
170
|
+
super
|
171
|
+
if xml_element.elements['type'] != nil
|
172
|
+
self.type = xml_element.elements['type'].text
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
end
|
177
|
+
|
178
|
+
class KalturaPlayReadyRight < KalturaObjectBase
|
179
|
+
|
180
|
+
|
181
|
+
def from_xml(xml_element)
|
182
|
+
super
|
183
|
+
end
|
184
|
+
|
185
|
+
end
|
186
|
+
|
187
|
+
class KalturaPlayReadyPolicy < KalturaDrmPolicy
|
188
|
+
attr_accessor :grace_period
|
189
|
+
attr_accessor :license_removal_policy
|
190
|
+
attr_accessor :license_removal_duration
|
191
|
+
attr_accessor :min_security_level
|
192
|
+
attr_accessor :rights
|
193
|
+
|
194
|
+
def grace_period=(val)
|
195
|
+
@grace_period = val.to_i
|
196
|
+
end
|
197
|
+
def license_removal_policy=(val)
|
198
|
+
@license_removal_policy = val.to_i
|
199
|
+
end
|
200
|
+
def license_removal_duration=(val)
|
201
|
+
@license_removal_duration = val.to_i
|
202
|
+
end
|
203
|
+
def min_security_level=(val)
|
204
|
+
@min_security_level = val.to_i
|
205
|
+
end
|
206
|
+
|
207
|
+
def from_xml(xml_element)
|
208
|
+
super
|
209
|
+
if xml_element.elements['gracePeriod'] != nil
|
210
|
+
self.grace_period = xml_element.elements['gracePeriod'].text
|
211
|
+
end
|
212
|
+
if xml_element.elements['licenseRemovalPolicy'] != nil
|
213
|
+
self.license_removal_policy = xml_element.elements['licenseRemovalPolicy'].text
|
214
|
+
end
|
215
|
+
if xml_element.elements['licenseRemovalDuration'] != nil
|
216
|
+
self.license_removal_duration = xml_element.elements['licenseRemovalDuration'].text
|
217
|
+
end
|
218
|
+
if xml_element.elements['minSecurityLevel'] != nil
|
219
|
+
self.min_security_level = xml_element.elements['minSecurityLevel'].text
|
220
|
+
end
|
221
|
+
if xml_element.elements['rights'] != nil
|
222
|
+
self.rights = KalturaClientBase.object_from_xml(xml_element.elements['rights'], 'KalturaPlayReadyRight')
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
end
|
227
|
+
|
228
|
+
class KalturaPlayReadyLicenseDetails < KalturaObjectBase
|
229
|
+
# PlayReady policy object
|
230
|
+
attr_accessor :policy
|
231
|
+
# License begin date
|
232
|
+
attr_accessor :begin_date
|
233
|
+
# License expiration date
|
234
|
+
attr_accessor :expiration_date
|
235
|
+
# License removal date
|
236
|
+
attr_accessor :removal_date
|
237
|
+
|
238
|
+
def begin_date=(val)
|
239
|
+
@begin_date = val.to_i
|
240
|
+
end
|
241
|
+
def expiration_date=(val)
|
242
|
+
@expiration_date = val.to_i
|
243
|
+
end
|
244
|
+
def removal_date=(val)
|
245
|
+
@removal_date = val.to_i
|
246
|
+
end
|
247
|
+
|
248
|
+
def from_xml(xml_element)
|
249
|
+
super
|
250
|
+
if xml_element.elements['policy'] != nil
|
251
|
+
self.policy = KalturaClientBase.object_from_xml(xml_element.elements['policy'], 'KalturaPlayReadyPolicy')
|
252
|
+
end
|
253
|
+
if xml_element.elements['beginDate'] != nil
|
254
|
+
self.begin_date = xml_element.elements['beginDate'].text
|
255
|
+
end
|
256
|
+
if xml_element.elements['expirationDate'] != nil
|
257
|
+
self.expiration_date = xml_element.elements['expirationDate'].text
|
258
|
+
end
|
259
|
+
if xml_element.elements['removalDate'] != nil
|
260
|
+
self.removal_date = xml_element.elements['removalDate'].text
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
264
|
+
end
|
265
|
+
|
266
|
+
class KalturaPlayReadyPlayEnablerHolder < KalturaObjectBase
|
267
|
+
# The type of the play enabler
|
268
|
+
attr_accessor :type
|
269
|
+
|
270
|
+
|
271
|
+
def from_xml(xml_element)
|
272
|
+
super
|
273
|
+
if xml_element.elements['type'] != nil
|
274
|
+
self.type = xml_element.elements['type'].text
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
end
|
279
|
+
|
280
|
+
class KalturaPlayReadyCopyRight < KalturaPlayReadyRight
|
281
|
+
attr_accessor :copy_count
|
282
|
+
attr_accessor :copy_enablers
|
283
|
+
|
284
|
+
def copy_count=(val)
|
285
|
+
@copy_count = val.to_i
|
286
|
+
end
|
287
|
+
|
288
|
+
def from_xml(xml_element)
|
289
|
+
super
|
290
|
+
if xml_element.elements['copyCount'] != nil
|
291
|
+
self.copy_count = xml_element.elements['copyCount'].text
|
292
|
+
end
|
293
|
+
if xml_element.elements['copyEnablers'] != nil
|
294
|
+
self.copy_enablers = KalturaClientBase.object_from_xml(xml_element.elements['copyEnablers'], 'KalturaPlayReadyCopyEnablerHolder')
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
298
|
+
end
|
299
|
+
|
300
|
+
class KalturaPlayReadyPlayRight < KalturaPlayReadyRight
|
301
|
+
attr_accessor :analog_video_opl
|
302
|
+
attr_accessor :analog_video_output_protection_list
|
303
|
+
attr_accessor :compressed_digital_audio_opl
|
304
|
+
attr_accessor :compressed_digital_video_opl
|
305
|
+
attr_accessor :digital_audio_output_protection_list
|
306
|
+
attr_accessor :uncompressed_digital_audio_opl
|
307
|
+
attr_accessor :uncompressed_digital_video_opl
|
308
|
+
attr_accessor :first_play_expiration
|
309
|
+
attr_accessor :play_enablers
|
310
|
+
|
311
|
+
def analog_video_opl=(val)
|
312
|
+
@analog_video_opl = val.to_i
|
313
|
+
end
|
314
|
+
def compressed_digital_audio_opl=(val)
|
315
|
+
@compressed_digital_audio_opl = val.to_i
|
316
|
+
end
|
317
|
+
def compressed_digital_video_opl=(val)
|
318
|
+
@compressed_digital_video_opl = val.to_i
|
319
|
+
end
|
320
|
+
def uncompressed_digital_audio_opl=(val)
|
321
|
+
@uncompressed_digital_audio_opl = val.to_i
|
322
|
+
end
|
323
|
+
def uncompressed_digital_video_opl=(val)
|
324
|
+
@uncompressed_digital_video_opl = val.to_i
|
325
|
+
end
|
326
|
+
def first_play_expiration=(val)
|
327
|
+
@first_play_expiration = val.to_i
|
328
|
+
end
|
329
|
+
|
330
|
+
def from_xml(xml_element)
|
331
|
+
super
|
332
|
+
if xml_element.elements['analogVideoOPL'] != nil
|
333
|
+
self.analog_video_opl = xml_element.elements['analogVideoOPL'].text
|
334
|
+
end
|
335
|
+
if xml_element.elements['analogVideoOutputProtectionList'] != nil
|
336
|
+
self.analog_video_output_protection_list = KalturaClientBase.object_from_xml(xml_element.elements['analogVideoOutputProtectionList'], 'KalturaPlayReadyAnalogVideoOPIdHolder')
|
337
|
+
end
|
338
|
+
if xml_element.elements['compressedDigitalAudioOPL'] != nil
|
339
|
+
self.compressed_digital_audio_opl = xml_element.elements['compressedDigitalAudioOPL'].text
|
340
|
+
end
|
341
|
+
if xml_element.elements['compressedDigitalVideoOPL'] != nil
|
342
|
+
self.compressed_digital_video_opl = xml_element.elements['compressedDigitalVideoOPL'].text
|
343
|
+
end
|
344
|
+
if xml_element.elements['digitalAudioOutputProtectionList'] != nil
|
345
|
+
self.digital_audio_output_protection_list = KalturaClientBase.object_from_xml(xml_element.elements['digitalAudioOutputProtectionList'], 'KalturaPlayReadyDigitalAudioOPIdHolder')
|
346
|
+
end
|
347
|
+
if xml_element.elements['uncompressedDigitalAudioOPL'] != nil
|
348
|
+
self.uncompressed_digital_audio_opl = xml_element.elements['uncompressedDigitalAudioOPL'].text
|
349
|
+
end
|
350
|
+
if xml_element.elements['uncompressedDigitalVideoOPL'] != nil
|
351
|
+
self.uncompressed_digital_video_opl = xml_element.elements['uncompressedDigitalVideoOPL'].text
|
352
|
+
end
|
353
|
+
if xml_element.elements['firstPlayExpiration'] != nil
|
354
|
+
self.first_play_expiration = xml_element.elements['firstPlayExpiration'].text
|
355
|
+
end
|
356
|
+
if xml_element.elements['playEnablers'] != nil
|
357
|
+
self.play_enablers = KalturaClientBase.object_from_xml(xml_element.elements['playEnablers'], 'KalturaPlayReadyPlayEnablerHolder')
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
end
|
362
|
+
|
363
|
+
class KalturaPlayReadyProfile < KalturaDrmProfile
|
364
|
+
attr_accessor :key_seed
|
365
|
+
|
366
|
+
|
367
|
+
def from_xml(xml_element)
|
368
|
+
super
|
369
|
+
if xml_element.elements['keySeed'] != nil
|
370
|
+
self.key_seed = xml_element.elements['keySeed'].text
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
end
|
375
|
+
|
376
|
+
class KalturaPlayReadyPolicyBaseFilter < KalturaDrmPolicyFilter
|
377
|
+
|
378
|
+
|
379
|
+
def from_xml(xml_element)
|
380
|
+
super
|
381
|
+
end
|
382
|
+
|
383
|
+
end
|
384
|
+
|
385
|
+
class KalturaPlayReadyProfileBaseFilter < KalturaDrmProfileFilter
|
386
|
+
|
387
|
+
|
388
|
+
def from_xml(xml_element)
|
389
|
+
super
|
390
|
+
end
|
391
|
+
|
392
|
+
end
|
393
|
+
|
394
|
+
class KalturaPlayReadyPolicyFilter < KalturaPlayReadyPolicyBaseFilter
|
395
|
+
|
396
|
+
|
397
|
+
def from_xml(xml_element)
|
398
|
+
super
|
399
|
+
end
|
400
|
+
|
401
|
+
end
|
402
|
+
|
403
|
+
class KalturaPlayReadyProfileFilter < KalturaPlayReadyProfileBaseFilter
|
404
|
+
|
405
|
+
|
406
|
+
def from_xml(xml_element)
|
407
|
+
super
|
408
|
+
end
|
409
|
+
|
410
|
+
end
|
411
|
+
|
412
|
+
|
413
|
+
class KalturaPlayReadyDrmService < KalturaServiceBase
|
414
|
+
def initialize(client)
|
415
|
+
super(client)
|
416
|
+
end
|
417
|
+
|
418
|
+
# Generate key id and content key for PlayReady encryption
|
419
|
+
# @return [KalturaPlayReadyContentKey]
|
420
|
+
def generate_key()
|
421
|
+
kparams = {}
|
422
|
+
client.queue_service_action_call('playready_playreadydrm', 'generateKey', 'KalturaPlayReadyContentKey', kparams)
|
423
|
+
if (client.is_multirequest)
|
424
|
+
return nil
|
425
|
+
end
|
426
|
+
return client.do_queue()
|
427
|
+
end
|
428
|
+
|
429
|
+
# Get content keys for input key ids
|
430
|
+
# @return [array]
|
431
|
+
def get_content_keys(key_ids)
|
432
|
+
kparams = {}
|
433
|
+
client.add_param(kparams, 'keyIds', key_ids)
|
434
|
+
client.queue_service_action_call('playready_playreadydrm', 'getContentKeys', 'KalturaPlayReadyContentKey', kparams)
|
435
|
+
if (client.is_multirequest)
|
436
|
+
return nil
|
437
|
+
end
|
438
|
+
return client.do_queue()
|
439
|
+
end
|
440
|
+
|
441
|
+
# Get content key and key id for the given entry
|
442
|
+
# @return [KalturaPlayReadyContentKey]
|
443
|
+
def get_entry_content_key(entry_id, create_if_missing=false)
|
444
|
+
kparams = {}
|
445
|
+
client.add_param(kparams, 'entryId', entry_id)
|
446
|
+
client.add_param(kparams, 'createIfMissing', create_if_missing)
|
447
|
+
client.queue_service_action_call('playready_playreadydrm', 'getEntryContentKey', 'KalturaPlayReadyContentKey', kparams)
|
448
|
+
if (client.is_multirequest)
|
449
|
+
return nil
|
450
|
+
end
|
451
|
+
return client.do_queue()
|
452
|
+
end
|
453
|
+
|
454
|
+
# Get Play Ready policy and dates for license creation
|
455
|
+
# @return [KalturaPlayReadyLicenseDetails]
|
456
|
+
def get_license_details(key_id, device_id, device_type, entry_id=KalturaNotImplemented, referrer=KalturaNotImplemented)
|
457
|
+
kparams = {}
|
458
|
+
client.add_param(kparams, 'keyId', key_id)
|
459
|
+
client.add_param(kparams, 'deviceId', device_id)
|
460
|
+
client.add_param(kparams, 'deviceType', device_type)
|
461
|
+
client.add_param(kparams, 'entryId', entry_id)
|
462
|
+
client.add_param(kparams, 'referrer', referrer)
|
463
|
+
client.queue_service_action_call('playready_playreadydrm', 'getLicenseDetails', 'KalturaPlayReadyLicenseDetails', kparams)
|
464
|
+
if (client.is_multirequest)
|
465
|
+
return nil
|
466
|
+
end
|
467
|
+
return client.do_queue()
|
468
|
+
end
|
469
|
+
end
|
470
|
+
|
471
|
+
class KalturaClient < KalturaClientBase
|
472
|
+
attr_reader :play_ready_drm_service
|
473
|
+
def play_ready_drm_service
|
474
|
+
if (@play_ready_drm_service == nil)
|
475
|
+
@play_ready_drm_service = KalturaPlayReadyDrmService.new(self)
|
476
|
+
end
|
477
|
+
return @play_ready_drm_service
|
478
|
+
end
|
479
|
+
|
480
|
+
end
|
481
|
+
|
482
|
+
end
|