@playkit-js/playkit-js-providers 2.41.0-canary.0-bb5f4a7 → 2.41.0-canary.0-fadaac0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analytics-service/package.json +6 -0
- package/bookmark-service/package.json +6 -0
- package/dist/analytics-service.d.ts +160 -0
- package/dist/bookmark-service.d.ts +157 -0
- package/dist/ott-provider.d.ts +546 -0
- package/dist/{index.d.ts → ovp-provider.d.ts} +99 -120
- package/dist/playkit-analytics-service.js +1 -1
- package/dist/playkit-bookmark-service.js +1 -1
- package/dist/playkit-ott-provider.js +1 -1
- package/dist/playkit-ott-provider.js.map +1 -1
- package/dist/playkit-ovp-provider.js +1 -2
- package/dist/playkit-ovp-provider.js.map +1 -1
- package/dist/playkit-stats-service.js +1 -1
- package/dist/stats-service.d.ts +159 -0
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types.d.ts +393 -0
- package/ott-provider/package.json +6 -0
- package/ovp-provider/package.json +6 -0
- package/package.json +23 -15
- package/src/entities/media-entry.ts +8 -1
- package/src/k-provider/common/base-provider.ts +13 -2
- package/src/k-provider/ovp/loaders/media-entry-loader.ts +4 -4
- package/src/k-provider/ovp/provider-parser.ts +14 -2
- package/src/k-provider/ovp/provider.ts +9 -5
- package/src/k-provider/ovp/regex-action-handler.ts +51 -44
- package/src/k-provider/ovp/response-types/kaltura-flavor-asset.ts +17 -0
- package/src/k-provider/ovp/response-types/kaltura-media-entry.ts +7 -0
- package/src/k-provider/ovp/services/base-entry-service.ts +4 -1
- package/src/types/index.ts +0 -8
- package/src/types/media-config-sources.ts +1 -0
- package/src/types/media-entry.ts +1 -0
- package/src/types/provider-options.ts +1 -0
- package/src/util/object.ts +10 -0
- package/stats-service/package.json +6 -0
- package/types/package.json +5 -0
- package/dist/playkit-ovp-provider.js.LICENSE.txt +0 -1
- package/playkit-analytics-service/package.json +0 -5
- package/playkit-bookmark-service/package.json +0 -5
- package/playkit-ott-provider/package.json +0 -5
- package/playkit-ovp-provider/package.json +0 -5
- package/playkit-stats-service/package.json +0 -5
package/package.json
CHANGED
|
@@ -1,36 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@playkit-js/playkit-js-providers",
|
|
3
|
-
"version": "2.41.0-canary.0-
|
|
3
|
+
"version": "2.41.0-canary.0-fadaac0",
|
|
4
4
|
"description": "",
|
|
5
|
-
"types": "./dist/index.d.ts",
|
|
6
5
|
"files": [
|
|
7
6
|
"dist/**/*",
|
|
8
7
|
"src/**/*",
|
|
9
8
|
"flow-typed/**/*",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
9
|
+
"analytics-service/*",
|
|
10
|
+
"bookmark-service/*",
|
|
11
|
+
"ott-provider/*",
|
|
12
|
+
"ovp-provider/*",
|
|
13
|
+
"stats-service/*",
|
|
14
|
+
"types/*"
|
|
15
15
|
],
|
|
16
16
|
"exports": {
|
|
17
|
-
"./
|
|
18
|
-
"./
|
|
19
|
-
"./
|
|
20
|
-
"./
|
|
21
|
-
"./
|
|
17
|
+
"./ovp-provider": "./dist/playkit-ovp-provider.js",
|
|
18
|
+
"./ott-provider": "./dist/playkit-ott-provider.js",
|
|
19
|
+
"./analytics-service": "./dist/playkit-analytics-service.js",
|
|
20
|
+
"./stats-service": "./dist/playkit-stats-service.js",
|
|
21
|
+
"./bookmark-service": "./dist/playkit-bookmark-service.js",
|
|
22
|
+
"./types": "./dist/types.d.ts"
|
|
22
23
|
},
|
|
23
24
|
"scripts": {
|
|
24
25
|
"serve": "webpack serve --open --mode=development",
|
|
25
26
|
"build:dev": "webpack --mode=development",
|
|
26
27
|
"build:prod": "webpack --mode=production --node-env=production",
|
|
27
28
|
"build": "yarn run build:prod && yarn run build:types",
|
|
28
|
-
"build:types": "
|
|
29
|
+
"build:types": "yarn run build:types:ovp && yarn run build:types:ott && yarn run build:types:analytics && yarn run build:types:bookmark && yarn run build:types:stats && yarn run build:types:types",
|
|
30
|
+
"build:types:ovp": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-ovp-provider.json --local",
|
|
31
|
+
"build:types:ott": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-ott-provider.json --local",
|
|
32
|
+
"build:types:analytics": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-analytics-service.json --local",
|
|
33
|
+
"build:types:bookmark": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-bookmark-service.json --local",
|
|
34
|
+
"build:types:stats": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-stats-service.json --local",
|
|
35
|
+
"build:types:types": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-types.json --local",
|
|
29
36
|
"type-check": "tsc --noEmit",
|
|
30
37
|
"type-check:watch": "npm run type-check -- --watch",
|
|
31
38
|
"watch": "webpack --mode=development --watch",
|
|
32
39
|
"test": "NODE_ENV=test karma start --color --mode development",
|
|
33
40
|
"test:watch": "NODE_ENV=test karma start --browsers=Chrome --single-run=false --auto-watch",
|
|
41
|
+
"test:debug": "NODE_ENV=test karma start --browsers=Chrome --single-run=false --auto-watch --debug",
|
|
34
42
|
"release": "standard-version",
|
|
35
43
|
"pushTaggedRelease": "git push --follow-tags --no-verify origin master",
|
|
36
44
|
"lint": "eslint src/ --ext .js --ext .ts",
|
|
@@ -43,8 +51,8 @@
|
|
|
43
51
|
"@babel/plugin-transform-runtime": "^7.22.15",
|
|
44
52
|
"@babel/preset-env": "^7.21.5",
|
|
45
53
|
"@babel/preset-typescript": "^7.22.15",
|
|
46
|
-
"@microsoft/api-extractor": "^7.
|
|
47
|
-
"@playkit-js/browserslist-config": "
|
|
54
|
+
"@microsoft/api-extractor": "^7.39.4",
|
|
55
|
+
"@playkit-js/browserslist-config": "1.0.8",
|
|
48
56
|
"@typescript-eslint/eslint-plugin": "^6.7.2",
|
|
49
57
|
"@typescript-eslint/parser": "^6.7.2",
|
|
50
58
|
"babel-eslint": "^10.1.0",
|
|
@@ -74,6 +74,12 @@ export default class MediaEntry {
|
|
|
74
74
|
*/
|
|
75
75
|
public downloadUrl?: string;
|
|
76
76
|
|
|
77
|
+
/**
|
|
78
|
+
* @member - The raw thumbnail URL
|
|
79
|
+
* @type {string}
|
|
80
|
+
*/
|
|
81
|
+
public rawThumbnailUrl?: string;
|
|
82
|
+
|
|
77
83
|
/**
|
|
78
84
|
* @constructor
|
|
79
85
|
*/
|
|
@@ -99,7 +105,8 @@ export default class MediaEntry {
|
|
|
99
105
|
type: this.type,
|
|
100
106
|
poster: this.poster,
|
|
101
107
|
assetReferenceType: this.assetReferenceType,
|
|
102
|
-
downloadUrl: this.downloadUrl
|
|
108
|
+
downloadUrl: this.downloadUrl,
|
|
109
|
+
rawThumbnailUrl: this.rawThumbnailUrl
|
|
103
110
|
};
|
|
104
111
|
}
|
|
105
112
|
}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import {getLogLevel, setLogLevel, setLogger, LogLevelType, LogLevel} from '../../util/logger';
|
|
2
2
|
import DataLoaderManager from './data-loader-manager';
|
|
3
3
|
import Error from '../../util/error/error';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
ProviderEntryListObject,
|
|
6
|
+
ProviderMediaConfigObject,
|
|
7
|
+
ProviderPlaylistInfoObject,
|
|
8
|
+
ProviderMediaConfigSourcesObject,
|
|
9
|
+
ProviderNetworkRetryParameters,
|
|
10
|
+
ProviderOptionsObject,
|
|
11
|
+
ProviderPlaylistObject
|
|
12
|
+
} from '../../types';
|
|
5
13
|
|
|
6
14
|
export default class BaseProvider<MI> {
|
|
7
15
|
private _partnerId: number;
|
|
@@ -11,7 +19,9 @@ export default class BaseProvider<MI> {
|
|
|
11
19
|
public _dataLoader!: DataLoaderManager;
|
|
12
20
|
private _playerVersion: string;
|
|
13
21
|
public _logger: any;
|
|
22
|
+
public _referrer?: string;
|
|
14
23
|
protected _isAnonymous: boolean;
|
|
24
|
+
|
|
15
25
|
public _networkRetryConfig: ProviderNetworkRetryParameters = {
|
|
16
26
|
async: true,
|
|
17
27
|
timeout: 0,
|
|
@@ -58,6 +68,7 @@ export default class BaseProvider<MI> {
|
|
|
58
68
|
this._isAnonymous = !options.ks;
|
|
59
69
|
this._ks = options.ks || '';
|
|
60
70
|
this._playerVersion = playerVersion;
|
|
71
|
+
this._referrer = options.referrer;
|
|
61
72
|
}
|
|
62
73
|
|
|
63
74
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -109,4 +120,4 @@ export default class BaseProvider<MI> {
|
|
|
109
120
|
}
|
|
110
121
|
}
|
|
111
122
|
|
|
112
|
-
export {BaseProvider}
|
|
123
|
+
export {BaseProvider};
|
|
@@ -9,9 +9,9 @@ import {KalturaMediaEntry} from '../response-types';
|
|
|
9
9
|
import {ILoader} from '../../../types';
|
|
10
10
|
|
|
11
11
|
type OVPMediaEntryLoaderResponse = {
|
|
12
|
-
entry: KalturaMediaEntry
|
|
13
|
-
playBackContextResult: KalturaPlaybackContext
|
|
14
|
-
metadataListResult: KalturaMetadataListResponse
|
|
12
|
+
entry: KalturaMediaEntry;
|
|
13
|
+
playBackContextResult: KalturaPlaybackContext;
|
|
14
|
+
metadataListResult: KalturaMetadataListResponse;
|
|
15
15
|
};
|
|
16
16
|
export type {OVPMediaEntryLoaderResponse};
|
|
17
17
|
|
|
@@ -68,7 +68,7 @@ export default class OVPMediaEntryLoader implements ILoader {
|
|
|
68
68
|
requests.push(OVPBaseEntryService.list(config.serviceUrl, params.ks, params.entryId, params.redirectFromEntryId, params.referenceId));
|
|
69
69
|
// Use the entry id from the request result to support loading by referenceId
|
|
70
70
|
const serviceEntryId = params.ks === '{1:result:ks}' ? '{2:result:objects:0:id}' : '{1:result:objects:0:id}';
|
|
71
|
-
requests.push(OVPBaseEntryService.getPlaybackContext(config.serviceUrl, params.ks, serviceEntryId));
|
|
71
|
+
requests.push(OVPBaseEntryService.getPlaybackContext(config.serviceUrl, params.ks, serviceEntryId, params.referrer));
|
|
72
72
|
requests.push(OVPMetadataService.list(config.serviceUrl, params.ks, serviceEntryId));
|
|
73
73
|
return requests;
|
|
74
74
|
}
|
|
@@ -45,7 +45,7 @@ class OVPProviderParser {
|
|
|
45
45
|
const kalturaSources = playbackContext.sources;
|
|
46
46
|
|
|
47
47
|
mediaEntry.sources = OVPProviderParser._getParsedSources(kalturaSources, ks, partnerId, uiConfId, entry, playbackContext);
|
|
48
|
-
OVPProviderParser._fillBaseData(mediaEntry, entry, metadataList);
|
|
48
|
+
OVPProviderParser._fillBaseData(mediaEntry, entry, metadataList, playbackContext);
|
|
49
49
|
if (mediaEntry.type !== MediaEntry.Type.LIVE && OVPConfiguration.get().useApiCaptions && playbackContext.data.playbackCaptions) {
|
|
50
50
|
mediaEntry.sources.captions = ExternalCaptionsBuilder.createConfig(playbackContext.data.playbackCaptions, ks);
|
|
51
51
|
}
|
|
@@ -151,8 +151,9 @@ class OVPProviderParser {
|
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
-
private static _fillBaseData(mediaEntry: MediaEntry, entry: KalturaMediaEntry, metadataList?: KalturaMetadataListResponse): MediaEntry {
|
|
154
|
+
private static _fillBaseData(mediaEntry: MediaEntry, entry: KalturaMediaEntry, metadataList?: KalturaMetadataListResponse, playbackContext?: any): MediaEntry {
|
|
155
155
|
mediaEntry.poster = entry.poster;
|
|
156
|
+
mediaEntry.rawThumbnailUrl = entry.rawThumbnailUrl;
|
|
156
157
|
mediaEntry.id = entry.id;
|
|
157
158
|
mediaEntry.duration = entry.duration;
|
|
158
159
|
mediaEntry.downloadUrl = entry.downloadUrl || '';
|
|
@@ -174,6 +175,17 @@ class OVPProviderParser {
|
|
|
174
175
|
mediaEntry.dvrStatus = entry.dvrStatus;
|
|
175
176
|
}
|
|
176
177
|
|
|
178
|
+
if (playbackContext &&
|
|
179
|
+
playbackContext.flavorAssets[0] &&
|
|
180
|
+
playbackContext.flavorAssets[0].width && playbackContext.flavorAssets[0].height) {
|
|
181
|
+
|
|
182
|
+
const {height, width} = playbackContext.flavorAssets[0];
|
|
183
|
+
mediaEntry.metadata.aspectRatio = +Number(width / height).toFixed(2);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (playbackContext && Array.isArray(playbackContext.flavorAssets)) {
|
|
187
|
+
mediaEntry.metadata.audioFlavors = playbackContext.flavorAssets.filter(flavor => flavor.bitrate && !flavor.width && !flavor.height);
|
|
188
|
+
}
|
|
177
189
|
return mediaEntry;
|
|
178
190
|
}
|
|
179
191
|
|
|
@@ -18,8 +18,10 @@ import {
|
|
|
18
18
|
ProviderFilterOptionsObject,
|
|
19
19
|
ProviderMediaConfigObject,
|
|
20
20
|
ProviderMediaConfigSourcesObject,
|
|
21
|
-
ProviderOptionsObject,
|
|
22
|
-
|
|
21
|
+
ProviderOptionsObject,
|
|
22
|
+
ProviderPlaylistInfoObject,
|
|
23
|
+
ProviderPlaylistObject,
|
|
24
|
+
RequestLoader
|
|
23
25
|
} from '../../types';
|
|
24
26
|
|
|
25
27
|
export default class OVPProvider extends BaseProvider<OVPProviderMediaInfoObject> {
|
|
@@ -65,7 +67,7 @@ export default class OVPProvider extends BaseProvider<OVPProviderMediaInfoObject
|
|
|
65
67
|
this._dataLoader.add(OVPSessionLoader, {widgetId: this.widgetId});
|
|
66
68
|
}
|
|
67
69
|
const redirectFromEntryId = this._getEntryRedirectFilter(mediaInfo);
|
|
68
|
-
this._dataLoader.add(OVPMediaEntryLoader, {entryId, ks, redirectFromEntryId, referenceId});
|
|
70
|
+
this._dataLoader.add(OVPMediaEntryLoader, {entryId, ks, redirectFromEntryId, referenceId, referrer: this._referrer});
|
|
69
71
|
return this._dataLoader.fetchData().then(
|
|
70
72
|
response => {
|
|
71
73
|
try {
|
|
@@ -85,7 +87,7 @@ export default class OVPProvider extends BaseProvider<OVPProviderMediaInfoObject
|
|
|
85
87
|
});
|
|
86
88
|
}
|
|
87
89
|
|
|
88
|
-
public doRequest(loaders: Array<RequestLoader>, ks?: string): Promise<any> {
|
|
90
|
+
public doRequest(loaders: Array<RequestLoader>, ks?: string, requestsMustSucceed?: boolean): Promise<any> {
|
|
89
91
|
const theKs: string = ks || this.ks;
|
|
90
92
|
const dataLoader = new OVPDataLoaderManager(this.playerVersion, this.partnerId, theKs, this._networkRetryConfig);
|
|
91
93
|
|
|
@@ -98,7 +100,7 @@ export default class OVPProvider extends BaseProvider<OVPProviderMediaInfoObject
|
|
|
98
100
|
// @ts-ignore
|
|
99
101
|
dataLoader.add(loaderRequest.loader, loaderRequest.params, theKs || '{1:result:ks}');
|
|
100
102
|
});
|
|
101
|
-
return dataLoader.fetchData().then(
|
|
103
|
+
return dataLoader.fetchData(requestsMustSucceed).then(
|
|
102
104
|
response => {
|
|
103
105
|
try {
|
|
104
106
|
resolve(response);
|
|
@@ -324,6 +326,7 @@ export default class OVPProvider extends BaseProvider<OVPProviderMediaInfoObject
|
|
|
324
326
|
duration: 0,
|
|
325
327
|
type: MediaEntry.Type.UNKNOWN,
|
|
326
328
|
poster: '',
|
|
329
|
+
rawThumbnailUrl: '',
|
|
327
330
|
dvr: false,
|
|
328
331
|
vr: null,
|
|
329
332
|
metadata: {
|
|
@@ -347,6 +350,7 @@ export default class OVPProvider extends BaseProvider<OVPProviderMediaInfoObject
|
|
|
347
350
|
sourcesObject.type = mediaEntry.type;
|
|
348
351
|
sourcesObject.dvr = !!mediaEntry.dvrStatus;
|
|
349
352
|
sourcesObject.poster = mediaEntry.poster;
|
|
353
|
+
sourcesObject.rawThumbnailUrl = mediaEntry.rawThumbnailUrl;
|
|
350
354
|
sourcesObject.downloadUrl = mediaEntry.downloadUrl;
|
|
351
355
|
if (mediaEntry.sources.captions) {
|
|
352
356
|
sourcesObject.captions = mediaEntry.sources.captions;
|
|
@@ -27,34 +27,39 @@ class RegexActionHandler {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* Ping the ECDN url
|
|
31
|
-
* @function
|
|
30
|
+
* Ping the ECDN url and replace the host urls if needed
|
|
31
|
+
* @function _pingECDNAndReplaceHostUrls
|
|
32
|
+
* @param {ProviderMediaConfigObject} mediaConfig - The media config
|
|
32
33
|
* @param {KalturaAccessControlModifyRequestHostRegexAction} regexAction - The regex action
|
|
33
34
|
* @param {string} cdnUrl - The CDN url
|
|
34
|
-
* @returns {Promise<
|
|
35
|
+
* @returns {Promise<ProviderMediaConfigObject>} - The media config with old or modified urls
|
|
35
36
|
* @static
|
|
36
37
|
* @private
|
|
37
38
|
*/
|
|
38
|
-
private static
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
private static _pingECDNAndReplaceHostUrls(
|
|
40
|
+
mediaConfig: ProviderMediaConfigObject,
|
|
41
|
+
regexAction: KalturaAccessControlModifyRequestHostRegexAction,
|
|
42
|
+
cdnUrl: string
|
|
43
|
+
): Promise<ProviderMediaConfigObject> {
|
|
44
|
+
return new Promise(resolve => {
|
|
45
|
+
const urlPing = cdnUrl + '/api_v3/service/system/action/ping/format/1';
|
|
46
|
+
const req = new XMLHttpRequest();
|
|
47
|
+
req.open('GET', urlPing);
|
|
48
|
+
req.timeout = regexAction.checkAliveTimeoutMs;
|
|
49
|
+
req.onreadystatechange = ():void => {
|
|
50
|
+
if (req.readyState === 4) {
|
|
51
|
+
if (req.status === 200) {
|
|
52
|
+
RegexActionHandler._replaceHostUrls(mediaConfig, regexAction);
|
|
53
|
+
}
|
|
54
|
+
resolve(mediaConfig);
|
|
47
55
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
};
|
|
56
|
-
req.send();
|
|
57
|
-
return false;
|
|
56
|
+
};
|
|
57
|
+
req.ontimeout = ():void => {
|
|
58
|
+
RegexActionHandler._logger.warn(`Got timeout while pinging the ECDN url. the ping url: ${urlPing}`);
|
|
59
|
+
resolve(mediaConfig);
|
|
60
|
+
};
|
|
61
|
+
req.send();
|
|
62
|
+
});
|
|
58
63
|
}
|
|
59
64
|
|
|
60
65
|
/**
|
|
@@ -62,31 +67,33 @@ class RegexActionHandler {
|
|
|
62
67
|
* @function handleRegexAction
|
|
63
68
|
* @param {ProviderMediaConfigObject} mediaConfig - The media config
|
|
64
69
|
* @param {Map<string, Function>} rawResponse - The raw response data from backend
|
|
65
|
-
* @returns {
|
|
70
|
+
* @returns {ProviderMediaConfigObject} - The media config with old or modified urls
|
|
66
71
|
* @static
|
|
67
72
|
*/
|
|
68
|
-
public static
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
73
|
+
public static handleRegexAction(mediaConfig: ProviderMediaConfigObject, rawResponse: Map<string, ILoader>): Promise<ProviderMediaConfigObject> {
|
|
74
|
+
return new Promise(resolve => {
|
|
75
|
+
const cdnUrl = OVPConfiguration.get().cdnUrl;
|
|
76
|
+
const regexAction = RegexActionHandler._extractRegexActionFromData(rawResponse);
|
|
77
|
+
const regExp = RegexActionHandler._getRegExp(regexAction);
|
|
72
78
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
if(
|
|
80
|
+
cdnUrl &&
|
|
81
|
+
regexAction &&
|
|
82
|
+
regExp &&
|
|
83
|
+
cdnUrl.match(regExp)
|
|
84
|
+
) {
|
|
85
|
+
if (regexAction.checkAliveTimeoutMs > 0) {
|
|
86
|
+
RegexActionHandler._logger.debug('executing ping request...');
|
|
87
|
+
RegexActionHandler._pingECDNAndReplaceHostUrls(mediaConfig, regexAction, cdnUrl.replace(regExp, regexAction.replacement)).then(resolve);
|
|
88
|
+
} else {
|
|
89
|
+
RegexActionHandler._replaceHostUrls(mediaConfig, regexAction);
|
|
90
|
+
resolve(mediaConfig);
|
|
91
|
+
}
|
|
92
|
+
} else {
|
|
93
|
+
RegexActionHandler._logger.debug('exiting handleRegexAction - not applying regex action.');
|
|
94
|
+
resolve(mediaConfig);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
90
97
|
}
|
|
91
98
|
|
|
92
99
|
/**
|
|
@@ -84,6 +84,22 @@ export class KalturaFlavorAsset {
|
|
|
84
84
|
*/
|
|
85
85
|
public label: string;
|
|
86
86
|
|
|
87
|
+
/**
|
|
88
|
+
* @member - tags
|
|
89
|
+
* @type {Array<string>}
|
|
90
|
+
*/
|
|
91
|
+
public tags: Array<string>;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @function
|
|
95
|
+
* @param {string} tags The tags
|
|
96
|
+
* @returns {Array<string>} tags array
|
|
97
|
+
* @static
|
|
98
|
+
*/
|
|
99
|
+
public static parseTags(tags = ''): Array<string> {
|
|
100
|
+
return tags.split(',');
|
|
101
|
+
}
|
|
102
|
+
|
|
87
103
|
/**
|
|
88
104
|
* @constructor
|
|
89
105
|
* @param {Object} data The json response
|
|
@@ -104,5 +120,6 @@ export class KalturaFlavorAsset {
|
|
|
104
120
|
this.status = data.status;
|
|
105
121
|
this.language = data.language;
|
|
106
122
|
this.label = data.label;
|
|
123
|
+
this.tags = KalturaFlavorAsset.parseTags(data.tags);
|
|
107
124
|
}
|
|
108
125
|
}
|
|
@@ -159,6 +159,12 @@ export class KalturaMediaEntry {
|
|
|
159
159
|
*/
|
|
160
160
|
public creatorId: string;
|
|
161
161
|
|
|
162
|
+
/**
|
|
163
|
+
* @member - The raw thumbnail URL
|
|
164
|
+
* @type {string}
|
|
165
|
+
*/
|
|
166
|
+
public rawThumbnailUrl: string;
|
|
167
|
+
|
|
162
168
|
/**
|
|
163
169
|
* @constructor
|
|
164
170
|
* @param {Object} entry The json response
|
|
@@ -175,6 +181,7 @@ export class KalturaMediaEntry {
|
|
|
175
181
|
this.flavorParamsIds = entry.flavorParamsIds;
|
|
176
182
|
this.duration = entry.duration;
|
|
177
183
|
this.poster = entry.thumbnailUrl;
|
|
184
|
+
this.rawThumbnailUrl = entry.thumbnailUrl;
|
|
178
185
|
this.status = entry.status;
|
|
179
186
|
this.dvrStatus = entry.dvrStatus;
|
|
180
187
|
this.tags = entry.tags;
|
|
@@ -14,7 +14,7 @@ export default class OVPBaseEntryService extends OVPService {
|
|
|
14
14
|
* @returns {RequestBuilder} The request builder
|
|
15
15
|
* @static
|
|
16
16
|
*/
|
|
17
|
-
public static getPlaybackContext(serviceUrl: string, ks: string, serviceEntryId: string): RequestBuilder {
|
|
17
|
+
public static getPlaybackContext(serviceUrl: string, ks: string, serviceEntryId: string, referrer?: string): RequestBuilder {
|
|
18
18
|
const headers: Map<string, string> = new Map();
|
|
19
19
|
headers.set('Content-Type', 'application/json');
|
|
20
20
|
const request = new RequestBuilder(headers);
|
|
@@ -24,6 +24,9 @@ export default class OVPBaseEntryService extends OVPService {
|
|
|
24
24
|
request.url = request.getUrl(serviceUrl);
|
|
25
25
|
request.tag = 'baseEntry-getPlaybackContext';
|
|
26
26
|
const contextDataParams = {objectType: 'KalturaContextDataParams', flavorTags: 'all'};
|
|
27
|
+
if (referrer) {
|
|
28
|
+
contextDataParams['referrer'] = referrer;
|
|
29
|
+
}
|
|
27
30
|
request.params = {entryId: serviceEntryId, ks: ks, contextDataParams: contextDataParams};
|
|
28
31
|
return request;
|
|
29
32
|
}
|
package/src/types/index.ts
CHANGED
|
@@ -24,11 +24,3 @@ export * from './playlist-info'
|
|
|
24
24
|
export * from './provider-options'
|
|
25
25
|
export * from './request-loader'
|
|
26
26
|
export * from './poster'
|
|
27
|
-
|
|
28
|
-
export { ProviderParser, RequestBuilder, ResponseTypes} from '../k-provider/ovp'
|
|
29
|
-
export { ContextType, MediaType} from '../k-provider/ott'
|
|
30
|
-
import {BaseProvider} from '../k-provider/common/base-provider'
|
|
31
|
-
import OTTProvider from '../k-provider/ott/provider'
|
|
32
|
-
import OVPProvider from '../k-provider/ovp/provider'
|
|
33
|
-
export {OTTProvider, OVPProvider, OTTProvider as Provider, BaseProvider}
|
|
34
|
-
export type IProvider = OTTProvider | OVPProvider;
|
package/src/types/media-entry.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|