@happyvertical/smrt-video 0.57.36 → 0.57.37
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/AGENTS.md +1 -0
- package/dist/character.d.ts.map +1 -1
- package/dist/chunks/{scene-CaTaDyex.js → scene-CajvYwN3.js} +7 -7
- package/dist/chunks/scene-CajvYwN3.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +378 -57
- package/dist/index.js.map +1 -1
- package/dist/manifest.json +789 -51
- package/dist/recipes.d.ts +468 -0
- package/dist/recipes.d.ts.map +1 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/smrt-knowledge.json +631 -64
- package/dist/video-composition.d.ts.map +1 -1
- package/dist/video-sequence.d.ts.map +1 -1
- package/dist/video-shot.d.ts.map +1 -1
- package/package.json +12 -12
- package/dist/chunks/scene-CaTaDyex.js.map +0 -1
package/dist/smrt-knowledge.json
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"sensitiveFieldsExcluded": true,
|
|
4
4
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
5
5
|
"packageName": "@happyvertical/smrt-video",
|
|
6
|
-
"packageVersion": "0.57.
|
|
6
|
+
"packageVersion": "0.57.37",
|
|
7
7
|
"sourceManifestPath": "dist/manifest.json",
|
|
8
8
|
"agentDocPath": "AGENTS.md",
|
|
9
9
|
"sourceHashes": {
|
|
10
|
-
"manifest": "
|
|
11
|
-
"packageJson": "
|
|
12
|
-
"agents": "
|
|
10
|
+
"manifest": "33e4318f0f600f2a46ad71766c442d1c631c96c788bc3435a7ad745aa310d806",
|
|
11
|
+
"packageJson": "ca27918b687d6db2d26c4987d3af45bcd7c3e8b86a42fc41f37ce9808d01805e",
|
|
12
|
+
"agents": "f76ec652c71a7eba28ad59245020fa5df132e724f7d5b5a8612de6b126ccf4cf"
|
|
13
13
|
},
|
|
14
14
|
"exports": [
|
|
15
15
|
".",
|
|
@@ -914,20 +914,23 @@
|
|
|
914
914
|
"type": "text",
|
|
915
915
|
"required": false,
|
|
916
916
|
"columnType": "TEXT",
|
|
917
|
-
"default": ""
|
|
917
|
+
"default": "",
|
|
918
|
+
"description": "What the character is called."
|
|
918
919
|
},
|
|
919
920
|
{
|
|
920
921
|
"name": "description",
|
|
921
922
|
"type": "text",
|
|
922
923
|
"required": false,
|
|
923
|
-
"columnType": "TEXT"
|
|
924
|
+
"columnType": "TEXT",
|
|
925
|
+
"description": "Who this character is and how they come across on screen."
|
|
924
926
|
},
|
|
925
927
|
{
|
|
926
928
|
"name": "imageAssetId",
|
|
927
929
|
"type": "crossPackageRef",
|
|
928
930
|
"required": false,
|
|
929
931
|
"related": "@happyvertical/smrt-assets:Asset",
|
|
930
|
-
"columnType": "UUID"
|
|
932
|
+
"columnType": "UUID",
|
|
933
|
+
"description": "The picture the character is built from."
|
|
931
934
|
},
|
|
932
935
|
{
|
|
933
936
|
"name": "baseMotionAssetId",
|
|
@@ -941,7 +944,8 @@
|
|
|
941
944
|
"type": "crossPackageRef",
|
|
942
945
|
"required": false,
|
|
943
946
|
"related": "@happyvertical/smrt-voice:VoiceProfile",
|
|
944
|
-
"columnType": "UUID"
|
|
947
|
+
"columnType": "UUID",
|
|
948
|
+
"description": "The voice the character speaks with."
|
|
945
949
|
},
|
|
946
950
|
{
|
|
947
951
|
"name": "brandingKit",
|
|
@@ -954,7 +958,8 @@
|
|
|
954
958
|
"type": "text",
|
|
955
959
|
"required": false,
|
|
956
960
|
"columnType": "TEXT",
|
|
957
|
-
"default": "pending"
|
|
961
|
+
"default": "pending",
|
|
962
|
+
"description": "Whether the character is ready to appear in shots."
|
|
958
963
|
},
|
|
959
964
|
{
|
|
960
965
|
"name": "performerId",
|
|
@@ -968,7 +973,8 @@
|
|
|
968
973
|
"type": "foreignKey",
|
|
969
974
|
"required": false,
|
|
970
975
|
"related": "Scene",
|
|
971
|
-
"columnType": "UUID"
|
|
976
|
+
"columnType": "UUID",
|
|
977
|
+
"description": "The scene the character usually appears in."
|
|
972
978
|
},
|
|
973
979
|
{
|
|
974
980
|
"name": "sceneConfigs",
|
|
@@ -3523,27 +3529,31 @@
|
|
|
3523
3529
|
"type": "text",
|
|
3524
3530
|
"required": false,
|
|
3525
3531
|
"columnType": "TEXT",
|
|
3526
|
-
"default": ""
|
|
3532
|
+
"default": "",
|
|
3533
|
+
"description": "What the scene is called."
|
|
3527
3534
|
},
|
|
3528
3535
|
{
|
|
3529
3536
|
"name": "description",
|
|
3530
3537
|
"type": "text",
|
|
3531
3538
|
"required": false,
|
|
3532
|
-
"columnType": "TEXT"
|
|
3539
|
+
"columnType": "TEXT",
|
|
3540
|
+
"description": "What the scene shows."
|
|
3533
3541
|
},
|
|
3534
3542
|
{
|
|
3535
3543
|
"name": "sourceAssetId",
|
|
3536
3544
|
"type": "crossPackageRef",
|
|
3537
3545
|
"required": false,
|
|
3538
3546
|
"related": "@happyvertical/smrt-assets:Asset",
|
|
3539
|
-
"columnType": "UUID"
|
|
3547
|
+
"columnType": "UUID",
|
|
3548
|
+
"description": "The picture or video the scene is made from."
|
|
3540
3549
|
},
|
|
3541
3550
|
{
|
|
3542
3551
|
"name": "sourceType",
|
|
3543
3552
|
"type": "text",
|
|
3544
3553
|
"required": false,
|
|
3545
3554
|
"columnType": "TEXT",
|
|
3546
|
-
"default": "image"
|
|
3555
|
+
"default": "image",
|
|
3556
|
+
"description": "What kind of file the scene is made from: a picture, a video or a wrap-around panorama."
|
|
3547
3557
|
},
|
|
3548
3558
|
{
|
|
3549
3559
|
"name": "projection",
|
|
@@ -3583,7 +3593,8 @@
|
|
|
3583
3593
|
"type": "text",
|
|
3584
3594
|
"required": false,
|
|
3585
3595
|
"columnType": "TEXT",
|
|
3586
|
-
"default": "pending"
|
|
3596
|
+
"default": "pending",
|
|
3597
|
+
"description": "Whether the scene is ready to be used in shots."
|
|
3587
3598
|
}
|
|
3588
3599
|
],
|
|
3589
3600
|
"relationships": [
|
|
@@ -4455,7 +4466,8 @@
|
|
|
4455
4466
|
"name": "type",
|
|
4456
4467
|
"type": "text",
|
|
4457
4468
|
"required": false,
|
|
4458
|
-
"columnType": "TEXT"
|
|
4469
|
+
"columnType": "TEXT",
|
|
4470
|
+
"description": "What kind of piece this is, such as an article or a document."
|
|
4459
4471
|
},
|
|
4460
4472
|
{
|
|
4461
4473
|
"name": "variant",
|
|
@@ -4473,32 +4485,37 @@
|
|
|
4473
4485
|
"name": "author",
|
|
4474
4486
|
"type": "text",
|
|
4475
4487
|
"required": false,
|
|
4476
|
-
"columnType": "TEXT"
|
|
4488
|
+
"columnType": "TEXT",
|
|
4489
|
+
"description": "Who wrote this piece."
|
|
4477
4490
|
},
|
|
4478
4491
|
{
|
|
4479
4492
|
"name": "name",
|
|
4480
4493
|
"type": "text",
|
|
4481
4494
|
"required": true,
|
|
4482
4495
|
"columnType": "TEXT",
|
|
4483
|
-
"default": ""
|
|
4496
|
+
"default": "",
|
|
4497
|
+
"description": "A short name used to find this piece in lists."
|
|
4484
4498
|
},
|
|
4485
4499
|
{
|
|
4486
4500
|
"name": "title",
|
|
4487
4501
|
"type": "text",
|
|
4488
4502
|
"required": false,
|
|
4489
|
-
"columnType": "TEXT"
|
|
4503
|
+
"columnType": "TEXT",
|
|
4504
|
+
"description": "The headline readers see."
|
|
4490
4505
|
},
|
|
4491
4506
|
{
|
|
4492
4507
|
"name": "description",
|
|
4493
4508
|
"type": "text",
|
|
4494
4509
|
"required": false,
|
|
4495
|
-
"columnType": "TEXT"
|
|
4510
|
+
"columnType": "TEXT",
|
|
4511
|
+
"description": "A one or two sentence summary of the piece."
|
|
4496
4512
|
},
|
|
4497
4513
|
{
|
|
4498
4514
|
"name": "body",
|
|
4499
4515
|
"type": "text",
|
|
4500
4516
|
"required": false,
|
|
4501
|
-
"columnType": "TEXT"
|
|
4517
|
+
"columnType": "TEXT",
|
|
4518
|
+
"description": "The full text of the piece."
|
|
4502
4519
|
},
|
|
4503
4520
|
{
|
|
4504
4521
|
"name": "bodyFormat",
|
|
@@ -4510,7 +4527,8 @@
|
|
|
4510
4527
|
"name": "publish_date",
|
|
4511
4528
|
"type": "datetime",
|
|
4512
4529
|
"required": false,
|
|
4513
|
-
"columnType": "TIMESTAMP"
|
|
4530
|
+
"columnType": "TIMESTAMP",
|
|
4531
|
+
"description": "The date the piece went out, or is due to go out."
|
|
4514
4532
|
},
|
|
4515
4533
|
{
|
|
4516
4534
|
"name": "url",
|
|
@@ -4541,20 +4559,23 @@
|
|
|
4541
4559
|
"type": "json",
|
|
4542
4560
|
"required": false,
|
|
4543
4561
|
"columnType": "JSON",
|
|
4544
|
-
"default": []
|
|
4562
|
+
"default": [],
|
|
4563
|
+
"description": "Words that group pieces by subject."
|
|
4545
4564
|
},
|
|
4546
4565
|
{
|
|
4547
4566
|
"name": "category",
|
|
4548
4567
|
"type": "text",
|
|
4549
4568
|
"required": false,
|
|
4550
|
-
"columnType": "TEXT"
|
|
4569
|
+
"columnType": "TEXT",
|
|
4570
|
+
"description": "The one section the piece belongs to, such as news or local."
|
|
4551
4571
|
},
|
|
4552
4572
|
{
|
|
4553
4573
|
"name": "status",
|
|
4554
4574
|
"type": "text",
|
|
4555
4575
|
"required": false,
|
|
4556
4576
|
"columnType": "TEXT",
|
|
4557
|
-
"default": "draft"
|
|
4577
|
+
"default": "draft",
|
|
4578
|
+
"description": "Where the piece stands: draft, in review, published or archived."
|
|
4558
4579
|
},
|
|
4559
4580
|
{
|
|
4560
4581
|
"name": "state",
|
|
@@ -4582,42 +4603,48 @@
|
|
|
4582
4603
|
"type": "integer",
|
|
4583
4604
|
"required": false,
|
|
4584
4605
|
"columnType": "INTEGER",
|
|
4585
|
-
"default": 30
|
|
4606
|
+
"default": 30,
|
|
4607
|
+
"description": "How many frames of video play each second, usually 30."
|
|
4586
4608
|
},
|
|
4587
4609
|
{
|
|
4588
4610
|
"name": "width",
|
|
4589
4611
|
"type": "integer",
|
|
4590
4612
|
"required": false,
|
|
4591
4613
|
"columnType": "INTEGER",
|
|
4592
|
-
"default": 1920
|
|
4614
|
+
"default": 1920,
|
|
4615
|
+
"description": "The width of the finished video in pixels, such as 1920."
|
|
4593
4616
|
},
|
|
4594
4617
|
{
|
|
4595
4618
|
"name": "height",
|
|
4596
4619
|
"type": "integer",
|
|
4597
4620
|
"required": false,
|
|
4598
4621
|
"columnType": "INTEGER",
|
|
4599
|
-
"default": 1080
|
|
4622
|
+
"default": 1080,
|
|
4623
|
+
"description": "The height of the finished video in pixels, such as 1080."
|
|
4600
4624
|
},
|
|
4601
4625
|
{
|
|
4602
4626
|
"name": "durationInFrames",
|
|
4603
4627
|
"type": "integer",
|
|
4604
4628
|
"required": false,
|
|
4605
4629
|
"columnType": "INTEGER",
|
|
4606
|
-
"default": 0
|
|
4630
|
+
"default": 0,
|
|
4631
|
+
"description": "How long the whole video runs, counted in frames. It adds up from the sequences."
|
|
4607
4632
|
},
|
|
4608
4633
|
{
|
|
4609
4634
|
"name": "renderStatus",
|
|
4610
4635
|
"type": "text",
|
|
4611
4636
|
"required": false,
|
|
4612
4637
|
"columnType": "TEXT",
|
|
4613
|
-
"default": "draft"
|
|
4638
|
+
"default": "draft",
|
|
4639
|
+
"description": "Where the finished video stands: draft, rendering, ready or failed."
|
|
4614
4640
|
},
|
|
4615
4641
|
{
|
|
4616
4642
|
"name": "renderProgress",
|
|
4617
4643
|
"type": "integer",
|
|
4618
4644
|
"required": false,
|
|
4619
4645
|
"columnType": "INTEGER",
|
|
4620
|
-
"default": 0
|
|
4646
|
+
"default": 0,
|
|
4647
|
+
"description": "How far along the render is, from 0 to 100."
|
|
4621
4648
|
}
|
|
4622
4649
|
],
|
|
4623
4650
|
"relationships": [
|
|
@@ -6908,7 +6935,8 @@
|
|
|
6908
6935
|
"name": "type",
|
|
6909
6936
|
"type": "text",
|
|
6910
6937
|
"required": false,
|
|
6911
|
-
"columnType": "TEXT"
|
|
6938
|
+
"columnType": "TEXT",
|
|
6939
|
+
"description": "What kind of piece this is, such as an article or a document."
|
|
6912
6940
|
},
|
|
6913
6941
|
{
|
|
6914
6942
|
"name": "variant",
|
|
@@ -6926,32 +6954,37 @@
|
|
|
6926
6954
|
"name": "author",
|
|
6927
6955
|
"type": "text",
|
|
6928
6956
|
"required": false,
|
|
6929
|
-
"columnType": "TEXT"
|
|
6957
|
+
"columnType": "TEXT",
|
|
6958
|
+
"description": "Who wrote this piece."
|
|
6930
6959
|
},
|
|
6931
6960
|
{
|
|
6932
6961
|
"name": "name",
|
|
6933
6962
|
"type": "text",
|
|
6934
6963
|
"required": true,
|
|
6935
6964
|
"columnType": "TEXT",
|
|
6936
|
-
"default": ""
|
|
6965
|
+
"default": "",
|
|
6966
|
+
"description": "A short name used to find this piece in lists."
|
|
6937
6967
|
},
|
|
6938
6968
|
{
|
|
6939
6969
|
"name": "title",
|
|
6940
6970
|
"type": "text",
|
|
6941
6971
|
"required": false,
|
|
6942
|
-
"columnType": "TEXT"
|
|
6972
|
+
"columnType": "TEXT",
|
|
6973
|
+
"description": "The headline readers see."
|
|
6943
6974
|
},
|
|
6944
6975
|
{
|
|
6945
6976
|
"name": "description",
|
|
6946
6977
|
"type": "text",
|
|
6947
6978
|
"required": false,
|
|
6948
|
-
"columnType": "TEXT"
|
|
6979
|
+
"columnType": "TEXT",
|
|
6980
|
+
"description": "A one or two sentence summary of the piece."
|
|
6949
6981
|
},
|
|
6950
6982
|
{
|
|
6951
6983
|
"name": "body",
|
|
6952
6984
|
"type": "text",
|
|
6953
6985
|
"required": false,
|
|
6954
|
-
"columnType": "TEXT"
|
|
6986
|
+
"columnType": "TEXT",
|
|
6987
|
+
"description": "The full text of the piece."
|
|
6955
6988
|
},
|
|
6956
6989
|
{
|
|
6957
6990
|
"name": "bodyFormat",
|
|
@@ -6963,7 +6996,8 @@
|
|
|
6963
6996
|
"name": "publish_date",
|
|
6964
6997
|
"type": "datetime",
|
|
6965
6998
|
"required": false,
|
|
6966
|
-
"columnType": "TIMESTAMP"
|
|
6999
|
+
"columnType": "TIMESTAMP",
|
|
7000
|
+
"description": "The date the piece went out, or is due to go out."
|
|
6967
7001
|
},
|
|
6968
7002
|
{
|
|
6969
7003
|
"name": "url",
|
|
@@ -6994,20 +7028,23 @@
|
|
|
6994
7028
|
"type": "json",
|
|
6995
7029
|
"required": false,
|
|
6996
7030
|
"columnType": "JSON",
|
|
6997
|
-
"default": []
|
|
7031
|
+
"default": [],
|
|
7032
|
+
"description": "Words that group pieces by subject."
|
|
6998
7033
|
},
|
|
6999
7034
|
{
|
|
7000
7035
|
"name": "category",
|
|
7001
7036
|
"type": "text",
|
|
7002
7037
|
"required": false,
|
|
7003
|
-
"columnType": "TEXT"
|
|
7038
|
+
"columnType": "TEXT",
|
|
7039
|
+
"description": "The one section the piece belongs to, such as news or local."
|
|
7004
7040
|
},
|
|
7005
7041
|
{
|
|
7006
7042
|
"name": "status",
|
|
7007
7043
|
"type": "text",
|
|
7008
7044
|
"required": false,
|
|
7009
7045
|
"columnType": "TEXT",
|
|
7010
|
-
"default": "draft"
|
|
7046
|
+
"default": "draft",
|
|
7047
|
+
"description": "Where the piece stands: draft, in review, published or archived."
|
|
7011
7048
|
},
|
|
7012
7049
|
{
|
|
7013
7050
|
"name": "state",
|
|
@@ -7035,35 +7072,40 @@
|
|
|
7035
7072
|
"type": "foreignKey",
|
|
7036
7073
|
"required": false,
|
|
7037
7074
|
"related": "VideoComposition",
|
|
7038
|
-
"columnType": "UUID"
|
|
7075
|
+
"columnType": "UUID",
|
|
7076
|
+
"description": "The video this sequence is part of."
|
|
7039
7077
|
},
|
|
7040
7078
|
{
|
|
7041
7079
|
"name": "position",
|
|
7042
7080
|
"type": "integer",
|
|
7043
7081
|
"required": false,
|
|
7044
7082
|
"columnType": "INTEGER",
|
|
7045
|
-
"default": 0
|
|
7083
|
+
"default": 0,
|
|
7084
|
+
"description": "The order of this sequence within its video, counting from the start."
|
|
7046
7085
|
},
|
|
7047
7086
|
{
|
|
7048
7087
|
"name": "durationInFrames",
|
|
7049
7088
|
"type": "integer",
|
|
7050
7089
|
"required": false,
|
|
7051
7090
|
"columnType": "INTEGER",
|
|
7052
|
-
"default": 0
|
|
7091
|
+
"default": 0,
|
|
7092
|
+
"description": "How long the sequence runs in frames. It adds up from its shots."
|
|
7053
7093
|
},
|
|
7054
7094
|
{
|
|
7055
7095
|
"name": "transitionType",
|
|
7056
7096
|
"type": "text",
|
|
7057
7097
|
"required": false,
|
|
7058
7098
|
"columnType": "TEXT",
|
|
7059
|
-
"default": "none"
|
|
7099
|
+
"default": "none",
|
|
7100
|
+
"description": "How this sequence hands over to the next one: a straight cut, a fade, a slide or a wipe."
|
|
7060
7101
|
},
|
|
7061
7102
|
{
|
|
7062
7103
|
"name": "transitionDurationFrames",
|
|
7063
7104
|
"type": "integer",
|
|
7064
7105
|
"required": false,
|
|
7065
7106
|
"columnType": "INTEGER",
|
|
7066
|
-
"default": 0
|
|
7107
|
+
"default": 0,
|
|
7108
|
+
"description": "How many frames the hand-over to the next sequence overlaps."
|
|
7067
7109
|
}
|
|
7068
7110
|
],
|
|
7069
7111
|
"relationships": [
|
|
@@ -9597,7 +9639,8 @@
|
|
|
9597
9639
|
"name": "type",
|
|
9598
9640
|
"type": "text",
|
|
9599
9641
|
"required": false,
|
|
9600
|
-
"columnType": "TEXT"
|
|
9642
|
+
"columnType": "TEXT",
|
|
9643
|
+
"description": "What kind of piece this is, such as an article or a document."
|
|
9601
9644
|
},
|
|
9602
9645
|
{
|
|
9603
9646
|
"name": "variant",
|
|
@@ -9615,32 +9658,37 @@
|
|
|
9615
9658
|
"name": "author",
|
|
9616
9659
|
"type": "text",
|
|
9617
9660
|
"required": false,
|
|
9618
|
-
"columnType": "TEXT"
|
|
9661
|
+
"columnType": "TEXT",
|
|
9662
|
+
"description": "Who wrote this piece."
|
|
9619
9663
|
},
|
|
9620
9664
|
{
|
|
9621
9665
|
"name": "name",
|
|
9622
9666
|
"type": "text",
|
|
9623
9667
|
"required": true,
|
|
9624
9668
|
"columnType": "TEXT",
|
|
9625
|
-
"default": ""
|
|
9669
|
+
"default": "",
|
|
9670
|
+
"description": "A short name used to find this piece in lists."
|
|
9626
9671
|
},
|
|
9627
9672
|
{
|
|
9628
9673
|
"name": "title",
|
|
9629
9674
|
"type": "text",
|
|
9630
9675
|
"required": false,
|
|
9631
|
-
"columnType": "TEXT"
|
|
9676
|
+
"columnType": "TEXT",
|
|
9677
|
+
"description": "The headline readers see."
|
|
9632
9678
|
},
|
|
9633
9679
|
{
|
|
9634
9680
|
"name": "description",
|
|
9635
9681
|
"type": "text",
|
|
9636
9682
|
"required": false,
|
|
9637
|
-
"columnType": "TEXT"
|
|
9683
|
+
"columnType": "TEXT",
|
|
9684
|
+
"description": "A one or two sentence summary of the piece."
|
|
9638
9685
|
},
|
|
9639
9686
|
{
|
|
9640
9687
|
"name": "body",
|
|
9641
9688
|
"type": "text",
|
|
9642
9689
|
"required": false,
|
|
9643
|
-
"columnType": "TEXT"
|
|
9690
|
+
"columnType": "TEXT",
|
|
9691
|
+
"description": "The full text of the piece."
|
|
9644
9692
|
},
|
|
9645
9693
|
{
|
|
9646
9694
|
"name": "bodyFormat",
|
|
@@ -9652,7 +9700,8 @@
|
|
|
9652
9700
|
"name": "publish_date",
|
|
9653
9701
|
"type": "datetime",
|
|
9654
9702
|
"required": false,
|
|
9655
|
-
"columnType": "TIMESTAMP"
|
|
9703
|
+
"columnType": "TIMESTAMP",
|
|
9704
|
+
"description": "The date the piece went out, or is due to go out."
|
|
9656
9705
|
},
|
|
9657
9706
|
{
|
|
9658
9707
|
"name": "url",
|
|
@@ -9683,20 +9732,23 @@
|
|
|
9683
9732
|
"type": "json",
|
|
9684
9733
|
"required": false,
|
|
9685
9734
|
"columnType": "JSON",
|
|
9686
|
-
"default": []
|
|
9735
|
+
"default": [],
|
|
9736
|
+
"description": "Words that group pieces by subject."
|
|
9687
9737
|
},
|
|
9688
9738
|
{
|
|
9689
9739
|
"name": "category",
|
|
9690
9740
|
"type": "text",
|
|
9691
9741
|
"required": false,
|
|
9692
|
-
"columnType": "TEXT"
|
|
9742
|
+
"columnType": "TEXT",
|
|
9743
|
+
"description": "The one section the piece belongs to, such as news or local."
|
|
9693
9744
|
},
|
|
9694
9745
|
{
|
|
9695
9746
|
"name": "status",
|
|
9696
9747
|
"type": "text",
|
|
9697
9748
|
"required": false,
|
|
9698
9749
|
"columnType": "TEXT",
|
|
9699
|
-
"default": "draft"
|
|
9750
|
+
"default": "draft",
|
|
9751
|
+
"description": "Where the piece stands: draft, in review, published or archived."
|
|
9700
9752
|
},
|
|
9701
9753
|
{
|
|
9702
9754
|
"name": "state",
|
|
@@ -9724,28 +9776,32 @@
|
|
|
9724
9776
|
"type": "foreignKey",
|
|
9725
9777
|
"required": false,
|
|
9726
9778
|
"related": "VideoSequence",
|
|
9727
|
-
"columnType": "UUID"
|
|
9779
|
+
"columnType": "UUID",
|
|
9780
|
+
"description": "The sequence this shot belongs to."
|
|
9728
9781
|
},
|
|
9729
9782
|
{
|
|
9730
9783
|
"name": "sceneId",
|
|
9731
9784
|
"type": "foreignKey",
|
|
9732
9785
|
"required": false,
|
|
9733
9786
|
"related": "Scene",
|
|
9734
|
-
"columnType": "UUID"
|
|
9787
|
+
"columnType": "UUID",
|
|
9788
|
+
"description": "The background scene this shot is filmed in."
|
|
9735
9789
|
},
|
|
9736
9790
|
{
|
|
9737
9791
|
"name": "position",
|
|
9738
9792
|
"type": "integer",
|
|
9739
9793
|
"required": false,
|
|
9740
9794
|
"columnType": "INTEGER",
|
|
9741
|
-
"default": 0
|
|
9795
|
+
"default": 0,
|
|
9796
|
+
"description": "The order of this shot within its sequence, counting from the start."
|
|
9742
9797
|
},
|
|
9743
9798
|
{
|
|
9744
9799
|
"name": "durationInFrames",
|
|
9745
9800
|
"type": "integer",
|
|
9746
9801
|
"required": false,
|
|
9747
9802
|
"columnType": "INTEGER",
|
|
9748
|
-
"default": 0
|
|
9803
|
+
"default": 0,
|
|
9804
|
+
"description": "How long the finished clip runs in frames."
|
|
9749
9805
|
},
|
|
9750
9806
|
{
|
|
9751
9807
|
"name": "trimBeforeFrames",
|
|
@@ -9766,7 +9822,8 @@
|
|
|
9766
9822
|
"type": "text",
|
|
9767
9823
|
"required": false,
|
|
9768
9824
|
"columnType": "TEXT",
|
|
9769
|
-
"default": ""
|
|
9825
|
+
"default": "",
|
|
9826
|
+
"description": "The words spoken in this shot."
|
|
9770
9827
|
},
|
|
9771
9828
|
{
|
|
9772
9829
|
"name": "scriptWordCount",
|
|
@@ -9780,14 +9837,16 @@
|
|
|
9780
9837
|
"type": "integer",
|
|
9781
9838
|
"required": false,
|
|
9782
9839
|
"columnType": "INTEGER",
|
|
9783
|
-
"default": 30
|
|
9840
|
+
"default": 30,
|
|
9841
|
+
"description": "How long you want the shot to be, in seconds."
|
|
9784
9842
|
},
|
|
9785
9843
|
{
|
|
9786
9844
|
"name": "shotStatus",
|
|
9787
9845
|
"type": "text",
|
|
9788
9846
|
"required": false,
|
|
9789
9847
|
"columnType": "TEXT",
|
|
9790
|
-
"default": "draft"
|
|
9848
|
+
"default": "draft",
|
|
9849
|
+
"description": "Where the shot stands: draft, queued, processing, ready, failed or published."
|
|
9791
9850
|
},
|
|
9792
9851
|
{
|
|
9793
9852
|
"name": "progress",
|
|
@@ -14849,7 +14908,515 @@
|
|
|
14849
14908
|
"polymorphicAssociations": 0,
|
|
14850
14909
|
"uuidColumns": 189
|
|
14851
14910
|
},
|
|
14852
|
-
"agentDoc": "# @happyvertical/smrt-video\n\nAI video production pipeline: characters, performers, scenes, shots, sequences, compositions, and ComfyUI workflow integration.\n\n## Models\n\n- **Character** (renamed from PersonalityProfile): visual + voice identity. `imageAssetId`, `voiceProfileId` FK, branding config (logo, colors, fonts, lower-thirds). Scene-specific position/scale configs.\n- **Performer**: physical likeness for IP-Adapter FaceID. `faceEmbedding` (512-dim), `referenceAssetIds`, `ipAdapterWeight`.\n- **Scene**: virtual background. `sourceType` (image/video/panorama_360/panorama_180), `projection`, `viewpoints` array (pan/tilt/fov), `lightingProfile`, `anchorPoints`.\n- **VideoShot** (extends Content): atomic generation unit. `durationInFrames`, `scriptText`, `scriptWordCount`. Estimated duration: `scriptWordCount / 2.7` words/sec (±15% tolerance). `videoMetadata` includes `wordTimings` for lip-sync.\n- **VideoSequence** (extends Content): thematic section with `transitionType` (none/fade/slide/wipe), position ordering.\n- **VideoComposition** (extends Content): top-level container — `fps`, `width`, `height`, `durationInFrames`, `renderStatus`/`renderProgress`.\n- **VideoShotCharacter**: junction (shot ↔ character) with role (primary/secondary/background), position, duration.\n- **VideoWorkflow**: ComfyUI template. `workflowJson`, `nodeMapping` (maps semantic names → node IDs), `workflowType` (prebake/broadcast/lipsync/postprod/custom). `injectParameters()` deep-clones workflow + overwrites `node.inputs`.\n\n## Design Principles\n\n- **Store frames, compute seconds**: `durationInFrames` everywhere; seconds = frames / fps\n- **Content inheritance**: VideoShot, VideoSequence, VideoComposition all extend Content from smrt-content\n- **Hierarchy**: Composition → Sequence → Shot → ShotCharacter\n- **Owned asset normalization**: `CharacterOwnedAsset`, `PerformerOwnedAsset`, and `SceneOwnedAsset` are canonical noun joins; `VideoShot`/`VideoSequence`/`VideoComposition` use inherited `content_assets`\n\n## Gotchas\n\n- **PersonalityProfile → Character rename**: old name still exported for backwards compatibility\n- **Legacy video STI asset rows**: reads still union canonical joins with legacy STI asset records during migration, but new writes go through the model helpers / join tables\n- **Schema rollout**: run `smrt db:migrate` before relying on `character_assets` / `performer_assets` / `scene_assets` writes; reads still tolerate those tables being absent during migration\n- **ComfyUI injectParameters()**: assumes `node.inputs` exists; warnings logged in dev mode\n- **Frame arithmetic**: `trimBeforeFrames`/`trimAfterFrames` require manual effective frame calculation\n- **Word timings from external TTS**: `wordTimings` array not generated by framework — requires external provider\n- **IP-Adapter weights**: `faceEmbedding` upload not handled; weight is metadata-only (0.5-1.0)\n- **Optional tenancy** on all core models\n",
|
|
14911
|
+
"agentDoc": "# @happyvertical/smrt-video\n\nAI video production pipeline: characters, performers, scenes, shots, sequences, compositions, and ComfyUI workflow integration.\n\n## Models\n\n- **Character** (renamed from PersonalityProfile): visual + voice identity. `imageAssetId`, `voiceProfileId` FK, branding config (logo, colors, fonts, lower-thirds). Scene-specific position/scale configs.\n- **Performer**: physical likeness for IP-Adapter FaceID. `faceEmbedding` (512-dim), `referenceAssetIds`, `ipAdapterWeight`.\n- **Scene**: virtual background. `sourceType` (image/video/panorama_360/panorama_180), `projection`, `viewpoints` array (pan/tilt/fov), `lightingProfile`, `anchorPoints`.\n- **VideoShot** (extends Content): atomic generation unit. `durationInFrames`, `scriptText`, `scriptWordCount`. Estimated duration: `scriptWordCount / 2.7` words/sec (±15% tolerance). `videoMetadata` includes `wordTimings` for lip-sync.\n- **VideoSequence** (extends Content): thematic section with `transitionType` (none/fade/slide/wipe), position ordering.\n- **VideoComposition** (extends Content): top-level container — `fps`, `width`, `height`, `durationInFrames`, `renderStatus`/`renderProgress`.\n- **VideoShotCharacter**: junction (shot ↔ character) with role (primary/secondary/background), position, duration.\n- **VideoWorkflow**: ComfyUI template. `workflowJson`, `nodeMapping` (maps semantic names → node IDs), `workflowType` (prebake/broadcast/lipsync/postprod/custom). `injectParameters()` deep-clones workflow + overwrites `node.inputs`.\n- **Recipe `video.library`** (`src/recipes.ts`, help in `src/library.recipe.md`): lists videos, sequences, shots, characters and scenes for the planner and other catalog hosts. Fields it shows carry `@field({ description })` in plain words; keep them when editing the models. Performer, VideoWorkflow, CompositeJob and the owned-asset joins are left out on purpose.\n\n## Design Principles\n\n- **Store frames, compute seconds**: `durationInFrames` everywhere; seconds = frames / fps\n- **Content inheritance**: VideoShot, VideoSequence, VideoComposition all extend Content from smrt-content\n- **Hierarchy**: Composition → Sequence → Shot → ShotCharacter\n- **Owned asset normalization**: `CharacterOwnedAsset`, `PerformerOwnedAsset`, and `SceneOwnedAsset` are canonical noun joins; `VideoShot`/`VideoSequence`/`VideoComposition` use inherited `content_assets`\n\n## Gotchas\n\n- **PersonalityProfile → Character rename**: old name still exported for backwards compatibility\n- **Legacy video STI asset rows**: reads still union canonical joins with legacy STI asset records during migration, but new writes go through the model helpers / join tables\n- **Schema rollout**: run `smrt db:migrate` before relying on `character_assets` / `performer_assets` / `scene_assets` writes; reads still tolerate those tables being absent during migration\n- **ComfyUI injectParameters()**: assumes `node.inputs` exists; warnings logged in dev mode\n- **Frame arithmetic**: `trimBeforeFrames`/`trimAfterFrames` require manual effective frame calculation\n- **Word timings from external TTS**: `wordTimings` array not generated by framework — requires external provider\n- **IP-Adapter weights**: `faceEmbedding` upload not handled; weight is metadata-only (0.5-1.0)\n- **Optional tenancy** on all core models\n",
|
|
14912
|
+
"recipes": [
|
|
14913
|
+
{
|
|
14914
|
+
"id": "video.library",
|
|
14915
|
+
"className": "VideoLibraryRecipe",
|
|
14916
|
+
"label": "Video",
|
|
14917
|
+
"summary": "Plan each video as sequences and shots, with the characters and scenes that appear in it.",
|
|
14918
|
+
"synonyms": [
|
|
14919
|
+
"videos",
|
|
14920
|
+
"video production",
|
|
14921
|
+
"video scripts",
|
|
14922
|
+
"shots",
|
|
14923
|
+
"storyboard",
|
|
14924
|
+
"characters and scenes"
|
|
14925
|
+
],
|
|
14926
|
+
"models": [
|
|
14927
|
+
"@happyvertical/smrt-video:VideoComposition",
|
|
14928
|
+
"@happyvertical/smrt-video:VideoSequence",
|
|
14929
|
+
"@happyvertical/smrt-video:VideoShot",
|
|
14930
|
+
"@happyvertical/smrt-video:Character",
|
|
14931
|
+
"@happyvertical/smrt-video:Scene"
|
|
14932
|
+
],
|
|
14933
|
+
"nav": [
|
|
14934
|
+
{
|
|
14935
|
+
"label": "Videos",
|
|
14936
|
+
"model": "@happyvertical/smrt-video:VideoComposition",
|
|
14937
|
+
"icon": "layers",
|
|
14938
|
+
"description": "Each finished video you are putting together.",
|
|
14939
|
+
"noun": "video"
|
|
14940
|
+
},
|
|
14941
|
+
{
|
|
14942
|
+
"label": "Sequences",
|
|
14943
|
+
"model": "@happyvertical/smrt-video:VideoSequence",
|
|
14944
|
+
"icon": "folder",
|
|
14945
|
+
"description": "The parts of a video, in the order they play.",
|
|
14946
|
+
"noun": "sequence"
|
|
14947
|
+
},
|
|
14948
|
+
{
|
|
14949
|
+
"label": "Shots",
|
|
14950
|
+
"model": "@happyvertical/smrt-video:VideoShot",
|
|
14951
|
+
"icon": "fileText",
|
|
14952
|
+
"description": "Each clip in a sequence, with the words spoken in it.",
|
|
14953
|
+
"noun": "shot"
|
|
14954
|
+
},
|
|
14955
|
+
{
|
|
14956
|
+
"label": "Characters",
|
|
14957
|
+
"model": "@happyvertical/smrt-video:Character",
|
|
14958
|
+
"icon": "users",
|
|
14959
|
+
"description": "The on-screen presenters, with their look and voice.",
|
|
14960
|
+
"noun": "character"
|
|
14961
|
+
},
|
|
14962
|
+
{
|
|
14963
|
+
"label": "Scenes",
|
|
14964
|
+
"model": "@happyvertical/smrt-video:Scene",
|
|
14965
|
+
"icon": "home",
|
|
14966
|
+
"description": "The backgrounds your characters appear in front of.",
|
|
14967
|
+
"noun": "scene"
|
|
14968
|
+
}
|
|
14969
|
+
],
|
|
14970
|
+
"requires": [],
|
|
14971
|
+
"section": {
|
|
14972
|
+
"id": "publish",
|
|
14973
|
+
"label": "Publish",
|
|
14974
|
+
"icon": "fileText",
|
|
14975
|
+
"description": "What you write, record and put out."
|
|
14976
|
+
},
|
|
14977
|
+
"options": {
|
|
14978
|
+
"@happyvertical/smrt-video:VideoComposition": {
|
|
14979
|
+
"fields": {
|
|
14980
|
+
"name": {
|
|
14981
|
+
"order": 1
|
|
14982
|
+
},
|
|
14983
|
+
"description": {
|
|
14984
|
+
"order": 2
|
|
14985
|
+
},
|
|
14986
|
+
"fps": {
|
|
14987
|
+
"label": "Frames per second",
|
|
14988
|
+
"order": 3
|
|
14989
|
+
},
|
|
14990
|
+
"width": {
|
|
14991
|
+
"order": 4
|
|
14992
|
+
},
|
|
14993
|
+
"height": {
|
|
14994
|
+
"order": 5
|
|
14995
|
+
},
|
|
14996
|
+
"durationInFrames": {
|
|
14997
|
+
"label": "Length in frames",
|
|
14998
|
+
"order": 6
|
|
14999
|
+
},
|
|
15000
|
+
"renderStatus": {
|
|
15001
|
+
"label": "Render status",
|
|
15002
|
+
"order": 7
|
|
15003
|
+
},
|
|
15004
|
+
"renderProgress": {
|
|
15005
|
+
"label": "Render progress",
|
|
15006
|
+
"order": 8
|
|
15007
|
+
},
|
|
15008
|
+
"title": {
|
|
15009
|
+
"visibility": "advanced"
|
|
15010
|
+
},
|
|
15011
|
+
"body": {
|
|
15012
|
+
"label": "Notes",
|
|
15013
|
+
"visibility": "advanced"
|
|
15014
|
+
},
|
|
15015
|
+
"author": {
|
|
15016
|
+
"visibility": "advanced"
|
|
15017
|
+
},
|
|
15018
|
+
"publish_date": {
|
|
15019
|
+
"label": "Publish date",
|
|
15020
|
+
"visibility": "advanced"
|
|
15021
|
+
},
|
|
15022
|
+
"url": {
|
|
15023
|
+
"label": "Web address",
|
|
15024
|
+
"visibility": "advanced"
|
|
15025
|
+
},
|
|
15026
|
+
"language": {
|
|
15027
|
+
"visibility": "advanced"
|
|
15028
|
+
},
|
|
15029
|
+
"tags": {
|
|
15030
|
+
"visibility": "advanced"
|
|
15031
|
+
},
|
|
15032
|
+
"category": {
|
|
15033
|
+
"visibility": "advanced"
|
|
15034
|
+
},
|
|
15035
|
+
"status": {
|
|
15036
|
+
"label": "Publishing status",
|
|
15037
|
+
"visibility": "advanced"
|
|
15038
|
+
},
|
|
15039
|
+
"thumbnailAssetId": {
|
|
15040
|
+
"label": "Thumbnail",
|
|
15041
|
+
"visibility": "advanced"
|
|
15042
|
+
},
|
|
15043
|
+
"tenantId": {
|
|
15044
|
+
"visibility": "hidden"
|
|
15045
|
+
},
|
|
15046
|
+
"type": {
|
|
15047
|
+
"visibility": "hidden"
|
|
15048
|
+
},
|
|
15049
|
+
"variant": {
|
|
15050
|
+
"visibility": "hidden"
|
|
15051
|
+
},
|
|
15052
|
+
"fileKey": {
|
|
15053
|
+
"visibility": "hidden"
|
|
15054
|
+
},
|
|
15055
|
+
"bodyFormat": {
|
|
15056
|
+
"visibility": "hidden"
|
|
15057
|
+
},
|
|
15058
|
+
"source": {
|
|
15059
|
+
"visibility": "hidden"
|
|
15060
|
+
},
|
|
15061
|
+
"original_url": {
|
|
15062
|
+
"visibility": "hidden"
|
|
15063
|
+
},
|
|
15064
|
+
"state": {
|
|
15065
|
+
"visibility": "hidden"
|
|
15066
|
+
},
|
|
15067
|
+
"metadata": {
|
|
15068
|
+
"visibility": "hidden"
|
|
15069
|
+
}
|
|
15070
|
+
}
|
|
15071
|
+
},
|
|
15072
|
+
"@happyvertical/smrt-video:VideoSequence": {
|
|
15073
|
+
"fields": {
|
|
15074
|
+
"name": {
|
|
15075
|
+
"order": 1
|
|
15076
|
+
},
|
|
15077
|
+
"compositionId": {
|
|
15078
|
+
"label": "Video",
|
|
15079
|
+
"order": 2
|
|
15080
|
+
},
|
|
15081
|
+
"position": {
|
|
15082
|
+
"label": "Order",
|
|
15083
|
+
"order": 3
|
|
15084
|
+
},
|
|
15085
|
+
"description": {
|
|
15086
|
+
"order": 4
|
|
15087
|
+
},
|
|
15088
|
+
"durationInFrames": {
|
|
15089
|
+
"label": "Length in frames",
|
|
15090
|
+
"order": 5
|
|
15091
|
+
},
|
|
15092
|
+
"transitionType": {
|
|
15093
|
+
"label": "Transition to next",
|
|
15094
|
+
"order": 6
|
|
15095
|
+
},
|
|
15096
|
+
"transitionDurationFrames": {
|
|
15097
|
+
"label": "Transition length in frames",
|
|
15098
|
+
"visibility": "advanced"
|
|
15099
|
+
},
|
|
15100
|
+
"title": {
|
|
15101
|
+
"visibility": "advanced"
|
|
15102
|
+
},
|
|
15103
|
+
"body": {
|
|
15104
|
+
"label": "Notes",
|
|
15105
|
+
"visibility": "advanced"
|
|
15106
|
+
},
|
|
15107
|
+
"author": {
|
|
15108
|
+
"visibility": "advanced"
|
|
15109
|
+
},
|
|
15110
|
+
"publish_date": {
|
|
15111
|
+
"label": "Publish date",
|
|
15112
|
+
"visibility": "advanced"
|
|
15113
|
+
},
|
|
15114
|
+
"url": {
|
|
15115
|
+
"label": "Web address",
|
|
15116
|
+
"visibility": "advanced"
|
|
15117
|
+
},
|
|
15118
|
+
"language": {
|
|
15119
|
+
"visibility": "advanced"
|
|
15120
|
+
},
|
|
15121
|
+
"tags": {
|
|
15122
|
+
"visibility": "advanced"
|
|
15123
|
+
},
|
|
15124
|
+
"category": {
|
|
15125
|
+
"visibility": "advanced"
|
|
15126
|
+
},
|
|
15127
|
+
"status": {
|
|
15128
|
+
"label": "Publishing status",
|
|
15129
|
+
"visibility": "advanced"
|
|
15130
|
+
},
|
|
15131
|
+
"thumbnailAssetId": {
|
|
15132
|
+
"label": "Thumbnail",
|
|
15133
|
+
"visibility": "advanced"
|
|
15134
|
+
},
|
|
15135
|
+
"tenantId": {
|
|
15136
|
+
"visibility": "hidden"
|
|
15137
|
+
},
|
|
15138
|
+
"type": {
|
|
15139
|
+
"visibility": "hidden"
|
|
15140
|
+
},
|
|
15141
|
+
"variant": {
|
|
15142
|
+
"visibility": "hidden"
|
|
15143
|
+
},
|
|
15144
|
+
"fileKey": {
|
|
15145
|
+
"visibility": "hidden"
|
|
15146
|
+
},
|
|
15147
|
+
"bodyFormat": {
|
|
15148
|
+
"visibility": "hidden"
|
|
15149
|
+
},
|
|
15150
|
+
"source": {
|
|
15151
|
+
"visibility": "hidden"
|
|
15152
|
+
},
|
|
15153
|
+
"original_url": {
|
|
15154
|
+
"visibility": "hidden"
|
|
15155
|
+
},
|
|
15156
|
+
"state": {
|
|
15157
|
+
"visibility": "hidden"
|
|
15158
|
+
},
|
|
15159
|
+
"metadata": {
|
|
15160
|
+
"visibility": "hidden"
|
|
15161
|
+
}
|
|
15162
|
+
}
|
|
15163
|
+
},
|
|
15164
|
+
"@happyvertical/smrt-video:VideoShot": {
|
|
15165
|
+
"fields": {
|
|
15166
|
+
"name": {
|
|
15167
|
+
"order": 1
|
|
15168
|
+
},
|
|
15169
|
+
"sequenceId": {
|
|
15170
|
+
"label": "Sequence",
|
|
15171
|
+
"order": 2
|
|
15172
|
+
},
|
|
15173
|
+
"position": {
|
|
15174
|
+
"label": "Order",
|
|
15175
|
+
"order": 3
|
|
15176
|
+
},
|
|
15177
|
+
"scriptText": {
|
|
15178
|
+
"label": "Script",
|
|
15179
|
+
"order": 4
|
|
15180
|
+
},
|
|
15181
|
+
"sceneId": {
|
|
15182
|
+
"label": "Scene",
|
|
15183
|
+
"order": 5
|
|
15184
|
+
},
|
|
15185
|
+
"targetDuration": {
|
|
15186
|
+
"label": "Target length in seconds",
|
|
15187
|
+
"order": 6
|
|
15188
|
+
},
|
|
15189
|
+
"durationInFrames": {
|
|
15190
|
+
"label": "Length in frames",
|
|
15191
|
+
"order": 7
|
|
15192
|
+
},
|
|
15193
|
+
"shotStatus": {
|
|
15194
|
+
"label": "Status",
|
|
15195
|
+
"order": 8
|
|
15196
|
+
},
|
|
15197
|
+
"description": {
|
|
15198
|
+
"visibility": "advanced"
|
|
15199
|
+
},
|
|
15200
|
+
"progress": {
|
|
15201
|
+
"visibility": "advanced"
|
|
15202
|
+
},
|
|
15203
|
+
"statusMessage": {
|
|
15204
|
+
"label": "Status message",
|
|
15205
|
+
"visibility": "advanced"
|
|
15206
|
+
},
|
|
15207
|
+
"errorMessage": {
|
|
15208
|
+
"label": "Error message",
|
|
15209
|
+
"visibility": "advanced"
|
|
15210
|
+
},
|
|
15211
|
+
"scriptWordCount": {
|
|
15212
|
+
"label": "Words in script",
|
|
15213
|
+
"visibility": "advanced"
|
|
15214
|
+
},
|
|
15215
|
+
"trimBeforeFrames": {
|
|
15216
|
+
"label": "Trim from start in frames",
|
|
15217
|
+
"visibility": "advanced"
|
|
15218
|
+
},
|
|
15219
|
+
"trimAfterFrames": {
|
|
15220
|
+
"label": "Trim from end in frames",
|
|
15221
|
+
"visibility": "advanced"
|
|
15222
|
+
},
|
|
15223
|
+
"videoMetadata": {
|
|
15224
|
+
"visibility": "hidden"
|
|
15225
|
+
},
|
|
15226
|
+
"title": {
|
|
15227
|
+
"visibility": "advanced"
|
|
15228
|
+
},
|
|
15229
|
+
"body": {
|
|
15230
|
+
"label": "Notes",
|
|
15231
|
+
"visibility": "advanced"
|
|
15232
|
+
},
|
|
15233
|
+
"author": {
|
|
15234
|
+
"visibility": "advanced"
|
|
15235
|
+
},
|
|
15236
|
+
"publish_date": {
|
|
15237
|
+
"label": "Publish date",
|
|
15238
|
+
"visibility": "advanced"
|
|
15239
|
+
},
|
|
15240
|
+
"url": {
|
|
15241
|
+
"label": "Web address",
|
|
15242
|
+
"visibility": "advanced"
|
|
15243
|
+
},
|
|
15244
|
+
"language": {
|
|
15245
|
+
"visibility": "advanced"
|
|
15246
|
+
},
|
|
15247
|
+
"tags": {
|
|
15248
|
+
"visibility": "advanced"
|
|
15249
|
+
},
|
|
15250
|
+
"category": {
|
|
15251
|
+
"visibility": "advanced"
|
|
15252
|
+
},
|
|
15253
|
+
"status": {
|
|
15254
|
+
"label": "Publishing status",
|
|
15255
|
+
"visibility": "advanced"
|
|
15256
|
+
},
|
|
15257
|
+
"thumbnailAssetId": {
|
|
15258
|
+
"label": "Thumbnail",
|
|
15259
|
+
"visibility": "advanced"
|
|
15260
|
+
},
|
|
15261
|
+
"tenantId": {
|
|
15262
|
+
"visibility": "hidden"
|
|
15263
|
+
},
|
|
15264
|
+
"type": {
|
|
15265
|
+
"visibility": "hidden"
|
|
15266
|
+
},
|
|
15267
|
+
"variant": {
|
|
15268
|
+
"visibility": "hidden"
|
|
15269
|
+
},
|
|
15270
|
+
"fileKey": {
|
|
15271
|
+
"visibility": "hidden"
|
|
15272
|
+
},
|
|
15273
|
+
"bodyFormat": {
|
|
15274
|
+
"visibility": "hidden"
|
|
15275
|
+
},
|
|
15276
|
+
"source": {
|
|
15277
|
+
"visibility": "hidden"
|
|
15278
|
+
},
|
|
15279
|
+
"original_url": {
|
|
15280
|
+
"visibility": "hidden"
|
|
15281
|
+
},
|
|
15282
|
+
"state": {
|
|
15283
|
+
"visibility": "hidden"
|
|
15284
|
+
},
|
|
15285
|
+
"metadata": {
|
|
15286
|
+
"visibility": "hidden"
|
|
15287
|
+
}
|
|
15288
|
+
}
|
|
15289
|
+
},
|
|
15290
|
+
"@happyvertical/smrt-video:Character": {
|
|
15291
|
+
"fields": {
|
|
15292
|
+
"name": {
|
|
15293
|
+
"order": 1
|
|
15294
|
+
},
|
|
15295
|
+
"description": {
|
|
15296
|
+
"order": 2
|
|
15297
|
+
},
|
|
15298
|
+
"imageAssetId": {
|
|
15299
|
+
"label": "Picture",
|
|
15300
|
+
"order": 3
|
|
15301
|
+
},
|
|
15302
|
+
"voiceProfileId": {
|
|
15303
|
+
"label": "Voice",
|
|
15304
|
+
"order": 4
|
|
15305
|
+
},
|
|
15306
|
+
"defaultSceneId": {
|
|
15307
|
+
"label": "Usual scene",
|
|
15308
|
+
"order": 5
|
|
15309
|
+
},
|
|
15310
|
+
"status": {
|
|
15311
|
+
"order": 6
|
|
15312
|
+
},
|
|
15313
|
+
"performerId": {
|
|
15314
|
+
"label": "Performer",
|
|
15315
|
+
"visibility": "advanced"
|
|
15316
|
+
},
|
|
15317
|
+
"baseMotionAssetId": {
|
|
15318
|
+
"label": "Base motion video",
|
|
15319
|
+
"visibility": "advanced"
|
|
15320
|
+
},
|
|
15321
|
+
"profileId": {
|
|
15322
|
+
"label": "Profile",
|
|
15323
|
+
"visibility": "advanced"
|
|
15324
|
+
},
|
|
15325
|
+
"brandingKit": {
|
|
15326
|
+
"visibility": "hidden"
|
|
15327
|
+
},
|
|
15328
|
+
"sceneConfigs": {
|
|
15329
|
+
"visibility": "hidden"
|
|
15330
|
+
},
|
|
15331
|
+
"tenantId": {
|
|
15332
|
+
"visibility": "hidden"
|
|
15333
|
+
}
|
|
15334
|
+
}
|
|
15335
|
+
},
|
|
15336
|
+
"@happyvertical/smrt-video:Scene": {
|
|
15337
|
+
"fields": {
|
|
15338
|
+
"name": {
|
|
15339
|
+
"order": 1
|
|
15340
|
+
},
|
|
15341
|
+
"description": {
|
|
15342
|
+
"order": 2
|
|
15343
|
+
},
|
|
15344
|
+
"sourceType": {
|
|
15345
|
+
"label": "Kind of background",
|
|
15346
|
+
"order": 3
|
|
15347
|
+
},
|
|
15348
|
+
"sourceAssetId": {
|
|
15349
|
+
"label": "Background picture or video",
|
|
15350
|
+
"order": 4
|
|
15351
|
+
},
|
|
15352
|
+
"status": {
|
|
15353
|
+
"order": 5
|
|
15354
|
+
},
|
|
15355
|
+
"projection": {
|
|
15356
|
+
"visibility": "advanced"
|
|
15357
|
+
},
|
|
15358
|
+
"location": {
|
|
15359
|
+
"visibility": "hidden"
|
|
15360
|
+
},
|
|
15361
|
+
"viewpoints": {
|
|
15362
|
+
"visibility": "hidden"
|
|
15363
|
+
},
|
|
15364
|
+
"lightingProfile": {
|
|
15365
|
+
"visibility": "hidden"
|
|
15366
|
+
},
|
|
15367
|
+
"anchorPoints": {
|
|
15368
|
+
"visibility": "hidden"
|
|
15369
|
+
},
|
|
15370
|
+
"tenantId": {
|
|
15371
|
+
"visibility": "hidden"
|
|
15372
|
+
}
|
|
15373
|
+
}
|
|
15374
|
+
}
|
|
15375
|
+
},
|
|
15376
|
+
"help": {
|
|
15377
|
+
"markdown": "## Overview\n\nVideo is where you plan a video before it is made. A video is built from\nsequences, the parts that play one after another, and each sequence is built\nfrom shots, the single clips with the words spoken in them. Characters are the\npresenters who appear on screen, each with a picture and a voice, and scenes\nare the backgrounds they stand in front of.\n\nYou write and arrange everything here. Making the clips and putting the\nfinished video together is done by a rendering service, so the screens show\nwhere each shot and video stands rather than letting you set that by hand.\n\n## Tasks\n\n### Start a new video\n\n1. Open the list of videos and choose **New**.\n2. Give it a **{field:VideoComposition.name}** and a short **{field:VideoComposition.description}**.\n3. Set the **{field:VideoComposition.fps}** and the picture size with **{field:VideoComposition.width}** and **{field:VideoComposition.height}**.\n4. Save. The **{field:VideoComposition.durationInFrames}** fills in as you add sequences, and **{field:VideoComposition.renderStatus}** shows whether the finished video is still a draft, being rendered, ready or failed.\n\n### Break a video into sequences\n\n1. Open the list of sequences and choose **New**.\n2. Give the sequence a **{field:VideoSequence.name}** and pick the **{field:VideoSequence.compositionId}** it belongs to.\n3. Set the **{field:VideoSequence.position}** so the sequences play in the order you want.\n4. Choose a **{field:VideoSequence.transitionType}** if you want a fade, slide or wipe into the next sequence instead of a straight cut.\n5. Save. The **{field:VideoSequence.durationInFrames}** adds up from the shots you put in it.\n\n### Write a shot\n\n1. Open the list of shots and choose **New**.\n2. Give the shot a **{field:VideoShot.name}**, then pick the **{field:VideoShot.sequenceId}** it belongs to and its **{field:VideoShot.position}** within it.\n3. Type the words to be spoken in **{field:VideoShot.scriptText}**.\n4. Pick the **{field:VideoShot.sceneId}** the shot is filmed in.\n5. Set the **{field:VideoShot.targetDuration}** you are aiming for. Roughly two to three words fill a second.\n6. Save. Once the clip is made, **{field:VideoShot.durationInFrames}** shows its real length and **{field:VideoShot.shotStatus}** shows where it stands.\n\n### Change or remove a shot\n\n1. Open the shot from the list of shots.\n2. Edit the **{field:VideoShot.scriptText}** or any other detail and save. Edit a sequence or a video the same way.\n3. To take a shot out, remove it. Removing a sequence or a video is done from its own list.\n\n### Add a character\n\n1. Open the list of characters and choose **New**.\n2. Give the character a **{field:Character.name}** and describe them in **{field:Character.description}**.\n3. Choose the **{field:Character.imageAssetId}** they are built from and the **{field:Character.voiceProfileId}** they speak with.\n4. Pick the **{field:Character.defaultSceneId}** they usually appear in.\n5. Save. **{field:Character.status}** shows when the character is ready to use in shots.\n\n### Add a scene\n\n1. Open the list of scenes and choose **New**.\n2. Give the scene a **{field:Scene.name}** and say what it shows in **{field:Scene.description}**.\n3. Choose the **{field:Scene.sourceType}** and pick the **{field:Scene.sourceAssetId}** it is made from.\n4. Save. **{field:Scene.status}** shows when the scene is ready to be used in shots.\n",
|
|
15378
|
+
"fieldRefs": [
|
|
15379
|
+
"Character.defaultSceneId",
|
|
15380
|
+
"Character.description",
|
|
15381
|
+
"Character.imageAssetId",
|
|
15382
|
+
"Character.name",
|
|
15383
|
+
"Character.status",
|
|
15384
|
+
"Character.voiceProfileId",
|
|
15385
|
+
"Scene.description",
|
|
15386
|
+
"Scene.name",
|
|
15387
|
+
"Scene.sourceAssetId",
|
|
15388
|
+
"Scene.sourceType",
|
|
15389
|
+
"Scene.status",
|
|
15390
|
+
"VideoComposition.description",
|
|
15391
|
+
"VideoComposition.durationInFrames",
|
|
15392
|
+
"VideoComposition.fps",
|
|
15393
|
+
"VideoComposition.height",
|
|
15394
|
+
"VideoComposition.name",
|
|
15395
|
+
"VideoComposition.renderStatus",
|
|
15396
|
+
"VideoComposition.width",
|
|
15397
|
+
"VideoSequence.compositionId",
|
|
15398
|
+
"VideoSequence.durationInFrames",
|
|
15399
|
+
"VideoSequence.name",
|
|
15400
|
+
"VideoSequence.position",
|
|
15401
|
+
"VideoSequence.transitionType",
|
|
15402
|
+
"VideoShot.durationInFrames",
|
|
15403
|
+
"VideoShot.name",
|
|
15404
|
+
"VideoShot.position",
|
|
15405
|
+
"VideoShot.sceneId",
|
|
15406
|
+
"VideoShot.scriptText",
|
|
15407
|
+
"VideoShot.sequenceId",
|
|
15408
|
+
"VideoShot.shotStatus",
|
|
15409
|
+
"VideoShot.targetDuration"
|
|
15410
|
+
]
|
|
15411
|
+
},
|
|
15412
|
+
"demo": {
|
|
15413
|
+
"mode": "server",
|
|
15414
|
+
"reasons": [
|
|
15415
|
+
"Needs a server because its package does not build for a browser: documents/spider SDK graph; CJS parse error; and its package depends on @happyvertical/smrt-agents, @happyvertical/smrt-chat, @happyvertical/smrt-content, @happyvertical/smrt-images, @happyvertical/smrt-jobs, @happyvertical/smrt-profiles, @happyvertical/smrt-reports, @happyvertical/smrt-secrets, @happyvertical/smrt-tenancy, @happyvertical/smrt-users, @happyvertical/smrt-voice, which do not build for a browser (#3615, #3617, #3624, #3625, #3626, #3627, #3628)."
|
|
15416
|
+
]
|
|
15417
|
+
}
|
|
15418
|
+
}
|
|
15419
|
+
],
|
|
14853
15420
|
"browser": {
|
|
14854
15421
|
"status": "server-only",
|
|
14855
15422
|
"issues": [
|