@spatius/cli 0.1.0-beta.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.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: spatius-video
3
+ description: Render downloadable Spatius avatar videos from audio and optional backgrounds using Spatius CLI. Use for local or URL media preparation, video submission, polling, safe resume, and MP4 download.
4
+ license: MIT
5
+ ---
6
+
7
+ # Render an avatar video
8
+
9
+ Use an existing permitted avatar ID, or create one with the avatar skill. Check
10
+ `spatius auth status` and `spatius schema videos create` before the workflow.
11
+ Studio login and Video API approval are separate requirements.
12
+
13
+ Use the supplied audio and optional background; the CLI does not synthesize
14
+ speech. Local files upload automatically. Supported audio includes WAV, MP3,
15
+ M4A/MP4 audio, AAC, and Ogg, up to 500 MiB. Backgrounds are JPEG, PNG, or WebP up
16
+ to 50 MiB. Raw PCM must first be wrapped correctly in WAV; changing its extension
17
+ does not convert it. For settings and lifetime details, read
18
+ [inputs and recovery](references/inputs-and-recovery.md).
19
+
20
+ ```sh
21
+ spatius videos create --avatar-id 00000000-0000-4000-8000-000000000001 --audio ./speech.wav --background ./background.png --dry-run
22
+ spatius videos create --avatar-id 00000000-0000-4000-8000-000000000001 --audio ./speech.wav --background ./background.png
23
+ ```
24
+
25
+ Replace the UUID and paths with the actual inputs. Save `operationId` and
26
+ `jobId`. The CLI saves a request UUID and resolved URLs before submission.
27
+ After interruption, use `spatius videos create --resume <operation-id>`;
28
+ do not rerun creation with fresh uploads or a new request UUID.
29
+
30
+ ```sh
31
+ spatius videos wait 00000000-0000-4000-8000-000000000001 --timeout 600
32
+ spatius videos download 00000000-0000-4000-8000-000000000001 --output ./video.mp4
33
+ ```
34
+
35
+ Replace the example job UUID with the returned one. Waiting polls every 15 seconds;
36
+ exit 3 means the job is still pending. Download obtains a fresh link and writes
37
+ the MP4 atomically. It refuses to replace an existing file unless `--force` is
38
+ explicitly supplied.
39
+
40
+ If a successful job's download-link refresh fails, retry the read/download.
41
+ A terminal `failed` or `expired` job does not restart. Explain its error and only
42
+ create another render when that is the intended next action. A saved operation
43
+ whose source URLs expired after an uncertain submission needs reconciliation,
44
+ not replacement inputs under the old request ID.
@@ -0,0 +1,35 @@
1
+ # Inputs, presentation, and recovery
2
+
3
+ | Setting | Default and allowed range |
4
+ | ------------------ | -------------------------------------------------------------- |
5
+ | Width / height | 1024 each; even integers 64–1920, total area ≤2,073,600 pixels |
6
+ | Fit | `crop`; `contain` also supported |
7
+ | Background color | `#000000`; six-digit RGB hex |
8
+ | Background fit | `cover`; `contain` or `stretch` also supported |
9
+ | Lead-in / lead-out | 0; each 0–60 seconds of additional idle time |
10
+
11
+ The service controls encoding. Transitions can make output longer than the
12
+ audio even with zero additional idle time. Audio decoding and duration checks
13
+ happen in the renderer.
14
+
15
+ Temporary uploads are immutable and available for 24 hours after completion.
16
+ External URLs must remain accessible throughout preparation, which can take
17
+ up to 30 minutes. Source hosts must serve a supported media Content-Type, not
18
+ `application/octet-stream`. Public HTTP(S) and signed URLs work; private-network
19
+ URLs and embedded username/password credentials do not.
20
+
21
+ Video retry identity includes its normalized request body. The same UUID with
22
+ different resolved URLs conflicts, even if the underlying local file is the same.
23
+ Resume preserves the exact request. Never refresh or replace those input URLs
24
+ after submission became uncertain. A terminal failure requires an intentional
25
+ new operation, not an automatic retry of the failed job.
26
+
27
+ Output is currently retained seven days after render submission; use the returned
28
+ `job.expiresAt`. Signed output links currently last up to 15 minutes, capped by
29
+ retention. `videos download` refreshes the link. Downloading or refreshing a link
30
+ does not extend output retention.
31
+
32
+ Downloads require a direct HTTPS output link; the CLI does not follow redirects
33
+ or forward Studio/App credentials to storage. For `DOWNLOAD_UNAVAILABLE`, repeat
34
+ `videos download` to request a fresh link. Do not work around a redirect rejection
35
+ by attaching credentials to another host.