faceless-cli 1.1.24 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "faceless-cli",
3
- "version": "1.1.24",
3
+ "version": "1.1.25",
4
4
  "description": "CLI for Faceless.so: create AI faceless videos, run automated series and publish to YouTube, TikTok, Instagram and more.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "generatedFrom": "src/backend/api/v1/spec/registry.mjs",
3
- "version": "1.1.24",
3
+ "version": "1.1.25",
4
4
  "baseUrl": "https://faceless.so/api/v1",
5
5
  "operations": [
6
6
  {
@@ -1676,6 +1676,57 @@
1676
1676
  }
1677
1677
  }
1678
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
+ },
1679
1730
  {
1680
1731
  "operationId": "cancelPost",
1681
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)