@osaas/client-transcode 0.6.2 → 0.7.0
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/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/subtitling.d.ts +22 -0
- package/lib/subtitling.d.ts.map +1 -0
- package/lib/subtitling.js +82 -0
- package/lib/subtitling.js.map +1 -0
- package/package.json +2 -2
package/lib/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { QueuePool } from './pool';
|
|
|
3
3
|
export { vmafCompare } from './vmaf';
|
|
4
4
|
export { createStreamingPackage } from './packager';
|
|
5
5
|
export { createLiveSingleBitrateHLS, removeLiveSingleBitrateHLS, listSingleBitrateHLS } from './live';
|
|
6
|
+
export { SubtitlingPool } from './subtitling';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.listSingleBitrateHLS = exports.removeLiveSingleBitrateHLS = exports.createLiveSingleBitrateHLS = exports.createStreamingPackage = exports.vmafCompare = exports.QueuePool = void 0;
|
|
3
|
+
exports.SubtitlingPool = exports.listSingleBitrateHLS = exports.removeLiveSingleBitrateHLS = exports.createLiveSingleBitrateHLS = exports.createStreamingPackage = exports.vmafCompare = exports.QueuePool = void 0;
|
|
4
4
|
/** @module @osaas/client-transcode */
|
|
5
5
|
var pool_1 = require("./pool");
|
|
6
6
|
Object.defineProperty(exports, "QueuePool", { enumerable: true, get: function () { return pool_1.QueuePool; } });
|
|
@@ -12,4 +12,6 @@ var live_1 = require("./live");
|
|
|
12
12
|
Object.defineProperty(exports, "createLiveSingleBitrateHLS", { enumerable: true, get: function () { return live_1.createLiveSingleBitrateHLS; } });
|
|
13
13
|
Object.defineProperty(exports, "removeLiveSingleBitrateHLS", { enumerable: true, get: function () { return live_1.removeLiveSingleBitrateHLS; } });
|
|
14
14
|
Object.defineProperty(exports, "listSingleBitrateHLS", { enumerable: true, get: function () { return live_1.listSingleBitrateHLS; } });
|
|
15
|
+
var subtitling_1 = require("./subtitling");
|
|
16
|
+
Object.defineProperty(exports, "SubtitlingPool", { enumerable: true, get: function () { return subtitling_1.SubtitlingPool; } });
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,+BAAmC;AAA1B,iGAAA,SAAS,OAAA;AAClB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAC/B,+BAIgB;AAHd,kHAAA,0BAA0B,OAAA;AAC1B,kHAAA,0BAA0B,OAAA;AAC1B,4GAAA,oBAAoB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,+BAAmC;AAA1B,iGAAA,SAAS,OAAA;AAClB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAC/B,+BAIgB;AAHd,kHAAA,0BAA0B,OAAA;AAC1B,kHAAA,0BAA0B,OAAA;AAC1B,4GAAA,oBAAoB,OAAA;AAEtB,2CAA8C;AAArC,4GAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Context } from '@osaas/client-core';
|
|
3
|
+
export type TranscribeOutputFormat = 'json' | 'text' | 'srt' | 'verbose_json' | 'vtt';
|
|
4
|
+
export declare class SubtitlingPool {
|
|
5
|
+
private context;
|
|
6
|
+
private token?;
|
|
7
|
+
private instances;
|
|
8
|
+
private poolSize;
|
|
9
|
+
constructor({ context, size }: {
|
|
10
|
+
context: Context;
|
|
11
|
+
size?: number;
|
|
12
|
+
});
|
|
13
|
+
init({ openaikey, awsAccessKeyId, awsSecretAccessKey, awsRegion }: {
|
|
14
|
+
openaikey: string;
|
|
15
|
+
awsAccessKeyId?: string;
|
|
16
|
+
awsSecretAccessKey?: string;
|
|
17
|
+
awsRegion?: string;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
destroy(): Promise<void>;
|
|
20
|
+
transcribe(source: URL, language: string, format: TranscribeOutputFormat): Promise<string | undefined>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=subtitling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subtitling.d.ts","sourceRoot":"","sources":["../src/subtitling.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EAMR,MAAM,oBAAoB,CAAC;AAK5B,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,MAAM,GACN,KAAK,GACL,cAAc,GACd,KAAK,CAAC;AAQV,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,QAAQ,CAAS;gBAEb,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;IAMrD,IAAI,CAAC,EAChB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,SAAS,EACV,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAsCY,OAAO;IASP,UAAU,CACrB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,sBAAsB;CAkCjC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubtitlingPool = void 0;
|
|
4
|
+
const client_core_1 = require("@osaas/client-core");
|
|
5
|
+
const util_1 = require("./util");
|
|
6
|
+
const SERVICE_ID = 'eyevinn-auto-subtitles';
|
|
7
|
+
class SubtitlingPool {
|
|
8
|
+
context;
|
|
9
|
+
token;
|
|
10
|
+
instances;
|
|
11
|
+
poolSize;
|
|
12
|
+
constructor({ context, size }) {
|
|
13
|
+
this.context = context;
|
|
14
|
+
this.instances = [];
|
|
15
|
+
this.poolSize = size || 1;
|
|
16
|
+
}
|
|
17
|
+
async init({ openaikey, awsAccessKeyId, awsSecretAccessKey, awsRegion }) {
|
|
18
|
+
this.token = await this.context.getServiceAccessToken(SERVICE_ID);
|
|
19
|
+
if (this.instances.length > 0) {
|
|
20
|
+
throw new Error('Pool already initialized');
|
|
21
|
+
}
|
|
22
|
+
const names = [];
|
|
23
|
+
for (let i = 0; i < this.poolSize; i++) {
|
|
24
|
+
names.push(`node${i + 1}`);
|
|
25
|
+
}
|
|
26
|
+
for (const name of names) {
|
|
27
|
+
const instance = await (0, client_core_1.getInstance)(this.context, SERVICE_ID, name, this.token);
|
|
28
|
+
if (!instance) {
|
|
29
|
+
(0, client_core_1.Log)().debug(`Creating pool instance ${name}`);
|
|
30
|
+
const instance = await (0, client_core_1.createInstance)(this.context, SERVICE_ID, this.token, {
|
|
31
|
+
name,
|
|
32
|
+
openaikey,
|
|
33
|
+
awsAccessKeyId,
|
|
34
|
+
awsSecretAccessKey,
|
|
35
|
+
awsRegion
|
|
36
|
+
});
|
|
37
|
+
await (0, util_1.delay)(5000);
|
|
38
|
+
this.instances.push(instance.name);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.instances.push(instance.name);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async destroy() {
|
|
46
|
+
if (!this.token) {
|
|
47
|
+
throw new Error('Pool not initialized');
|
|
48
|
+
}
|
|
49
|
+
for (const instance of this.instances) {
|
|
50
|
+
await (0, client_core_1.removeInstance)(this.context, SERVICE_ID, instance, this.token);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async transcribe(source, language, format) {
|
|
54
|
+
if (!this.token) {
|
|
55
|
+
this.token = await this.context.refreshServiceAccessToken(SERVICE_ID);
|
|
56
|
+
}
|
|
57
|
+
if (this.instances.length == 0) {
|
|
58
|
+
throw new Error('Pool not initialized');
|
|
59
|
+
}
|
|
60
|
+
const name = this.instances[Math.floor(Math.random() * this.instances.length)];
|
|
61
|
+
const instance = await (0, client_core_1.getInstance)(this.context, SERVICE_ID, name, this.token);
|
|
62
|
+
const transcribeJobUrl = new URL('/transcribe', instance.url);
|
|
63
|
+
const data = await (0, client_core_1.createFetch)(transcribeJobUrl, {
|
|
64
|
+
method: 'POST',
|
|
65
|
+
body: JSON.stringify({
|
|
66
|
+
url: source.toString(),
|
|
67
|
+
language,
|
|
68
|
+
format
|
|
69
|
+
}),
|
|
70
|
+
headers: {
|
|
71
|
+
'x-jwt': `Bearer ${this.token}`,
|
|
72
|
+
'Content-Type': 'application/json'
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
if (data.error) {
|
|
76
|
+
throw new Error(data.error);
|
|
77
|
+
}
|
|
78
|
+
return data.result;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.SubtitlingPool = SubtitlingPool;
|
|
82
|
+
//# sourceMappingURL=subtitling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subtitling.js","sourceRoot":"","sources":["../src/subtitling.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@osaas/client-transcode",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Open Source Cloud Client SDK transcode library",
|
|
5
5
|
"author": "Eyevinn Technology <work@eyevinn.se>",
|
|
6
6
|
"homepage": "https://www.osaas.io",
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "c39b000939857bd0ebc7ae2c5b497ceea018b2eb"
|
|
35
35
|
}
|