clipugc 0.3.2 → 1.1.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.
- package/README.md +170 -200
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/ads.js +2 -2
- package/dist/commands/ads.js.map +1 -1
- package/dist/commands/stories.d.ts +9 -0
- package/dist/commands/stories.js +165 -0
- package/dist/commands/stories.js.map +1 -0
- package/dist/commands/videos.js +2 -2
- package/dist/commands/videos.js.map +1 -1
- package/dist/services/ads.service.d.ts +1 -1
- package/dist/services/ads.service.js +1 -1
- package/dist/services/ads.service.js.map +1 -1
- package/dist/services/stories.service.d.ts +84 -0
- package/dist/services/stories.service.js +55 -0
- package/dist/services/stories.service.js.map +1 -0
- package/dist/services/user.service.d.ts +1 -1
- package/dist/utils/poll.js +2 -2
- package/dist/utils/poll.js.map +1 -1
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -1,259 +1,229 @@
|
|
|
1
1
|
# ClipUGC CLI
|
|
2
2
|
|
|
3
|
-
Official command-line interface for [ClipUGC](https://clipugc.com) — create AI
|
|
3
|
+
Official command-line interface for **[ClipUGC](https://clipugc.com)** — create AI
|
|
4
|
+
influencers, generate photorealistic looks of the same person, turn them into
|
|
5
|
+
silent-reaction clips, and merge your app's screen recording into a ready-to-post
|
|
6
|
+
UGC ad. All from the terminal; nothing renders locally.
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
```bash
|
|
9
|
+
npm install -g clipugc
|
|
10
|
+
clipugc auth login
|
|
11
|
+
```
|
|
6
12
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
3. **Create video clips** — turn a selected look (or your own photo) into short talking/moving clips.
|
|
10
|
-
4. **Merge into a UGC ad** — combine a clip with your app's screen recording and a hook text (plus optional music) into a final, ready-to-post UGC ad.
|
|
13
|
+
Requires **Node.js >= 20**. Create an API key in the
|
|
14
|
+
[ClipUGC dashboard](https://clipugc.com/dashboard) (API keys section).
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
## Use it with Claude Code
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
The fastest way in: this repo ships three Claude Code skills, so you describe what
|
|
19
|
+
you want instead of learning flags. `clipugc` drives the CLI conversationally,
|
|
20
|
+
`ugc-director` turns an app idea into a complete ad plan, and `persona-account`
|
|
21
|
+
runs an ongoing AI creator account.
|
|
15
22
|
|
|
16
|
-
|
|
23
|
+
```
|
|
24
|
+
/plugin marketplace add clipugc/ClipUGC-CLI
|
|
25
|
+
/plugin install clipugc@ClipUGC-CLI
|
|
26
|
+
```
|
|
17
27
|
|
|
18
|
-
|
|
19
|
-
|
|
28
|
+
Installed as a plugin, the skills are namespaced under it:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
/clipugc:ugc-director make a TikTok ad for my habit tracker app
|
|
32
|
+
/clipugc:persona-account create an AI influencer for a fitness account
|
|
33
|
+
/clipugc:clipugc how many credits do I have left
|
|
20
34
|
```
|
|
21
35
|
|
|
22
|
-
|
|
36
|
+
(Cloning the repo instead? Claude Code reads `.claude/skills/` directly and the
|
|
37
|
+
skills are unprefixed — `/ugc-director`, `/persona-account`, `/clipugc`.)
|
|
38
|
+
|
|
39
|
+
See **[docs/skills.md](docs/skills.md)** for what each skill knows.
|
|
40
|
+
|
|
41
|
+
Prefer flags? Everything below works standalone — the skills just drive the same CLI.
|
|
42
|
+
|
|
43
|
+
## What it produces
|
|
44
|
+
|
|
45
|
+
One character, cast once. Every picture below is the **same person** — only the
|
|
46
|
+
setting, outfit and lighting change, because each look is generated from her base
|
|
47
|
+
image rather than from the description again:
|
|
48
|
+
|
|
49
|
+

|
|
23
50
|
|
|
24
51
|
```bash
|
|
25
|
-
clipugc
|
|
52
|
+
clipugc characters create --wait \
|
|
53
|
+
--description "Very pretty Danish woman aged 22, light blonde fine hair to her shoulders with a middle parting, pale blue upturned eyes, heart-shaped face, porcelain cool-toned skin. Genuinely attractive Instagram-creator look, but reads as a real girl — natural skin texture with visible pores, not airbrushed." \
|
|
54
|
+
--scene "close selfie in a softly lit bedroom at golden hour, warm low sun through the window behind her giving a rim light on her hair, full glam makeup with smoky bronze eyeshadow and glossy nude lips, phone-camera quality with mild grain, slightly off-centre framing"
|
|
55
|
+
|
|
56
|
+
# every look after that: same face, new setting — never re-describe the person
|
|
57
|
+
clipugc images generate --character <id> --wait \
|
|
58
|
+
--scene "bathroom mirror selfie in the evening, phone visible in her hand, warm vanity lights either side of the mirror, polished makeup with glowing skin and glossy lips, phone-camera quality with grain, slightly off-centre framing"
|
|
26
59
|
```
|
|
27
60
|
|
|
28
|
-
|
|
61
|
+
Then any look becomes a **silent reaction clip**. Mouth closed throughout — lip-sync
|
|
62
|
+
from a still image is the giveaway that a video is AI, so the format is a held
|
|
63
|
+
expression plus a text hook, not talking:
|
|
29
64
|
|
|
30
|
-
|
|
65
|
+
<img src="docs/images/reaction.gif" alt="A silent reaction clip — she glances down at her phone, back up to the lens, and a suppressed smirk forms, mouth closed throughout" width="230">
|
|
31
66
|
|
|
32
67
|
```bash
|
|
33
|
-
|
|
34
|
-
|
|
68
|
+
clipugc videos create --image <lookId> --duration 5 --wait \
|
|
69
|
+
--prompt "She glances down at the phone, back up to the lens, and one corner of her mouth pulls into a smirk she is clearly trying to suppress. Her lips stay closed and together for the entire clip. She does not speak, does not mouth any words, and her mouth never opens. Natural handheld movement, she shifts slightly, hair moves. Ordinary phone-camera footage, visible grain."
|
|
70
|
+
```
|
|
35
71
|
|
|
36
|
-
|
|
37
|
-
|
|
72
|
+
Note the shape of that prompt: an **arc in beats** (glance down → back up → smirk
|
|
73
|
+
forms), an explicit no-talking clause, and ambient motion. Ask for a state instead
|
|
74
|
+
of a progression — "she smirks" — and the face morphs. The full library of ~30
|
|
75
|
+
reactions across nine emotion families lives in the
|
|
76
|
+
[`ugc-director`](docs/skills.md) skill.
|
|
38
77
|
|
|
39
|
-
|
|
40
|
-
|
|
78
|
+
Merging that clip with your screen recording and a hook is free, so the last step
|
|
79
|
+
costs nothing and you can test as many hooks as you like.
|
|
41
80
|
|
|
42
|
-
|
|
43
|
-
clipugc images generate --character <characterId> --shots frontal,three_quarter --wait
|
|
81
|
+
## How it works
|
|
44
82
|
|
|
45
|
-
|
|
46
|
-
|
|
83
|
+
| | Step | Cost |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
| 1 | **Cast an AI character** — described in plain words; the server builds a structured appearance "DNA" and the first look | 2 credits |
|
|
86
|
+
| 2 | **Generate looks** — the same face in new settings, outfits and lighting | 2 credits each |
|
|
87
|
+
| 3 | **Animate a look** — a short silent reaction clip (mouth closed; lip-sync is what makes AI video look fake) | 7 (5s) / 13 (10s) |
|
|
88
|
+
| 4 | **Merge into an ad** — your screen recording + a hook text overlay + optional music | **free** |
|
|
47
89
|
|
|
48
|
-
|
|
49
|
-
|
|
90
|
+
Every look after the first is generated **from the character's base image**, so the
|
|
91
|
+
face stays the same person across an entire campaign or grid. That consistency is
|
|
92
|
+
the point of the product.
|
|
50
93
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
94
|
+
Full pricing: image 2 · clip 7 (5s) / 13 (10s) · motion control 3 per second of
|
|
95
|
+
driver video (capped at 30s) · scene-staged clip 9 (5s) / 15 (10s) · **merge free**.
|
|
96
|
+
Charges are duration-aware and refunds return the exact amount charged. Check live
|
|
97
|
+
values with `clipugc credits`.
|
|
54
98
|
|
|
55
|
-
|
|
56
|
-
clipugc ads download <adId> -o ugc-ad.mp4
|
|
57
|
-
```
|
|
99
|
+
## Quickstart (plain CLI)
|
|
58
100
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
| Command | Description |
|
|
66
|
-
|---------|-------------|
|
|
67
|
-
| `clipugc auth login [--api-key <key>]` | Authenticate the CLI. Prompts securely for the key if `--api-key` is omitted, validates it against the API, and stores it. |
|
|
68
|
-
| `clipugc auth status` | Show whether you are logged in and as whom. |
|
|
69
|
-
| `clipugc auth logout` | Remove the stored API key. |
|
|
70
|
-
| `clipugc whoami` | Show the authenticated account. |
|
|
71
|
-
|
|
72
|
-
### Config
|
|
73
|
-
|
|
74
|
-
| Command | Description |
|
|
75
|
-
|---------|-------------|
|
|
76
|
-
| `clipugc config list` | Show all config values. |
|
|
77
|
-
| `clipugc config get <key>` | Read one config value. |
|
|
78
|
-
| `clipugc config set <key> <value>` | Set a config value (`apiBaseUrl`, `apiKey`, `email`). |
|
|
79
|
-
| `clipugc config path` | Print the config file path. |
|
|
80
|
-
|
|
81
|
-
### Credits and account
|
|
82
|
-
|
|
83
|
-
| Command | Description |
|
|
84
|
-
|---------|-------------|
|
|
85
|
-
| `clipugc credits` | Show credit balance and per-action costs. |
|
|
86
|
-
| `clipugc credits history [--per-page <n>] [--page <n>]` | Show your credit transaction history (spends, top-ups, refunds) as a paginated table. Add `--json` for scripting. |
|
|
87
|
-
| `clipugc credits packs` | List purchasable credit packs (buy on the web dashboard / mobile app). |
|
|
88
|
-
| `clipugc account delete [--yes]` | Permanently delete your account. Double confirmation (y/N, then type `DELETE`); `--yes` skips both. |
|
|
89
|
-
|
|
90
|
-
### Characters
|
|
91
|
-
|
|
92
|
-
| Command | Description |
|
|
93
|
-
|---------|-------------|
|
|
94
|
-
| `clipugc characters list [--discover\|--mine\|--feed] [--search <q>] [--page N] [--per-page N]` | List characters. `--discover` shows public characters, `--mine` only yours, `--feed` combines both (your characters newest-first, then public ones in unlock order — a Locked column marks locked rows). `--per-page` max 50. |
|
|
95
|
-
| `clipugc characters create --description "…" [--scene "…"] [--inspiration f1.jpg…] [--private] [--make-video [--motion-prompt "…"]] [--wait]` | Create a character from a plain-text description — the first look generates automatically (2 credits). Public by default. `--make-video` also stages the character's first video clip (its id + status are printed for `videos` follow-ups); `--motion-prompt` steers that clip's motion. |
|
|
96
|
-
| `clipugc characters show <id>` | Show a character's details and DNA, plus its display name, video/picture counts, and preview clip when available. |
|
|
97
|
-
| `clipugc characters rename <id> --name "New"` | Rename a character. |
|
|
98
|
-
| `clipugc characters publish <id>` / `unpublish <id>` | Make a character public / private. |
|
|
99
|
-
| `clipugc characters delete <id> [--yes]` | Delete a character (`--yes` skips the confirmation). |
|
|
100
|
-
|
|
101
|
-
`characters create` advanced flags (structured DNA path, rarely needed — use `--description` instead):
|
|
102
|
-
|
|
103
|
-
| Flag | Values |
|
|
104
|
-
|------|--------|
|
|
105
|
-
| `--name "Full Name"` | Required. 2–120 chars. |
|
|
106
|
-
| `--age` | 18–99 |
|
|
107
|
-
| `--gender` | e.g. `male` \| `female` \| `other` |
|
|
108
|
-
| `--dna-json <file-or-inline-json>` | Appearance DNA fields (nationality, vibe, hair/eye color, …) as a JSON file path or inline JSON object. |
|
|
101
|
+
```bash
|
|
102
|
+
# 1. Cast her. Be specific — this is what decides whether she looks like a real
|
|
103
|
+
# creator or like generic AI. (See the casting guide for the formula.)
|
|
104
|
+
clipugc characters create --wait \
|
|
105
|
+
--description "Very pretty Danish woman aged 22, light blonde fine hair to her shoulders with a middle parting, pale blue upturned eyes, heart-shaped face, porcelain cool-toned skin. Genuinely attractive Instagram-creator look, but reads as a real girl — natural skin texture with visible pores, not airbrushed." \
|
|
106
|
+
--scene "close selfie in a softly lit bedroom at golden hour, warm rim light on her hair, full glam makeup with winged liner and glossy lips, natural skin texture, amateur front-camera phone quality, headroom above her head for text"
|
|
109
107
|
|
|
110
|
-
|
|
108
|
+
# 2. Animate the look into a 5s silent reaction.
|
|
109
|
+
clipugc videos create --image <lookId> --duration 5 --wait \
|
|
110
|
+
--prompt "Handheld selfie framing, slight drift. Her expression gradually shifts from neutral to amazed — eyebrows rise, eyes widen, lips part slightly in a silent gasp — then she breaks into a delighted grin and holds it, looking straight into the camera. Hair moves subtly. No talking."
|
|
111
111
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
| `clipugc images generate --character <id> [flags] [--wait]` | Generate reference images (looks) for a character. Costs 2 credits per image. |
|
|
115
|
-
| `clipugc images list --character <id>` | List a character's images. |
|
|
116
|
-
| `clipugc images show <id>` | Show image details. |
|
|
117
|
-
| `clipugc images download <id> [-o out.png]` | Download the look image to disk (`-o` creates missing parent directories). |
|
|
118
|
-
| `clipugc images status <id>` | Check generation status. |
|
|
119
|
-
| `clipugc images variation <id> --scene "..." [--count 1-4] [--before-after] [--wait]` | Generate scene variations of an existing image. |
|
|
120
|
-
| `clipugc images retry <id> [--wait]` | Retry a failed generation. |
|
|
121
|
-
| `clipugc images delete <id> [--yes]` | Delete an image. |
|
|
112
|
+
# 3. Merge your app recording under a hook. Free, so test as many hooks as you like.
|
|
113
|
+
clipugc videos merge <videoId> --app-video ./screenrec.mp4 --hook "nobody talks about this app" --wait
|
|
122
114
|
|
|
123
|
-
|
|
115
|
+
# 4. Download the finished ad — by AD id, not the clip id.
|
|
116
|
+
clipugc ads download <adId> -o ugc-ad.mp4
|
|
117
|
+
```
|
|
124
118
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
| `--shots` | Comma-separated: `frontal`, `three_quarter`, `profile`, `back` |
|
|
128
|
-
| `--template` | `model_digitals` \| `scene_recreation` \| `specific_angle` |
|
|
129
|
-
| `--scene "..."` | Scene description, max 600 chars. |
|
|
130
|
-
| `--resolution` | `0.5K` \| `1K` \| `2K` \| `4K` |
|
|
131
|
-
| `--wait` | Poll with a spinner until completed or failed. |
|
|
119
|
+
Add `--json` to any command for machine-readable output, and `--wait` to any
|
|
120
|
+
generation command to poll with a spinner until it completes.
|
|
132
121
|
|
|
133
|
-
|
|
122
|
+
## Example prompts
|
|
134
123
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
| `clipugc videos create (--image <lookId> \| --photo <file>) [flags] [--wait]` | Create a video clip from a look or your own photo. Costs 7 credits (5s) or 13 (10s); a `--scene` staged clip costs 9. |
|
|
139
|
-
| `clipugc videos motion (--image <lookId> \| --photo <file>) --driver <video.mp4> [--keep-sound] [--wait]` | Animate a look/photo using a driver video (mp4/mov, max 50MB, max 30s). Costs 3 credits per second of driver video (rounded up, capped at 30s). |
|
|
140
|
-
| `clipugc videos merge <videoId> --app-video <screenrec.mp4> --hook "..." [--music <file.mp3>] [--wait]` | Merge a clip with your app's screen recording + a hook (max 150 chars) into a final UGC ad. Costs 1 credit. Prints the new **ad id** (`merged_video_id` under `--json`); `--wait` blocks until the merge render finishes (or fails, refunding the credit). |
|
|
141
|
-
| `clipugc videos show <id>` | Show clip details (including the id of the ad made from it, if any). |
|
|
142
|
-
| `clipugc videos status <id>` | Check generation status. |
|
|
143
|
-
| `clipugc videos download <id> [-o out.mp4]` | Download the finished clip (`-o` creates missing parent directories). |
|
|
144
|
-
| `clipugc videos retry <id> [--wait]` | Retry a failed generation. |
|
|
145
|
-
| `clipugc videos delete <id> [--yes]` | Delete a clip. |
|
|
124
|
+
The prompt is the product. Below is one of each kind; the full libraries are in
|
|
125
|
+
[docs/casting.md](docs/casting.md) (9 nationalities) and the
|
|
126
|
+
[`ugc-director`](docs/skills.md) skill (~30 reactions across 9 emotion families).
|
|
146
127
|
|
|
147
|
-
|
|
128
|
+
**Casting** — concrete features → an explicit attractiveness claim → directed makeup
|
|
129
|
+
and lighting → a realism anchor. All four parts, or she comes out looking like AI:
|
|
148
130
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
different things. `videos merge <clipId>` tells you the ad id it created, and deleting an ad leaves
|
|
152
|
-
the clip it was made from on the influencer's profile.
|
|
131
|
+
<details>
|
|
132
|
+
<summary><b>Blonde Scandinavian</b> — the fastest way to see what this tool does</summary>
|
|
153
133
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| `clipugc ads delete <adId> [--yes]` | Delete the ad. The source clip is untouched. |
|
|
161
|
-
|
|
162
|
-
`videos create` flags:
|
|
163
|
-
|
|
164
|
-
| Flag | Values |
|
|
165
|
-
|------|--------|
|
|
166
|
-
| `--image <lookId>` or `--photo <file>` | One of the two is required. Photo: png/jpg/jpeg/webp. |
|
|
167
|
-
| `--prompt "..."` | Video prompt, max 1500 chars. |
|
|
168
|
-
| `--scene "..."` | Scene description, max 600 chars. Makes it a scene-staged clip (image + clip: 9 credits at 5s, 15 at 10s). |
|
|
169
|
-
| `--duration` | `5` \| `10` (seconds). 5s = 7 credits, 10s = 13. |
|
|
170
|
-
| `--keep-sound` | Keep the generated audio. |
|
|
171
|
-
| `--wait` | Poll until completed or failed. |
|
|
172
|
-
|
|
173
|
-
File uploads are handled automatically via presigned URLs. Accepted formats by purpose: photo `png/jpg/jpeg/webp`; app video and driver video `mp4/mov`; music `mp3/wav/m4a`.
|
|
174
|
-
|
|
175
|
-
### Hooks
|
|
176
|
-
|
|
177
|
-
| Command | Description |
|
|
178
|
-
|---------|-------------|
|
|
179
|
-
| `clipugc hooks suggest [--context "my app is a habit tracker"]` | Get AI-suggested hook texts for your UGC ad. |
|
|
180
|
-
|
|
181
|
-
## Configuration
|
|
182
|
-
|
|
183
|
-
### Config file
|
|
184
|
-
|
|
185
|
-
Settings are stored at `~/.config/clipugc/config.json`:
|
|
186
|
-
|
|
187
|
-
| Key | Description |
|
|
188
|
-
|-----|-------------|
|
|
189
|
-
| `apiBaseUrl` | ClipUGC API base URL. |
|
|
190
|
-
| `apiKey` | Your API key (set by `clipugc auth login`). |
|
|
191
|
-
| `email` | Account email (set on login). |
|
|
192
|
-
|
|
193
|
-
Manage with `clipugc config list / get / set / path`.
|
|
194
|
-
|
|
195
|
-
### Environment variables
|
|
196
|
-
|
|
197
|
-
Env vars override the config file:
|
|
134
|
+
```bash
|
|
135
|
+
clipugc characters create --wait \
|
|
136
|
+
--description "Very pretty Danish woman aged 22, light blonde fine hair to her shoulders with a middle parting and natural movement, pale blue upturned eyes, heart-shaped face, porcelain cool-toned skin, soft pink lips, gentle jawline. Calm, faintly teasing expression. Genuinely attractive Instagram-creator look, but reads as a real girl — natural skin texture with visible pores, not airbrushed." \
|
|
137
|
+
--scene "close selfie in a softly lit bedroom at golden hour, warm low sun through the window behind her giving a rim light on her hair, full glam makeup with winged liner, long lashes and glossy lips, natural skin texture, amateur front-camera phone quality, headroom above her head for text"
|
|
138
|
+
```
|
|
139
|
+
</details>
|
|
198
140
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
| `CLIPUGC_API_KEY` | `apiKey` |
|
|
202
|
-
| `CLIPUGC_API_BASE_URL` | `apiBaseUrl` |
|
|
203
|
-
|
|
204
|
-
### JSON output
|
|
141
|
+
<details>
|
|
142
|
+
<summary><b>Russian</b> — ash-blonde, high broad cheekbones, cool and reserved</summary>
|
|
205
143
|
|
|
206
|
-
|
|
144
|
+
```bash
|
|
145
|
+
clipugc characters create --wait \
|
|
146
|
+
--description "Very pretty Russian woman aged 22 from Moscow, ash-blonde straight hair below her shoulders with a middle parting, cool grey-blue almond eyes set wide apart, high broad cheekbones, straight narrow nose, fair cool-toned skin, medium lips with a defined cupid's bow, fine straight brows. Reserved, slightly aloof expression that warms when she smiles. Strikingly attractive Instagram-creator look, yet unmistakably a real person — natural skin texture with visible pores, not airbrushed." \
|
|
147
|
+
--scene "close selfie in a softly lit bedroom at golden hour, warm low sun behind her giving a rim light on her hair, soft glam makeup with winged liner and a nude glossy lip, natural skin texture, amateur front-camera phone quality, headroom above her head for text"
|
|
148
|
+
```
|
|
149
|
+
</details>
|
|
150
|
+
|
|
151
|
+
<details>
|
|
152
|
+
<summary><b>Ukrainian</b> — honey-brown, soft oval face, warm and open</summary>
|
|
207
153
|
|
|
208
154
|
```bash
|
|
209
|
-
clipugc characters
|
|
155
|
+
clipugc characters create --wait \
|
|
156
|
+
--description "Very pretty Ukrainian woman aged 21 from Kyiv, honey-brown hair with a soft natural wave past her shoulders, warm green eyes with a gentle upturn, soft oval face with a rounded chin, light golden-toned skin, full lips, softly arched brows, a small mole above her lip. Warm, open, easy-smiling energy. Genuinely attractive Instagram-creator look that reads as a real girl — natural skin texture with visible pores, not airbrushed." \
|
|
157
|
+
--scene "front-camera phone selfie by a large window in a bright apartment, soft diffused daylight on her face, plants blurred behind, everyday makeup with fluffy brows and a glossy lip, natural skin texture, amateur phone quality, headroom above the head for text"
|
|
210
158
|
```
|
|
159
|
+
</details>
|
|
211
160
|
|
|
212
|
-
|
|
161
|
+
**Looks** — never re-describe the person; the base image carries the face. Change only
|
|
162
|
+
the setting, outfit and light:
|
|
213
163
|
|
|
214
|
-
|
|
164
|
+
```bash
|
|
165
|
+
clipugc images generate --character <id> --wait \
|
|
166
|
+
--scene "mirror selfie in a bathroom in the evening, phone visible in her hand, warm vanity lights either side of the mirror, polished makeup with glowing skin and blush, natural skin texture, amateur phone quality, headroom above the head for text"
|
|
215
167
|
|
|
216
|
-
|
|
168
|
+
clipugc images generate --character <id> --wait \
|
|
169
|
+
--scene "sitting in the driver's seat of a parked car in daylight, seatbelt on, daylight through the windscreen, natural skin texture, amateur phone quality, headroom above the head for text"
|
|
170
|
+
```
|
|
217
171
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
| 0 | Success |
|
|
221
|
-
| 1 | Generic error |
|
|
222
|
-
| 2 | Validation error |
|
|
223
|
-
| 3 | Authentication error |
|
|
224
|
-
| 4 | Not found |
|
|
225
|
-
| 5 | Premium required |
|
|
226
|
-
| 6 | Insufficient credits |
|
|
227
|
-
| 7 | Network error / server unreachable |
|
|
172
|
+
**Reactions** — an arc in beats, a held ending, ambient motion, and an explicit
|
|
173
|
+
no-talking clause every time:
|
|
228
174
|
|
|
229
|
-
|
|
175
|
+
<details>
|
|
176
|
+
<summary><b>Smirk</b> — "I know something you don't"</summary>
|
|
230
177
|
|
|
231
|
-
|
|
178
|
+
```
|
|
179
|
+
Handheld selfie framing with tiny natural wobble. She looks directly into the camera, one eyebrow raises slightly, a knowing smirk slowly spreads across her face, and she nods slowly twice, lips closed, holding eye contact the entire time. Hair moves subtly. No talking, mouth stays closed.
|
|
180
|
+
```
|
|
181
|
+
</details>
|
|
232
182
|
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
- **`persona-account`** — run an ongoing AI creator account: define a persona once (niche, look, aesthetic, settings, voice, content pillars), then ask for "the next post" and get one on-brand post at a time — same face, rotating settings and reactions, grid composition rules, and a picture-before-video credit gate so you approve the character before any clip credits are spent.
|
|
183
|
+
<details>
|
|
184
|
+
<summary><b>Jaw-drop</b> — the result reveal</summary>
|
|
236
185
|
|
|
237
|
-
|
|
186
|
+
```
|
|
187
|
+
Handheld selfie framing, slight drift. Her expression gradually shifts from neutral to amazed — eyebrows rise, eyes widen, lips part slightly in a silent gasp — then she breaks into a delighted grin and holds it, looking straight into the camera. Hair moves subtly. No talking.
|
|
188
|
+
```
|
|
189
|
+
</details>
|
|
190
|
+
|
|
191
|
+
<details>
|
|
192
|
+
<summary><b>Dreamy cheek-rest</b> — the soft beat a persona grid runs on</summary>
|
|
238
193
|
|
|
239
194
|
```
|
|
240
|
-
|
|
241
|
-
/plugin install clipugc@ClipUGC-CLI
|
|
195
|
+
Nearly static selfie framing with subtle handheld drift. She rests her cheek against her palm, elbow anchored, eyes softening as a slow warm closed-mouth smile spreads, gaze drifting slightly off camera then returning to the lens, holding it. Hair moves subtly. No talking.
|
|
242
196
|
```
|
|
197
|
+
</details>
|
|
243
198
|
|
|
244
|
-
|
|
199
|
+
<details>
|
|
200
|
+
<summary><b>Head-shake</b> — "why did nobody tell me"</summary>
|
|
245
201
|
|
|
246
|
-
|
|
202
|
+
```
|
|
203
|
+
Handheld selfie framing, slight wobble. She exhales through her nose, shakes her head slowly with a rueful closed-mouth smile, briefly glances up at the ceiling, then back into the camera with an amused resigned look, holding it. Hair follows the motion naturally. No talking.
|
|
204
|
+
```
|
|
205
|
+
</details>
|
|
206
|
+
|
|
207
|
+
**Hooks** — the text burned over the clip. Re-merging is free, so ship 2-3 variants of
|
|
208
|
+
every ad and let the platform pick:
|
|
247
209
|
|
|
248
210
|
```
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
/clipugc make a UGC ad from my screen recording
|
|
254
|
-
/clipugc how many credits do I have left
|
|
211
|
+
nobody talks about this app
|
|
212
|
+
why did nobody tell me
|
|
213
|
+
I stopped paying for 4 apps
|
|
214
|
+
POV: you finally organised your week
|
|
255
215
|
```
|
|
256
216
|
|
|
217
|
+
## Documentation
|
|
218
|
+
|
|
219
|
+
| Guide | What's in it |
|
|
220
|
+
|---|---|
|
|
221
|
+
| **[Casting prompts](docs/casting.md)** | The four-part formula behind a good-looking influencer, plus ready-made castings — Scandinavian, Californian, Mediterranean, Korean, Russian, Ukrainian, Polish, Moldovan, Czech |
|
|
222
|
+
| **[Promoting your app](docs/promoting-your-app.md)** | The end-to-end ad walkthrough, hook A/B testing, and who to cast for which app category |
|
|
223
|
+
| **[Command reference](docs/commands.md)** | Every command and flag, with credit costs |
|
|
224
|
+
| **[Configuration](docs/configuration.md)** | Config file, environment variables, exit codes |
|
|
225
|
+
| **[Claude Code skills](docs/skills.md)** | Drive all of this in natural language instead of by flag |
|
|
226
|
+
|
|
257
227
|
## Local development
|
|
258
228
|
|
|
259
229
|
```bash
|
package/dist/cli.js
CHANGED
|
@@ -9,6 +9,7 @@ import { registerImagesCommands } from './commands/images.js';
|
|
|
9
9
|
import { registerAdsCommands } from './commands/ads.js';
|
|
10
10
|
import { registerVideosCommands } from './commands/videos.js';
|
|
11
11
|
import { registerHooksCommands } from './commands/hooks.js';
|
|
12
|
+
import { registerStoriesCommands } from './commands/stories.js';
|
|
12
13
|
export function createCli() {
|
|
13
14
|
const program = new Command();
|
|
14
15
|
program
|
|
@@ -28,6 +29,7 @@ export function createCli() {
|
|
|
28
29
|
registerVideosCommands(program);
|
|
29
30
|
registerAdsCommands(program);
|
|
30
31
|
registerHooksCommands(program);
|
|
32
|
+
registerStoriesCommands(program);
|
|
31
33
|
return program;
|
|
32
34
|
}
|
|
33
35
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CACV,yGAAyG;QACzG,2FAA2F,CAC5F;SACA,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,uBAAuB,CAAC;SAC/D,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACnD,kBAAkB,CAAC,wBAAwB,CAAC;SAC5C,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAElC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACpC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/commands/ads.js
CHANGED
|
@@ -83,7 +83,7 @@ export function registerAdsCommands(program) {
|
|
|
83
83
|
}
|
|
84
84
|
if (ad.status === 'failed') {
|
|
85
85
|
if (ad.can_retry) {
|
|
86
|
-
logger.hint(`Re-render it with \`clipugc ads retry ${ad.id}\`
|
|
86
|
+
logger.hint(`Re-render it with \`clipugc ads retry ${ad.id}\` — merging is free`);
|
|
87
87
|
}
|
|
88
88
|
else {
|
|
89
89
|
logger.warn('This ad cannot be re-rendered — its app recording is no longer stored. Run `clipugc videos merge` again.');
|
|
@@ -104,7 +104,7 @@ export function registerAdsCommands(program) {
|
|
|
104
104
|
});
|
|
105
105
|
ads
|
|
106
106
|
.command('retry <adId>')
|
|
107
|
-
.description('Re-render a failed UGC ad.
|
|
107
|
+
.description('Re-render a failed UGC ad. Merging is free')
|
|
108
108
|
.option('--wait', 'Wait until the merge completes')
|
|
109
109
|
.action(async (adId, opts, cmd) => {
|
|
110
110
|
const json = isJsonMode(cmd);
|
package/dist/commands/ads.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ads.js","sourceRoot":"","sources":["../../src/commands/ads.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ads.js","sourceRoot":"","sources":["../../src/commands/ads.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import { ValidationError } from '../utils/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* `clipugc stories` — ongoing episodic videos of an AI character's life. Each episode's
|
|
5
|
+
* script is drafted for free and only generated after `episodes approve` (charged).
|
|
6
|
+
* Every episode continues the story — and starts on the previous episode's last frame.
|
|
7
|
+
*/
|
|
8
|
+
export declare function registerStoriesCommands(program: Command): void;
|
|
9
|
+
export { ValidationError };
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { createApiClient } from '../services/api.js';
|
|
2
|
+
import { approveEpisode, createStory, downloadEpisode, draftEpisode, getEpisode, getStory, listStories, STORY_RESOLUTIONS, } from '../services/stories.service.js';
|
|
3
|
+
import { formatStatus, isJsonMode, printJson, printTable } from '../utils/output.js';
|
|
4
|
+
import { waitForCompletion } from '../utils/poll.js';
|
|
5
|
+
import { ValidationError } from '../utils/errors.js';
|
|
6
|
+
import { logger } from '../utils/logger.js';
|
|
7
|
+
const SERIES_COLUMNS = [
|
|
8
|
+
{ header: 'STORY ID', value: (s) => s.id },
|
|
9
|
+
{ header: 'Title', value: (s) => s.title },
|
|
10
|
+
{ header: 'Character', value: (s) => s.character?.name },
|
|
11
|
+
{ header: 'Episodes', value: (s) => s.episode_count },
|
|
12
|
+
{ header: 'Quality', value: (s) => (s.resolution === '768P' ? 'HD' : 'Standard') },
|
|
13
|
+
];
|
|
14
|
+
const EPISODE_COLUMNS = [
|
|
15
|
+
{ header: 'EPISODE ID', value: (e) => e.id },
|
|
16
|
+
{ header: '#', value: (e) => e.episode_number },
|
|
17
|
+
{ header: 'Title', value: (e) => e.title },
|
|
18
|
+
{ header: 'Status', value: (e) => formatStatus(e.status) },
|
|
19
|
+
{ header: 'Length', value: (e) => (e.duration_seconds ? `${e.duration_seconds}s` : undefined) },
|
|
20
|
+
];
|
|
21
|
+
function printScript(episode) {
|
|
22
|
+
logger.info('');
|
|
23
|
+
logger.info(`Episode ${episode.episode_number ?? '?'} — ${episode.title ?? 'Untitled'}`);
|
|
24
|
+
(episode.script ?? []).forEach((scene, index) => {
|
|
25
|
+
logger.info(` Scene ${index + 1}: ${scene.action}`);
|
|
26
|
+
if (scene.dialogue)
|
|
27
|
+
logger.info(` She says: "${scene.dialogue}"`);
|
|
28
|
+
});
|
|
29
|
+
logger.info('');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* `clipugc stories` — ongoing episodic videos of an AI character's life. Each episode's
|
|
33
|
+
* script is drafted for free and only generated after `episodes approve` (charged).
|
|
34
|
+
* Every episode continues the story — and starts on the previous episode's last frame.
|
|
35
|
+
*/
|
|
36
|
+
export function registerStoriesCommands(program) {
|
|
37
|
+
const stories = program
|
|
38
|
+
.command('stories')
|
|
39
|
+
.description("Ongoing story series: your AI character's life, one talking episode at a time");
|
|
40
|
+
stories
|
|
41
|
+
.command('list')
|
|
42
|
+
.description('List your story series')
|
|
43
|
+
.action(async (_opts, cmd) => {
|
|
44
|
+
const json = isJsonMode(cmd);
|
|
45
|
+
const api = await createApiClient();
|
|
46
|
+
const { stories: items, raw } = await listStories(api);
|
|
47
|
+
if (json)
|
|
48
|
+
return printJson(raw);
|
|
49
|
+
printTable(items, SERIES_COLUMNS);
|
|
50
|
+
});
|
|
51
|
+
stories
|
|
52
|
+
.command('create')
|
|
53
|
+
.description('Start a new story series for one of your characters')
|
|
54
|
+
.requiredOption('--character <id>', 'The character the story is about')
|
|
55
|
+
.requiredOption('--title <title>', 'Story title')
|
|
56
|
+
.requiredOption('--premise <premise>', "What her life is about (drives every episode's script)")
|
|
57
|
+
.option('--tone <tone>', 'Optional tone, e.g. "dry humor, cliffhangers"')
|
|
58
|
+
.option('--resolution <res>', `Video quality: ${STORY_RESOLUTIONS.join(' or ')} (default 480P)`)
|
|
59
|
+
.action(async (opts, cmd) => {
|
|
60
|
+
const json = isJsonMode(cmd);
|
|
61
|
+
const api = await createApiClient();
|
|
62
|
+
const series = await createStory(api, {
|
|
63
|
+
characterId: opts.character,
|
|
64
|
+
title: opts.title,
|
|
65
|
+
premise: opts.premise,
|
|
66
|
+
tone: opts.tone,
|
|
67
|
+
resolution: opts.resolution,
|
|
68
|
+
});
|
|
69
|
+
if (json)
|
|
70
|
+
return printJson(series);
|
|
71
|
+
logger.success(`Story ${series.id} created: ${series.title}`);
|
|
72
|
+
logger.info(`Draft the first episode: clipugc stories draft ${series.id}`);
|
|
73
|
+
});
|
|
74
|
+
stories
|
|
75
|
+
.command('show <id>')
|
|
76
|
+
.description('Show a story and its episodes')
|
|
77
|
+
.action(async (id, _opts, cmd) => {
|
|
78
|
+
const json = isJsonMode(cmd);
|
|
79
|
+
const api = await createApiClient();
|
|
80
|
+
const { story, episodes } = await getStory(api, id);
|
|
81
|
+
if (json)
|
|
82
|
+
return printJson({ story, episodes });
|
|
83
|
+
printTable([story], SERIES_COLUMNS);
|
|
84
|
+
if (story.story_summary)
|
|
85
|
+
logger.info(`\nStory so far:\n${story.story_summary}\n`);
|
|
86
|
+
printTable(episodes, EPISODE_COLUMNS);
|
|
87
|
+
});
|
|
88
|
+
stories
|
|
89
|
+
.command('draft <id>')
|
|
90
|
+
.description("Draft the next episode's script (free — nothing is generated yet)")
|
|
91
|
+
.option('--minutes <n>', 'Episode length in minutes: 1, 2 or 5 (default 1)', (v) => Number.parseInt(v, 10))
|
|
92
|
+
.option('--direction <text>', 'Write the plot yourself; omit to let the AI continue the story')
|
|
93
|
+
.action(async (id, opts, cmd) => {
|
|
94
|
+
const json = isJsonMode(cmd);
|
|
95
|
+
const api = await createApiClient();
|
|
96
|
+
const { episode, cost_credits } = await draftEpisode(api, id, {
|
|
97
|
+
minutes: opts.minutes,
|
|
98
|
+
direction: opts.direction,
|
|
99
|
+
});
|
|
100
|
+
if (json)
|
|
101
|
+
return printJson({ episode, cost_credits });
|
|
102
|
+
printScript(episode);
|
|
103
|
+
logger.info(`Generating this episode costs ${cost_credits ?? '?'} credits.`);
|
|
104
|
+
logger.info(`Approve it: clipugc stories approve ${id} ${episode.id} [--wait]`);
|
|
105
|
+
});
|
|
106
|
+
stories
|
|
107
|
+
.command('approve <id> <episodeId>')
|
|
108
|
+
.description('Approve a drafted episode: charges credits and generates it scene by scene')
|
|
109
|
+
.option('--wait', 'Wait until the episode finishes rendering')
|
|
110
|
+
.option('--output <path>', 'With --wait: also download the finished episode here')
|
|
111
|
+
.action(async (id, episodeId, opts, cmd) => {
|
|
112
|
+
const json = isJsonMode(cmd);
|
|
113
|
+
const api = await createApiClient();
|
|
114
|
+
const episode = await approveEpisode(api, id, episodeId);
|
|
115
|
+
if (!opts.wait) {
|
|
116
|
+
if (json)
|
|
117
|
+
return printJson(episode);
|
|
118
|
+
logger.success(`Episode ${episode.episode_number ?? episodeId} is generating.`);
|
|
119
|
+
logger.info(`Check progress: clipugc stories status ${id} ${episodeId}`);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const finished = await waitForCompletion(() => getEpisode(api, id, episodeId), {
|
|
123
|
+
label: `Episode ${episode.episode_number ?? episodeId}`,
|
|
124
|
+
intervalMs: 10_000,
|
|
125
|
+
quiet: json,
|
|
126
|
+
});
|
|
127
|
+
if (opts.output || !json) {
|
|
128
|
+
const path = await downloadEpisode(api, id, episodeId, opts.output);
|
|
129
|
+
if (!json)
|
|
130
|
+
logger.success(`Saved to ${path}`);
|
|
131
|
+
}
|
|
132
|
+
if (json)
|
|
133
|
+
printJson(finished);
|
|
134
|
+
});
|
|
135
|
+
stories
|
|
136
|
+
.command('status <id> <episodeId>')
|
|
137
|
+
.description("Check an episode's generation progress")
|
|
138
|
+
.action(async (id, episodeId, _opts, cmd) => {
|
|
139
|
+
const json = isJsonMode(cmd);
|
|
140
|
+
const api = await createApiClient();
|
|
141
|
+
const episode = await getEpisode(api, id, episodeId);
|
|
142
|
+
if (json)
|
|
143
|
+
return printJson(episode);
|
|
144
|
+
printTable([episode], EPISODE_COLUMNS);
|
|
145
|
+
if (episode.status === 'processing') {
|
|
146
|
+
logger.info(`Scenes completed: ${episode.scenes_completed ?? 0}/${episode.scene_count ?? '?'}`);
|
|
147
|
+
}
|
|
148
|
+
if (episode.error)
|
|
149
|
+
logger.warn(`Error: ${episode.error}`);
|
|
150
|
+
});
|
|
151
|
+
stories
|
|
152
|
+
.command('download <id> <episodeId>')
|
|
153
|
+
.description('Download a completed episode')
|
|
154
|
+
.option('--output <path>', 'Where to save the .mp4')
|
|
155
|
+
.action(async (id, episodeId, opts, cmd) => {
|
|
156
|
+
const json = isJsonMode(cmd);
|
|
157
|
+
const api = await createApiClient();
|
|
158
|
+
const path = await downloadEpisode(api, id, episodeId, opts.output);
|
|
159
|
+
if (json)
|
|
160
|
+
return printJson({ saved_to: path });
|
|
161
|
+
logger.success(`Saved to ${path}`);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
export { ValidationError };
|
|
165
|
+
//# sourceMappingURL=stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stories.js","sourceRoot":"","sources":["../../src/commands/stories.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/videos.js
CHANGED
|
@@ -165,7 +165,7 @@ export function registerVideosCommands(program) {
|
|
|
165
165
|
});
|
|
166
166
|
videos
|
|
167
167
|
.command('merge <videoId>')
|
|
168
|
-
.description('Merge your app screen recording with the character clip into a final UGC video, with a hook text overlay (and optional background music)')
|
|
168
|
+
.description('Merge your app screen recording with the character clip into a final UGC video, with a hook text overlay (and optional background music). Free')
|
|
169
169
|
.requiredOption('--app-video <file>', 'App screen recording (mp4/mov) — uploaded first')
|
|
170
170
|
.requiredOption('--hook <text>', 'Hook text overlay (max 150 chars)')
|
|
171
171
|
.option('--music <file>', 'Background music (mp3/wav/m4a) — uploaded first')
|
|
@@ -252,7 +252,7 @@ export function registerVideosCommands(program) {
|
|
|
252
252
|
logger.hint(`Retry with \`clipugc videos retry ${id}\``);
|
|
253
253
|
}
|
|
254
254
|
if (mergeStatus === 'failed') {
|
|
255
|
-
logger.warn('The merge failed
|
|
255
|
+
logger.warn('The merge failed. Re-render it with `clipugc ads retry <adId>` — merging is free.');
|
|
256
256
|
}
|
|
257
257
|
const adId = check.merged_video_id;
|
|
258
258
|
if (adId != null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"videos.js","sourceRoot":"","sources":["../../src/commands/videos.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"videos.js","sourceRoot":"","sources":["../../src/commands/videos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAkB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,EACV,UAAU,GAGX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,CAAC,KAAa,EAAU,EAAE;QAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,qCAAqC,KAAK,KAAK,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,GAAc,EACd,IAAwC,EACxC,KAAc;IAEd,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,eAAe,CACvB,qHAAqH,CACtH,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,yBAAyB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC;IACD,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,CAAiB;IACpC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,CAAC,kCAAkC;IACrD,MAAM,KAAK,GAAG,CAAC,CAAC,KAA6C,CAAC;IAC9D,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,EAAE,UAAU,KAAK,IAAI;QAAE,OAAO,WAAW,CAAC;IAC3E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gEAAgE;AAChE,KAAK,UAAU,YAAY,CACzB,GAAc,EACd,KAAqB,EACrB,IAAwB,EACxB,IAAa,EACb,KAAa;IAEb,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,WAAW,GAAG,MAAM,iBAAiB,CACzC,GAAG,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAmD,EACjF,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CACvB,CAAC;QACF,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,IAAI,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,aAAa,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IAChG,MAAM,CAAC,IAAI,CAAC,+CAA+C,EAAE,6BAA6B,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mDAAmD,CAAC,CAAC;IAEpE,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,yEAAyE,CAAC;SACtF,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,CAAC;SAC9D,MAAM,CAAC,aAAa,EAAE,2DAA2D,CAAC;SAClF,MAAM,CAAC,UAAU,EAAE,qEAAqE,CAAC;SACzF,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAC/D,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;SACrF,MAAM,CAAC,KAAK,EAAE,IAAoG,EAAE,GAAY,EAAE,EAAE;QACnI,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QAEpC,yFAAyF;QACzF,yFAAyF;QACzF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,eAAe,CAAC,6DAA6D,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,eAAe,CAAC,gEAAgE,CAAC,CAAC;YAC9F,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO;YACT,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAClC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QACH,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,GAAG,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,UAAU,CAAC,KAAK,EAAE;YAChB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE;YAChE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAClD,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;YAClD,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE;SAClD,CAAC,CAAC;QACH,eAAe,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,6JAA6J,CAAC;SAC1K,MAAM,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;SAC9E,MAAM,CAAC,gBAAgB,EAAE,6DAA6D,CAAC;SACvF,MAAM,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;SAC9E,MAAM,CAAC,gBAAgB,EAAE,wFAAwF,CAAC;SAClH,MAAM,CAAC,sBAAsB,EAAE,+DAA+D,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;SAC/H,MAAM,CAAC,cAAc,EAAE,yBAAyB,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACnD,MAAM,CACL,KAAK,EACH,IAQC,EACD,GAAY,EACZ,EAAE;QACF,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE;YAC1C,GAAG,MAAM;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,iBAAiB,EAAE,IAAI,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC,CACF,CAAC;IAEJ,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iJAAiJ,CAAC;SAC9J,MAAM,CAAC,kBAAkB,EAAE,kDAAkD,CAAC;SAC9E,MAAM,CAAC,gBAAgB,EAAE,6DAA6D,CAAC;SACvF,cAAc,CAAC,sBAAsB,EAAE,mEAAmE,CAAC;SAC3G,MAAM,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;SAC9E,MAAM,CAAC,cAAc,EAAE,wCAAwC,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACnD,MAAM,CACL,KAAK,EACH,IAOC,EACD,GAAY,EACZ,EAAE;QACF,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE;YAC3C,GAAG,MAAM;YACT,iBAAiB;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,iBAAiB,EAAE,IAAI,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACjE,CAAC,CACF,CAAC;IAEJ,MAAM;SACH,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CACV,gJAAgJ,CACjJ;SACA,cAAc,CAAC,oBAAoB,EAAE,iDAAiD,CAAC;SACvF,cAAc,CAAC,eAAe,EAAE,mCAAmC,CAAC;SACpE,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SAC3E,MAAM,CAAC,QAAQ,EAAE,gCAAgC,CAAC;SAClD,MAAM,CACL,KAAK,EACH,OAAe,EACf,IAAwE,EACxE,GAAY,EACZ,EAAE;QACF,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtG,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7F,uFAAuF;QACvF,wEAAwE;QACxE,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEvF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,QAAQ,CAChB,0IAA0I,CAC3I,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxG,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,wDAAwD,IAAI,IAAI,CAAC,CAAC;YAChF,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,eAAe,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,iCAAiC,CAAC,CAAC;QAClH,MAAM,CAAC,IAAI,CACT,IAAI;YACF,CAAC,CAAC,uCAAuC,IAAI,6BAA6B;YAC1E,CAAC,CAAC,0DAA0D,CAC/D,CAAC;IACJ,CAAC,CACF,CAAC;IAEJ,MAAM;SACH,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,GAAY,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ;gBAAE,SAAS;YAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;gBAC7E,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAyC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,oDAAoD,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,KAAK,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,oDAAoD,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,GAAY,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9C,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,WAAW,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,KAA6C,CAAC;QAClE,IAAI,WAAW,IAAI,KAAK,EAAE,UAAU,EAAE,CAAC;YACrC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,aAAa,CAAC;YAC3D,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;QACnG,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC;QACnC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,8CAA8C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,qBAAqB,EAAE,oDAAoD,CAAC;SACnF,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAyB,EAAE,GAAY,EAAE,EAAE;QACpE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAwB,EAAE,GAAY,EAAE,EAAE;QACnE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAuB,EAAE,GAAY,EAAE,EAAE;QAClE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;YACvE,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,YAAY,EAAE,CAAC;QACpC,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,SAAS,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -43,7 +43,7 @@ export declare function listMergedVideos(api: ApiClient, opts?: ListMergedVideos
|
|
|
43
43
|
}>;
|
|
44
44
|
/** GET /merged-videos/{id}. Also the poll call — there is no check-status route for ads. */
|
|
45
45
|
export declare function getMergedVideo(api: ApiClient, id: string): Promise<MergedVideo>;
|
|
46
|
-
/** POST /merged-videos/{id}/retry — re-renders a failed ad.
|
|
46
|
+
/** POST /merged-videos/{id}/retry — re-renders a failed ad. Merging is free, so this costs nothing. */
|
|
47
47
|
export declare function retryMergedVideo(api: ApiClient, id: string): Promise<MergedVideo>;
|
|
48
48
|
/** DELETE /merged-videos/{id} — removes the ad only; the source clip stays on the profile. */
|
|
49
49
|
export declare function deleteMergedVideo(api: ApiClient, id: string): Promise<{
|
|
@@ -27,7 +27,7 @@ export async function listMergedVideos(api, opts = {}) {
|
|
|
27
27
|
export async function getMergedVideo(api, id) {
|
|
28
28
|
return api.get(`/merged-videos/${encodeURIComponent(id)}`);
|
|
29
29
|
}
|
|
30
|
-
/** POST /merged-videos/{id}/retry — re-renders a failed ad.
|
|
30
|
+
/** POST /merged-videos/{id}/retry — re-renders a failed ad. Merging is free, so this costs nothing. */
|
|
31
31
|
export async function retryMergedVideo(api, id) {
|
|
32
32
|
return api.post(`/merged-videos/${encodeURIComponent(id)}/retry`);
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ads.service.js","sourceRoot":"","sources":["../../src/services/ads.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAuCrD,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAErE,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAc,EACd,OAAgC,EAAE;IAElC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;QACvH,MAAM,IAAI,eAAe,CAAC,+CAA+C,YAAY,GAAG,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,eAAe,CAAC,4BAA4B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAU,gBAAgB,EAAE;QACnD,KAAK,EAAE;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;KACF,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,WAAW,CAAc,GAAG,CAAC,CAAC;IAC5D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAc,EAAE,EAAU;IAC7D,OAAO,GAAG,CAAC,GAAG,CAAc,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"ads.service.js","sourceRoot":"","sources":["../../src/services/ads.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAuCrD,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAErE,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAc,EACd,OAAgC,EAAE;IAElC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;QACvH,MAAM,IAAI,eAAe,CAAC,+CAA+C,YAAY,GAAG,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,eAAe,CAAC,4BAA4B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAU,gBAAgB,EAAE;QACnD,KAAK,EAAE;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;KACF,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,WAAW,CAAc,GAAG,CAAC,CAAC;IAC5D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACpC,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAc,EAAE,EAAU;IAC7D,OAAO,GAAG,CAAC,GAAG,CAAc,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAc,EAAE,EAAU;IAC/D,OAAO,GAAG,CAAC,IAAI,CAAc,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAc,EACd,EAAU;IAEV,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAU,QAAQ,EAAE,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAc,EACd,EAAU,EACV,OAA6C,EAAE;IAE/C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAA4B,kBAAkB,kBAAkB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,QAAQ,CAChB,gDAAgD,EAAE,sDAAsD,EAAE,KAAK,CAChH,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { ApiClient } from './api.js';
|
|
2
|
+
/**
|
|
3
|
+
* Stories — ongoing episodic videos of an AI character's life (`/stories` endpoints).
|
|
4
|
+
*
|
|
5
|
+
* Flow: create a series → draft an episode script (free) → approve it (charges credits,
|
|
6
|
+
* generates scene-by-scene with native speech) → poll status → download the episode.
|
|
7
|
+
*/
|
|
8
|
+
export interface StorySeries {
|
|
9
|
+
id: number | string;
|
|
10
|
+
title: string;
|
|
11
|
+
premise?: string;
|
|
12
|
+
tone?: string | null;
|
|
13
|
+
/** 480P (standard) | 768P (HD) */
|
|
14
|
+
resolution?: string;
|
|
15
|
+
status?: string;
|
|
16
|
+
episode_count?: number;
|
|
17
|
+
story_summary?: string | null;
|
|
18
|
+
character?: {
|
|
19
|
+
id?: number | string;
|
|
20
|
+
name?: string;
|
|
21
|
+
};
|
|
22
|
+
created_at?: string;
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
}
|
|
25
|
+
export interface StoryScene {
|
|
26
|
+
action: string;
|
|
27
|
+
dialogue?: string | null;
|
|
28
|
+
location?: string | null;
|
|
29
|
+
}
|
|
30
|
+
export interface StoryEpisode {
|
|
31
|
+
id: number | string;
|
|
32
|
+
story_series_id?: number | string;
|
|
33
|
+
episode_number?: number;
|
|
34
|
+
title?: string | null;
|
|
35
|
+
/** draft | script_ready | processing | stitching | completed | failed */
|
|
36
|
+
status: string;
|
|
37
|
+
script?: StoryScene[];
|
|
38
|
+
summary?: string | null;
|
|
39
|
+
scene_count?: number;
|
|
40
|
+
scenes_completed?: number;
|
|
41
|
+
duration_seconds?: number;
|
|
42
|
+
credits_charged?: number | null;
|
|
43
|
+
video_url?: string | null;
|
|
44
|
+
thumbnail_url?: string | null;
|
|
45
|
+
error?: string | null;
|
|
46
|
+
created_at?: string;
|
|
47
|
+
[key: string]: unknown;
|
|
48
|
+
}
|
|
49
|
+
export declare const STORY_RESOLUTIONS: string[];
|
|
50
|
+
/** GET /stories */
|
|
51
|
+
export declare function listStories(api: ApiClient): Promise<{
|
|
52
|
+
stories: StorySeries[];
|
|
53
|
+
raw: unknown;
|
|
54
|
+
}>;
|
|
55
|
+
/** POST /stories */
|
|
56
|
+
export declare function createStory(api: ApiClient, input: {
|
|
57
|
+
characterId: string;
|
|
58
|
+
title: string;
|
|
59
|
+
premise: string;
|
|
60
|
+
tone?: string;
|
|
61
|
+
resolution?: string;
|
|
62
|
+
}): Promise<StorySeries>;
|
|
63
|
+
/** GET /stories/{id} — the series plus all its episodes. */
|
|
64
|
+
export declare function getStory(api: ApiClient, id: string): Promise<{
|
|
65
|
+
story: StorySeries;
|
|
66
|
+
episodes: StoryEpisode[];
|
|
67
|
+
}>;
|
|
68
|
+
/**
|
|
69
|
+
* POST /stories/{id}/episodes — draft the next episode's script. Free. Pass `direction`
|
|
70
|
+
* to write the plot yourself; leave it out and the AI continues the story.
|
|
71
|
+
*/
|
|
72
|
+
export declare function draftEpisode(api: ApiClient, id: string, opts?: {
|
|
73
|
+
minutes?: number;
|
|
74
|
+
direction?: string;
|
|
75
|
+
}): Promise<{
|
|
76
|
+
episode: StoryEpisode;
|
|
77
|
+
cost_credits?: number;
|
|
78
|
+
}>;
|
|
79
|
+
/** POST /stories/{id}/episodes/{episodeId}/approve — charges credits, starts generation. */
|
|
80
|
+
export declare function approveEpisode(api: ApiClient, id: string, episodeId: string, scenes?: StoryScene[]): Promise<StoryEpisode>;
|
|
81
|
+
/** GET /stories/{id}/episodes/{episodeId} — status; also nudges a lost-webhook scene along. */
|
|
82
|
+
export declare function getEpisode(api: ApiClient, id: string, episodeId: string): Promise<StoryEpisode>;
|
|
83
|
+
/** Save a completed episode's video to disk (the URL is short-lived — fetch fresh first). */
|
|
84
|
+
export declare function downloadEpisode(api: ApiClient, id: string, episodeId: string, outPath?: string): Promise<string>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ValidationError } from '../utils/errors.js';
|
|
2
|
+
import { saveUrlToFile } from '../utils/download.js';
|
|
3
|
+
export const STORY_RESOLUTIONS = ['480P', '768P'];
|
|
4
|
+
/** GET /stories */
|
|
5
|
+
export async function listStories(api) {
|
|
6
|
+
const raw = await api.get('/stories');
|
|
7
|
+
return { stories: raw?.stories ?? [], raw };
|
|
8
|
+
}
|
|
9
|
+
/** POST /stories */
|
|
10
|
+
export async function createStory(api, input) {
|
|
11
|
+
if (input.resolution !== undefined && !STORY_RESOLUTIONS.includes(input.resolution)) {
|
|
12
|
+
throw new ValidationError(`--resolution must be one of: ${STORY_RESOLUTIONS.join(', ')} (got "${input.resolution}").`);
|
|
13
|
+
}
|
|
14
|
+
return api.post('/stories', {
|
|
15
|
+
body: {
|
|
16
|
+
character_id: Number(input.characterId),
|
|
17
|
+
title: input.title,
|
|
18
|
+
premise: input.premise,
|
|
19
|
+
tone: input.tone,
|
|
20
|
+
resolution: input.resolution,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/** GET /stories/{id} — the series plus all its episodes. */
|
|
25
|
+
export async function getStory(api, id) {
|
|
26
|
+
const data = await api.get(`/stories/${encodeURIComponent(id)}`);
|
|
27
|
+
return { story: data.story, episodes: data.episodes ?? [] };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* POST /stories/{id}/episodes — draft the next episode's script. Free. Pass `direction`
|
|
31
|
+
* to write the plot yourself; leave it out and the AI continues the story.
|
|
32
|
+
*/
|
|
33
|
+
export async function draftEpisode(api, id, opts = {}) {
|
|
34
|
+
if (opts.minutes !== undefined && (!Number.isInteger(opts.minutes) || opts.minutes < 1 || opts.minutes > 5)) {
|
|
35
|
+
throw new ValidationError('--minutes must be an integer between 1 and 5.');
|
|
36
|
+
}
|
|
37
|
+
return api.post(`/stories/${encodeURIComponent(id)}/episodes`, { body: { minutes: opts.minutes, direction: opts.direction } });
|
|
38
|
+
}
|
|
39
|
+
/** POST /stories/{id}/episodes/{episodeId}/approve — charges credits, starts generation. */
|
|
40
|
+
export async function approveEpisode(api, id, episodeId, scenes) {
|
|
41
|
+
return api.post(`/stories/${encodeURIComponent(id)}/episodes/${encodeURIComponent(episodeId)}/approve`, scenes && scenes.length > 0 ? { body: { scenes } } : undefined);
|
|
42
|
+
}
|
|
43
|
+
/** GET /stories/{id}/episodes/{episodeId} — status; also nudges a lost-webhook scene along. */
|
|
44
|
+
export async function getEpisode(api, id, episodeId) {
|
|
45
|
+
return api.get(`/stories/${encodeURIComponent(id)}/episodes/${encodeURIComponent(episodeId)}`);
|
|
46
|
+
}
|
|
47
|
+
/** Save a completed episode's video to disk (the URL is short-lived — fetch fresh first). */
|
|
48
|
+
export async function downloadEpisode(api, id, episodeId, outPath) {
|
|
49
|
+
const episode = await getEpisode(api, id, episodeId);
|
|
50
|
+
if (episode.status !== 'completed' || !episode.video_url) {
|
|
51
|
+
throw new ValidationError(`Episode ${episodeId} has no downloadable video yet (status: ${episode.status}).`);
|
|
52
|
+
}
|
|
53
|
+
return saveUrlToFile(episode.video_url, outPath ?? `story_${id}_episode_${episode.episode_number ?? episodeId}.mp4`);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=stories.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stories.service.js","sourceRoot":"","sources":["../../src/services/stories.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export interface CreditCosts {
|
|
|
42
42
|
export interface CreditsInfo {
|
|
43
43
|
/** Current credit balance. */
|
|
44
44
|
balance: number;
|
|
45
|
-
/** Per-action credit costs, e.g. { image: 2, clip: 7, clip_10s: 13, merge:
|
|
45
|
+
/** Per-action credit costs, e.g. { image: 2, clip: 7, clip_10s: 13, merge: 0 }. */
|
|
46
46
|
costs: CreditCosts;
|
|
47
47
|
}
|
|
48
48
|
/** A single credit ledger entry returned by GET /credits/transactions. */
|
package/dist/utils/poll.js
CHANGED
|
@@ -24,8 +24,8 @@ export async function waitForMerge(check, options = {}) {
|
|
|
24
24
|
return result;
|
|
25
25
|
}
|
|
26
26
|
if (failed) {
|
|
27
|
-
spinner?.fail(`${label} failed
|
|
28
|
-
throw new ApiError(`${label} failed.
|
|
27
|
+
spinner?.fail(`${label} failed.`);
|
|
28
|
+
throw new ApiError(`${label} failed. Retry with \`clipugc ads retry\` — merging is free.`);
|
|
29
29
|
}
|
|
30
30
|
if (Date.now() - start > timeoutMs) {
|
|
31
31
|
spinner?.fail(`${label} timed out after ${formatElapsed(elapsed)} — it may still finish server-side.`);
|
package/dist/utils/poll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/utils/poll.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqBvC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AASpE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAuB,EACvB,UAAuB,EAAE;IAEzB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAElE,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;YAE1C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,iBAAiB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpE,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/utils/poll.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clipugc",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Official CLI for ClipUGC — create AI characters, generate looks, and produce UGC-style videos for your mobile app from the terminal.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"homepage": "https://clipugc.com",
|
|
28
28
|
"repository": {
|
|
29
29
|
"type": "git",
|
|
30
|
-
"url": "git+https://github.com/
|
|
30
|
+
"url": "git+https://github.com/clipugc/ClipUGC-CLI.git"
|
|
31
31
|
},
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"dependencies": {
|
|
@@ -45,5 +45,8 @@
|
|
|
45
45
|
},
|
|
46
46
|
"engines": {
|
|
47
47
|
"node": ">=20"
|
|
48
|
+
},
|
|
49
|
+
"bugs": {
|
|
50
|
+
"url": "https://github.com/clipugc/ClipUGC-CLI/issues"
|
|
48
51
|
}
|
|
49
52
|
}
|