@eluvio/elv-client-js 3.2.30 → 3.2.32
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/README.md +9 -0
- package/dist/ElvWalletClient-min.js +1 -1
- package/dist/ElvWalletClient-node-min.js +2 -2
- package/dist/src/walletClient/Configuration.js +1 -1
- package/dist/src/walletClient/index.js +8 -4
- package/package.json +1 -1
- package/src/walletClient/Configuration.js +2 -1
- package/src/walletClient/index.js +15 -11
- package/testScripts/DraftFinalize.js +51 -0
- package/testScripts/OfferingEnsureStrongDrm.js +86 -0
- package/testScripts/abr_profile_4k_both.json +15 -6
- package/testScripts/abr_profile_4k_clear.json +14 -5
- package/testScripts/abr_profile_4k_drm.json +14 -5
- package/testScripts/abr_profile_both.json +10 -1
- package/testScripts/abr_profile_clear.json +10 -1
- package/testScripts/abr_profile_drm.json +10 -1
- package/utilities/WriteTokenDecode.js +36 -0
- package/utilities/example_files/abr_profile_4k_both.json +15 -6
- package/utilities/example_files/abr_profile_4k_clear.json +14 -5
- package/utilities/example_files/abr_profile_4k_drm.json +14 -5
- package/utilities/example_files/abr_profile_both.json +10 -1
- package/utilities/example_files/abr_profile_clear.json +3 -3
- package/utilities/example_files/abr_profile_clear_hls_only.json +3 -3
- package/utilities/example_files/abr_profile_drm.json +10 -1
- package/utilities/example_files/abr_profile_drm_hls_only.json +10 -1
- package/utilities/lib/concerns/Draft.js +9 -2
|
@@ -22,7 +22,7 @@ var WalletConfiguration = {
|
|
|
22
22
|
appUrl: "https://wallet.contentfabric.io"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
__MARKETPLACE_ORDER: ["PREVIEW", "wwe-marketplace-main", "realcannonballrun-marketplace", "maskverse-marketplace", "dolly-marketplace", "
|
|
25
|
+
__MARKETPLACE_ORDER: ["PREVIEW", "wwe-marketplace-main", "realcannonballrun-marketplace", "maskverse-marketplace", "dolly-marketplace", "eluvio-live-marketplace-sonark", "cirkay-marketplace", "oc-marketplace", "emp-marketplace", "microsoft", "indieflix-marketplace", "angels-airwaves-marketplace"]
|
|
26
26
|
}; // No production environment on demo
|
|
27
27
|
|
|
28
28
|
WalletConfiguration.demo.production = WalletConfiguration.demo.staging; // Allow demo to be referred to as demov3
|
|
@@ -1259,6 +1259,7 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
1259
1259
|
_context15.next = 12;
|
|
1260
1260
|
return Promise.all(marketplace.items.map( /*#__PURE__*/function () {
|
|
1261
1261
|
var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(item, index) {
|
|
1262
|
+
var authorizationToken;
|
|
1262
1263
|
return _regeneratorRuntime.wrap(function _callee14$(_context14) {
|
|
1263
1264
|
while (1) {
|
|
1264
1265
|
switch (_context14.prev = _context14.next) {
|
|
@@ -1273,16 +1274,19 @@ var ElvWalletClient = /*#__PURE__*/function () {
|
|
|
1273
1274
|
break;
|
|
1274
1275
|
}
|
|
1275
1276
|
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1277
|
+
_context14.next = 4;
|
|
1278
|
+
return _this5.client.CreateFabricToken({});
|
|
1279
|
+
|
|
1280
|
+
case 4:
|
|
1281
|
+
authorizationToken = _context14.sent;
|
|
1279
1282
|
|
|
1280
1283
|
case 5:
|
|
1281
1284
|
_context14.prev = 5;
|
|
1282
1285
|
_context14.next = 8;
|
|
1283
1286
|
return _this5.client.ContentObjectMetadata({
|
|
1284
1287
|
versionHash: LinkTargetHash(item.nft_template),
|
|
1285
|
-
metadataSubtree: "permissioned"
|
|
1288
|
+
metadataSubtree: "permissioned",
|
|
1289
|
+
authorizationToken: authorizationToken
|
|
1286
1290
|
});
|
|
1287
1291
|
|
|
1288
1292
|
case 8:
|
package/package.json
CHANGED
|
@@ -28,8 +28,9 @@ let WalletConfiguration = {
|
|
|
28
28
|
"realcannonballrun-marketplace",
|
|
29
29
|
"maskverse-marketplace",
|
|
30
30
|
"dolly-marketplace",
|
|
31
|
-
"
|
|
31
|
+
"eluvio-live-marketplace-sonark",
|
|
32
32
|
"cirkay-marketplace",
|
|
33
|
+
"oc-marketplace",
|
|
33
34
|
"emp-marketplace",
|
|
34
35
|
"microsoft",
|
|
35
36
|
"indieflix-marketplace",
|
|
@@ -764,19 +764,23 @@ class ElvWalletClient {
|
|
|
764
764
|
marketplace.items = await Promise.all(
|
|
765
765
|
marketplace.items.map(async (item, index) => {
|
|
766
766
|
if(item.requires_permissions) {
|
|
767
|
+
let authorizationToken;
|
|
767
768
|
if(!this.loggedIn) {
|
|
769
|
+
// If not logged in, generated a dummy signed token
|
|
770
|
+
// Authorization may be based on geo-restriction, which doesn't require login
|
|
771
|
+
authorizationToken = await this.client.CreateFabricToken({});
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
try {
|
|
775
|
+
await this.client.ContentObjectMetadata({
|
|
776
|
+
versionHash: LinkTargetHash(item.nft_template),
|
|
777
|
+
metadataSubtree: "permissioned",
|
|
778
|
+
authorizationToken
|
|
779
|
+
});
|
|
780
|
+
|
|
781
|
+
item.authorized = true;
|
|
782
|
+
} catch(error) {
|
|
768
783
|
item.authorized = false;
|
|
769
|
-
} else {
|
|
770
|
-
try {
|
|
771
|
-
await this.client.ContentObjectMetadata({
|
|
772
|
-
versionHash: LinkTargetHash(item.nft_template),
|
|
773
|
-
metadataSubtree: "permissioned"
|
|
774
|
-
});
|
|
775
|
-
|
|
776
|
-
item.authorized = true;
|
|
777
|
-
} catch(error) {
|
|
778
|
-
item.authorized = false;
|
|
779
|
-
}
|
|
780
784
|
}
|
|
781
785
|
}
|
|
782
786
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
|
|
3
|
+
const ScriptBase = require("./parentClasses/ScriptBase");
|
|
4
|
+
|
|
5
|
+
class DraftFinalize extends ScriptBase {
|
|
6
|
+
|
|
7
|
+
async body() {
|
|
8
|
+
const client = await this.client();
|
|
9
|
+
|
|
10
|
+
const libraryId = this.args.libraryId;
|
|
11
|
+
const objectId = this.args.objectId;
|
|
12
|
+
const writeToken = this.args.writeToken;
|
|
13
|
+
|
|
14
|
+
console.log("Finalizing object...");
|
|
15
|
+
const finalizeResponse = await client.FinalizeContentObject({
|
|
16
|
+
libraryId,
|
|
17
|
+
objectId,
|
|
18
|
+
writeToken
|
|
19
|
+
});
|
|
20
|
+
console.log("New version hash: " + finalizeResponse.hash);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
header() {
|
|
24
|
+
return "Finalize draft " + this.args.writeToken + "'... ";
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
options() {
|
|
28
|
+
return super.options()
|
|
29
|
+
.option("libraryId", {
|
|
30
|
+
alias: "library-id",
|
|
31
|
+
demandOption: true,
|
|
32
|
+
describe: "Library ID (should start with 'ilib')",
|
|
33
|
+
type: "string"
|
|
34
|
+
})
|
|
35
|
+
.option("objectId", {
|
|
36
|
+
alias: "object-id",
|
|
37
|
+
demandOption: true,
|
|
38
|
+
describe: "Object ID (should start with 'iq__')",
|
|
39
|
+
type: "string"
|
|
40
|
+
})
|
|
41
|
+
.option("writeToken", {
|
|
42
|
+
alias: "write-token",
|
|
43
|
+
demandOption: true,
|
|
44
|
+
describe: "Write token of draft",
|
|
45
|
+
type: "string"
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const script = new DraftFinalize;
|
|
51
|
+
script.run();
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
|
|
3
|
+
// Ensures that an existing offering has only strong DRM playout options (Widevine and Fairplay)
|
|
4
|
+
|
|
5
|
+
const ScriptOffering = require("./parentClasses/ScriptOffering");
|
|
6
|
+
|
|
7
|
+
class OfferingEnsureStrongDrm extends ScriptOffering {
|
|
8
|
+
|
|
9
|
+
async body() {
|
|
10
|
+
const client = await this.client();
|
|
11
|
+
|
|
12
|
+
const libraryId = this.args.libraryId;
|
|
13
|
+
const objectId = this.args.objectId;
|
|
14
|
+
const offeringKey = this.args.offeringKey;
|
|
15
|
+
const force = this.args.force;
|
|
16
|
+
|
|
17
|
+
let changesMade = false;
|
|
18
|
+
|
|
19
|
+
let metadata = await client.ContentObjectMetadata({
|
|
20
|
+
libraryId,
|
|
21
|
+
objectId
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
this.validateOffering(metadata, offeringKey);
|
|
25
|
+
|
|
26
|
+
// if offering has store_clear: false, abort
|
|
27
|
+
if(metadata.offerings[offeringKey].store_clear) {
|
|
28
|
+
if(force){
|
|
29
|
+
console.warn("WARNING: Offering '" + offeringKey + "' has 'store_clear' set to true, this is insecure! Proceeding anyway due to --force being specified...");
|
|
30
|
+
} else {
|
|
31
|
+
this.throwError("Offering '" + offeringKey + "' has 'store_clear' set to true. Use --force to execute command anyway.");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if(metadata.offerings[offeringKey].drm_optional) {
|
|
36
|
+
console.log("Offering '" + offeringKey + "' has 'drm_optional' set to true: changing to false...");
|
|
37
|
+
metadata.offerings[offeringKey].drm_optional = false;
|
|
38
|
+
changesMade = true;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
// loop through playout formats, delete ones where drm is null or is weak
|
|
43
|
+
const playoutFormatKeys = Object.keys(metadata.offerings[offeringKey].playout.playout_formats);
|
|
44
|
+
const originalFormatCount = playoutFormatKeys.length;
|
|
45
|
+
if(originalFormatCount === 0){
|
|
46
|
+
this.throwError("Offering '" + offeringKey + "' has no playout formats.");
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
for(let i = 0; i < originalFormatCount; i++) {
|
|
50
|
+
const key = playoutFormatKeys[i];
|
|
51
|
+
const drm = metadata.offerings[offeringKey].playout.playout_formats[key].drm;
|
|
52
|
+
if(!drm || !["DrmWidevine", "DrmFairplay"].includes(drm.type)) {
|
|
53
|
+
console.log("Deleting playout format '" + key + "'...");
|
|
54
|
+
delete metadata.offerings[offeringKey].playout.playout_formats[key];
|
|
55
|
+
changesMade = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const newFormatCount = Object.keys(metadata.offerings[offeringKey].playout.playout_formats).length;
|
|
60
|
+
if(newFormatCount === 0) {
|
|
61
|
+
this.throwError("Offering '" + offeringKey + "' would have no playout formats remaining after this operation.");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if(changesMade) {
|
|
65
|
+
console.log(newFormatCount + " playout format(s) remaining after operation.");
|
|
66
|
+
await this.metadataWrite(metadata);
|
|
67
|
+
} else {
|
|
68
|
+
console.log("No playout formats removed.");
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
header() {
|
|
73
|
+
return "Removing playout formats with weak (or no) DRM from mezzanine offering '" + this.args.offeringKey + "'... ";
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
options() {
|
|
77
|
+
return super.options()
|
|
78
|
+
.option("force", {
|
|
79
|
+
describe: "Force operation, even if 'store_clear' is set to 'true'",
|
|
80
|
+
type: "boolean"
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const script = new OfferingEnsureStrongDrm;
|
|
86
|
+
script.run();
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -34,28 +43,28 @@
|
|
|
34
43
|
"height": 1080,
|
|
35
44
|
"media_type": "video",
|
|
36
45
|
"pregenerate": false,
|
|
37
|
-
"width": 1920
|
|
46
|
+
"width": 1920
|
|
38
47
|
},
|
|
39
48
|
{
|
|
40
49
|
"bit_rate": 4500000,
|
|
41
50
|
"height":720 ,
|
|
42
51
|
"media_type": "video",
|
|
43
52
|
"pregenerate": false,
|
|
44
|
-
"width": 1280
|
|
53
|
+
"width": 1280
|
|
45
54
|
},
|
|
46
55
|
{
|
|
47
56
|
"bit_rate": 2000000,
|
|
48
57
|
"height": 540,
|
|
49
58
|
"media_type": "video",
|
|
50
59
|
"pregenerate": false,
|
|
51
|
-
"width": 960
|
|
60
|
+
"width": 960
|
|
52
61
|
},
|
|
53
62
|
{
|
|
54
63
|
"bit_rate": 1100000,
|
|
55
64
|
"height": 432,
|
|
56
65
|
"media_type": "video",
|
|
57
66
|
"pregenerate": false,
|
|
58
|
-
"width": 768
|
|
67
|
+
"width": 768
|
|
59
68
|
},
|
|
60
69
|
{
|
|
61
70
|
"bit_rate": 810000,
|
|
@@ -127,7 +136,7 @@
|
|
|
127
136
|
"protocol": {
|
|
128
137
|
"type": "ProtoHls"
|
|
129
138
|
}
|
|
130
|
-
}
|
|
139
|
+
}
|
|
131
140
|
},
|
|
132
141
|
"segment_specs": {
|
|
133
142
|
"audio": {
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -34,28 +43,28 @@
|
|
|
34
43
|
"height": 1080,
|
|
35
44
|
"media_type": "video",
|
|
36
45
|
"pregenerate": false,
|
|
37
|
-
"width": 1920
|
|
46
|
+
"width": 1920
|
|
38
47
|
},
|
|
39
48
|
{
|
|
40
49
|
"bit_rate": 4500000,
|
|
41
50
|
"height": 720,
|
|
42
51
|
"media_type": "video",
|
|
43
52
|
"pregenerate": false,
|
|
44
|
-
"width": 1280
|
|
53
|
+
"width": 1280
|
|
45
54
|
},
|
|
46
55
|
{
|
|
47
56
|
"bit_rate": 2000000,
|
|
48
57
|
"height": 540,
|
|
49
58
|
"media_type": "video",
|
|
50
59
|
"pregenerate": false,
|
|
51
|
-
"width": 960
|
|
60
|
+
"width": 960
|
|
52
61
|
},
|
|
53
62
|
{
|
|
54
63
|
"bit_rate": 1100000,
|
|
55
64
|
"height": 432,
|
|
56
65
|
"media_type": "video",
|
|
57
66
|
"pregenerate": false,
|
|
58
|
-
"width": 768
|
|
67
|
+
"width": 768
|
|
59
68
|
},
|
|
60
69
|
{
|
|
61
70
|
"bit_rate": 810000,
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -34,28 +43,28 @@
|
|
|
34
43
|
"height": 1080,
|
|
35
44
|
"media_type": "video",
|
|
36
45
|
"pregenerate": false,
|
|
37
|
-
"width": 1920
|
|
46
|
+
"width": 1920
|
|
38
47
|
},
|
|
39
48
|
{
|
|
40
49
|
"bit_rate": 4500000,
|
|
41
50
|
"height":720 ,
|
|
42
51
|
"media_type": "video",
|
|
43
52
|
"pregenerate": false,
|
|
44
|
-
"width": 1280
|
|
53
|
+
"width": 1280
|
|
45
54
|
},
|
|
46
55
|
{
|
|
47
56
|
"bit_rate": 2000000,
|
|
48
57
|
"height": 540,
|
|
49
58
|
"media_type": "video",
|
|
50
59
|
"pregenerate": false,
|
|
51
|
-
"width": 960
|
|
60
|
+
"width": 960
|
|
52
61
|
},
|
|
53
62
|
{
|
|
54
63
|
"bit_rate": 1100000,
|
|
55
64
|
"height": 432,
|
|
56
65
|
"media_type": "video",
|
|
57
66
|
"pregenerate": false,
|
|
58
|
-
"width": 768
|
|
67
|
+
"width": 768
|
|
59
68
|
},
|
|
60
69
|
{
|
|
61
70
|
"bit_rate": 810000,
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Retrieve part list from object
|
|
2
|
+
const Utility = require("./lib/Utility");
|
|
3
|
+
|
|
4
|
+
const Draft = require("./lib/concerns/Draft");
|
|
5
|
+
const {NewOpt} = require("./lib/options");
|
|
6
|
+
|
|
7
|
+
class WriteTokenDecode extends Utility {
|
|
8
|
+
blueprint() {
|
|
9
|
+
return {
|
|
10
|
+
concerns: [Draft],
|
|
11
|
+
options: [
|
|
12
|
+
NewOpt("writeToken", {
|
|
13
|
+
demand: true,
|
|
14
|
+
descTemplate: "Write token to decode",
|
|
15
|
+
type: "string"
|
|
16
|
+
})
|
|
17
|
+
]
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async body() {
|
|
22
|
+
const {writeToken} = this.args;
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
24
|
+
console.log(JSON.stringify(this.concerns.Draft.decode({writeToken}), null, 2));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
header() {
|
|
28
|
+
return `Decode write token ${this.args.writeToken}`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if(require.main === module) {
|
|
33
|
+
Utility.cmdLineInvoke(WriteTokenDecode);
|
|
34
|
+
} else {
|
|
35
|
+
module.exports = WriteTokenDecode;
|
|
36
|
+
}
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -34,28 +43,28 @@
|
|
|
34
43
|
"height": 1080,
|
|
35
44
|
"media_type": "video",
|
|
36
45
|
"pregenerate": false,
|
|
37
|
-
"width": 1920
|
|
46
|
+
"width": 1920
|
|
38
47
|
},
|
|
39
48
|
{
|
|
40
49
|
"bit_rate": 4500000,
|
|
41
50
|
"height":720 ,
|
|
42
51
|
"media_type": "video",
|
|
43
52
|
"pregenerate": false,
|
|
44
|
-
"width": 1280
|
|
53
|
+
"width": 1280
|
|
45
54
|
},
|
|
46
55
|
{
|
|
47
56
|
"bit_rate": 2000000,
|
|
48
57
|
"height": 540,
|
|
49
58
|
"media_type": "video",
|
|
50
59
|
"pregenerate": false,
|
|
51
|
-
"width": 960
|
|
60
|
+
"width": 960
|
|
52
61
|
},
|
|
53
62
|
{
|
|
54
63
|
"bit_rate": 1100000,
|
|
55
64
|
"height": 432,
|
|
56
65
|
"media_type": "video",
|
|
57
66
|
"pregenerate": false,
|
|
58
|
-
"width": 768
|
|
67
|
+
"width": 768
|
|
59
68
|
},
|
|
60
69
|
{
|
|
61
70
|
"bit_rate": 810000,
|
|
@@ -127,7 +136,7 @@
|
|
|
127
136
|
"protocol": {
|
|
128
137
|
"type": "ProtoHls"
|
|
129
138
|
}
|
|
130
|
-
}
|
|
139
|
+
}
|
|
131
140
|
},
|
|
132
141
|
"segment_specs": {
|
|
133
142
|
"audio": {
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -34,28 +43,28 @@
|
|
|
34
43
|
"height": 1080,
|
|
35
44
|
"media_type": "video",
|
|
36
45
|
"pregenerate": false,
|
|
37
|
-
"width": 1920
|
|
46
|
+
"width": 1920
|
|
38
47
|
},
|
|
39
48
|
{
|
|
40
49
|
"bit_rate": 4500000,
|
|
41
50
|
"height": 720,
|
|
42
51
|
"media_type": "video",
|
|
43
52
|
"pregenerate": false,
|
|
44
|
-
"width": 1280
|
|
53
|
+
"width": 1280
|
|
45
54
|
},
|
|
46
55
|
{
|
|
47
56
|
"bit_rate": 2000000,
|
|
48
57
|
"height": 540,
|
|
49
58
|
"media_type": "video",
|
|
50
59
|
"pregenerate": false,
|
|
51
|
-
"width": 960
|
|
60
|
+
"width": 960
|
|
52
61
|
},
|
|
53
62
|
{
|
|
54
63
|
"bit_rate": 1100000,
|
|
55
64
|
"height": 432,
|
|
56
65
|
"media_type": "video",
|
|
57
66
|
"pregenerate": false,
|
|
58
|
-
"width": 768
|
|
67
|
+
"width": 768
|
|
59
68
|
},
|
|
60
69
|
{
|
|
61
70
|
"bit_rate": 810000,
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|
|
@@ -34,28 +43,28 @@
|
|
|
34
43
|
"height": 1080,
|
|
35
44
|
"media_type": "video",
|
|
36
45
|
"pregenerate": false,
|
|
37
|
-
"width": 1920
|
|
46
|
+
"width": 1920
|
|
38
47
|
},
|
|
39
48
|
{
|
|
40
49
|
"bit_rate": 4500000,
|
|
41
50
|
"height":720 ,
|
|
42
51
|
"media_type": "video",
|
|
43
52
|
"pregenerate": false,
|
|
44
|
-
"width": 1280
|
|
53
|
+
"width": 1280
|
|
45
54
|
},
|
|
46
55
|
{
|
|
47
56
|
"bit_rate": 2000000,
|
|
48
57
|
"height": 540,
|
|
49
58
|
"media_type": "video",
|
|
50
59
|
"pregenerate": false,
|
|
51
|
-
"width": 960
|
|
60
|
+
"width": 960
|
|
52
61
|
},
|
|
53
62
|
{
|
|
54
63
|
"bit_rate": 1100000,
|
|
55
64
|
"height": 432,
|
|
56
65
|
"media_type": "video",
|
|
57
66
|
"pregenerate": false,
|
|
58
|
-
"width": 768
|
|
67
|
+
"width": 768
|
|
59
68
|
},
|
|
60
69
|
{
|
|
61
70
|
"bit_rate": 810000,
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
"{\"media_type\":\"audio\",\"channels\":2}": {
|
|
15
15
|
"rung_specs": [
|
|
16
16
|
{
|
|
17
|
-
"bit_rate":
|
|
17
|
+
"bit_rate": 192000,
|
|
18
|
+
"media_type": "audio",
|
|
19
|
+
"pregenerate": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"{\"media_type\":\"audio\",\"channels\":6}": {
|
|
24
|
+
"rung_specs": [
|
|
25
|
+
{
|
|
26
|
+
"bit_rate": 384000,
|
|
18
27
|
"media_type": "audio",
|
|
19
28
|
"pregenerate": true
|
|
20
29
|
}
|