faceless-cli 1.1.23 → 1.1.25
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/package.json +1 -1
- package/src/generated/operations.json +150 -1
- package/src/index.mjs +9 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"generatedFrom": "src/backend/api/v1/spec/registry.mjs",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.25",
|
|
4
4
|
"baseUrl": "https://faceless.so/api/v1",
|
|
5
5
|
"operations": [
|
|
6
6
|
{
|
|
@@ -944,6 +944,55 @@
|
|
|
944
944
|
"type": "string",
|
|
945
945
|
"description": "IANA timezone for scheduling, e.g. America/New_York"
|
|
946
946
|
},
|
|
947
|
+
"platformPostTimes": {
|
|
948
|
+
"anyOf": [
|
|
949
|
+
{
|
|
950
|
+
"type": "object",
|
|
951
|
+
"properties": {
|
|
952
|
+
"youtube": {
|
|
953
|
+
"type": "string",
|
|
954
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
955
|
+
"description": "\"HH:mm\" youtube posts at instead of autoPostTime"
|
|
956
|
+
},
|
|
957
|
+
"tiktok": {
|
|
958
|
+
"type": "string",
|
|
959
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
960
|
+
"description": "\"HH:mm\" tiktok posts at instead of autoPostTime"
|
|
961
|
+
},
|
|
962
|
+
"instagram": {
|
|
963
|
+
"type": "string",
|
|
964
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
965
|
+
"description": "\"HH:mm\" instagram posts at instead of autoPostTime"
|
|
966
|
+
},
|
|
967
|
+
"facebook": {
|
|
968
|
+
"type": "string",
|
|
969
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
970
|
+
"description": "\"HH:mm\" facebook posts at instead of autoPostTime"
|
|
971
|
+
},
|
|
972
|
+
"x": {
|
|
973
|
+
"type": "string",
|
|
974
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
975
|
+
"description": "\"HH:mm\" x posts at instead of autoPostTime"
|
|
976
|
+
},
|
|
977
|
+
"threads": {
|
|
978
|
+
"type": "string",
|
|
979
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
980
|
+
"description": "\"HH:mm\" threads posts at instead of autoPostTime"
|
|
981
|
+
},
|
|
982
|
+
"linkedin": {
|
|
983
|
+
"type": "string",
|
|
984
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
985
|
+
"description": "\"HH:mm\" linkedin posts at instead of autoPostTime"
|
|
986
|
+
}
|
|
987
|
+
},
|
|
988
|
+
"additionalProperties": false
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
"type": "null"
|
|
992
|
+
}
|
|
993
|
+
],
|
|
994
|
+
"description": "Post one platform at a different time of day, in the series timezone and on the same posting days, e.g. {\"youtube\":\"09:05\"}. Useful because YouTube's shared daily upload limit resets at midnight US Pacific. null clears it"
|
|
995
|
+
},
|
|
947
996
|
"captionStyle": {
|
|
948
997
|
"type": "string",
|
|
949
998
|
"description": "Caption theme name. Full list: GET /options?kind=captionThemes"
|
|
@@ -1211,6 +1260,55 @@
|
|
|
1211
1260
|
"type": "string",
|
|
1212
1261
|
"description": "IANA timezone for scheduling, e.g. America/New_York"
|
|
1213
1262
|
},
|
|
1263
|
+
"platformPostTimes": {
|
|
1264
|
+
"anyOf": [
|
|
1265
|
+
{
|
|
1266
|
+
"type": "object",
|
|
1267
|
+
"properties": {
|
|
1268
|
+
"youtube": {
|
|
1269
|
+
"type": "string",
|
|
1270
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
1271
|
+
"description": "\"HH:mm\" youtube posts at instead of autoPostTime"
|
|
1272
|
+
},
|
|
1273
|
+
"tiktok": {
|
|
1274
|
+
"type": "string",
|
|
1275
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
1276
|
+
"description": "\"HH:mm\" tiktok posts at instead of autoPostTime"
|
|
1277
|
+
},
|
|
1278
|
+
"instagram": {
|
|
1279
|
+
"type": "string",
|
|
1280
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
1281
|
+
"description": "\"HH:mm\" instagram posts at instead of autoPostTime"
|
|
1282
|
+
},
|
|
1283
|
+
"facebook": {
|
|
1284
|
+
"type": "string",
|
|
1285
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
1286
|
+
"description": "\"HH:mm\" facebook posts at instead of autoPostTime"
|
|
1287
|
+
},
|
|
1288
|
+
"x": {
|
|
1289
|
+
"type": "string",
|
|
1290
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
1291
|
+
"description": "\"HH:mm\" x posts at instead of autoPostTime"
|
|
1292
|
+
},
|
|
1293
|
+
"threads": {
|
|
1294
|
+
"type": "string",
|
|
1295
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
1296
|
+
"description": "\"HH:mm\" threads posts at instead of autoPostTime"
|
|
1297
|
+
},
|
|
1298
|
+
"linkedin": {
|
|
1299
|
+
"type": "string",
|
|
1300
|
+
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
|
|
1301
|
+
"description": "\"HH:mm\" linkedin posts at instead of autoPostTime"
|
|
1302
|
+
}
|
|
1303
|
+
},
|
|
1304
|
+
"additionalProperties": false
|
|
1305
|
+
},
|
|
1306
|
+
{
|
|
1307
|
+
"type": "null"
|
|
1308
|
+
}
|
|
1309
|
+
],
|
|
1310
|
+
"description": "Post one platform at a different time of day, in the series timezone and on the same posting days, e.g. {\"youtube\":\"09:05\"}. Useful because YouTube's shared daily upload limit resets at midnight US Pacific. null clears it"
|
|
1311
|
+
},
|
|
1214
1312
|
"captionStyle": {
|
|
1215
1313
|
"type": "string",
|
|
1216
1314
|
"description": "Caption theme name. Full list: GET /options?kind=captionThemes"
|
|
@@ -1578,6 +1676,57 @@
|
|
|
1578
1676
|
}
|
|
1579
1677
|
}
|
|
1580
1678
|
},
|
|
1679
|
+
{
|
|
1680
|
+
"operationId": "postNow",
|
|
1681
|
+
"method": "post",
|
|
1682
|
+
"path": "/posts/post-now",
|
|
1683
|
+
"resource": "posts",
|
|
1684
|
+
"summary": "Post a scheduled video now instead of at its scheduled time",
|
|
1685
|
+
"description": "Brings a scheduled video forward to now: every pending posting task of the video (and its render, if that is what is still waiting) moves to the current time and goes out within a minute or two, to every platform it was scheduled for. Works for videos scheduled with POST /posts/schedule and for series episodes waiting for their slot. It does not post a video that was never scheduled (use POST /posts), a video that still needs approval (409; approve it first), or an episode of a paused series (409; resume the series first). Returns 400 when nothing is pending.",
|
|
1686
|
+
"scopes": [
|
|
1687
|
+
"posts:write"
|
|
1688
|
+
],
|
|
1689
|
+
"status": 200,
|
|
1690
|
+
"idempotent": true,
|
|
1691
|
+
"terminalStates": null,
|
|
1692
|
+
"creditCost": "none",
|
|
1693
|
+
"cli": {
|
|
1694
|
+
"command": "posts now"
|
|
1695
|
+
},
|
|
1696
|
+
"mcp": {
|
|
1697
|
+
"name": "faceless_post_now",
|
|
1698
|
+
"enabled": true
|
|
1699
|
+
},
|
|
1700
|
+
"querySchema": null,
|
|
1701
|
+
"requestSchema": {
|
|
1702
|
+
"type": "object",
|
|
1703
|
+
"properties": {
|
|
1704
|
+
"videoId": {
|
|
1705
|
+
"type": "string",
|
|
1706
|
+
"pattern": "^[0-9a-fA-F]{24}$",
|
|
1707
|
+
"description": "The scheduled video (project) to post now"
|
|
1708
|
+
}
|
|
1709
|
+
},
|
|
1710
|
+
"required": [
|
|
1711
|
+
"videoId"
|
|
1712
|
+
],
|
|
1713
|
+
"additionalProperties": false
|
|
1714
|
+
},
|
|
1715
|
+
"requestExample": {
|
|
1716
|
+
"videoId": "665f1b2a9c31a2b3c4d5e801"
|
|
1717
|
+
},
|
|
1718
|
+
"responseExample": {
|
|
1719
|
+
"success": true,
|
|
1720
|
+
"data": {
|
|
1721
|
+
"videoId": "665f1b2a9c31a2b3c4d5e801",
|
|
1722
|
+
"taskIds": [
|
|
1723
|
+
"665f1b2a9c31a2b3c4d5ec01",
|
|
1724
|
+
"665f1b2a9c31a2b3c4d5ec02"
|
|
1725
|
+
],
|
|
1726
|
+
"scheduledTime": "2026-10-03T21:04:11.000Z"
|
|
1727
|
+
}
|
|
1728
|
+
}
|
|
1729
|
+
},
|
|
1581
1730
|
{
|
|
1582
1731
|
"operationId": "cancelPost",
|
|
1583
1732
|
"method": "delete",
|
package/src/index.mjs
CHANGED
|
@@ -591,6 +591,15 @@ posts
|
|
|
591
591
|
print(result, { json: cmd.optsWithGlobals().json });
|
|
592
592
|
});
|
|
593
593
|
|
|
594
|
+
posts
|
|
595
|
+
.command("now <videoId>")
|
|
596
|
+
.description(getOp("postNow").summary)
|
|
597
|
+
.option("--idempotency-key <k>", "Idempotency-Key header value")
|
|
598
|
+
.action(async (videoId, opts, cmd) => {
|
|
599
|
+
const result = await execute("postNow", { body: { videoId }, idempotencyKey: opts.idempotencyKey }, cmd);
|
|
600
|
+
print(result, { json: cmd.optsWithGlobals().json });
|
|
601
|
+
});
|
|
602
|
+
|
|
594
603
|
posts
|
|
595
604
|
.command("cancel <videoId>")
|
|
596
605
|
.description(getOp("cancelPost").summary)
|