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 CHANGED
@@ -1,259 +1,229 @@
1
1
  # ClipUGC CLI
2
2
 
3
- Official command-line interface for [ClipUGC](https://clipugc.com) — create AI characters, generate photorealistic looks, and produce UGC-style marketing videos for your mobile app straight from the terminal.
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
- ClipUGC makes AI-generated, influencer-style UGC (user-generated-content) ads for mobile apps. The workflow:
8
+ ```bash
9
+ npm install -g clipugc
10
+ clipugc auth login
11
+ ```
6
12
 
7
- 1. **Create an AI character** — a structured appearance "DNA" (age, gender, nationality, vibe, hair, eyes, skin tone, body type…).
8
- 2. **Generate looks** — photorealistic reference images of the character (different shots, templates, and scenes).
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
- Credits are consumed server-side per action: **image = 2**, **clip (5s) = 7**, **clip (10s) = 13**, **motion control = 3 per second** of driver video (rounded up, capped at 30s), **scene-staged clip (`--scene`) = image + clip (9 for 5s, 15 for 10s)**, **merge = 1**. Charges are duration-aware, and refunds return the exact amount charged. Check your balance and the live cost of each action anytime with `clipugc credits`, and your ledger with `clipugc credits history`.
16
+ ## Use it with Claude Code
13
17
 
14
- ## Installation
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
- Requires **Node.js >= 20**.
23
+ ```
24
+ /plugin marketplace add clipugc/ClipUGC-CLI
25
+ /plugin install clipugc@ClipUGC-CLI
26
+ ```
17
27
 
18
- ```bash
19
- npm install -g clipugc
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
- Then authenticate with an API key. Create one in the [ClipUGC dashboard](https://clipugc.com/dashboard) (API keys section):
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
+ ![Six looks of the same AI influencer — golden-hour bedroom, bathroom mirror, parked car, night bathroom, balcony at night, in bed](docs/images/looks.jpg)
23
50
 
24
51
  ```bash
25
- clipugc auth login
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
- ## Quickstart
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
- End-to-end: character → looks → clip → final UGC ad.
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
- # 1. Authenticate (prompts for your API key)
34
- clipugc auth login
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
- # 2. Check your credit balance and per-action costs
37
- clipugc credits
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
- # 3. Create an AI character
40
- clipugc characters create --description "casual gen-z woman in her early 20s, brown hair, friendly smile"
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
- # 4. Generate reference looks for the character (waits until done)
43
- clipugc images generate --character <characterId> --shots frontal,three_quarter --wait
81
+ ## How it works
44
82
 
45
- # 5. Pick the look you like best
46
- clipugc images list --character <characterId>
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
- # 6. Turn the selected look into a short video clip
49
- clipugc videos create --image <imageId> --prompt "excitedly talking to camera about a new app" --wait
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
- # 7. Merge the clip with your app's screen recording + a hook.
52
- # This creates an AD, which has its own id (printed, or `merged_video_id` with --json).
53
- clipugc videos merge <videoId> --app-video ./screenrec.mp4 --hook "This app fixed my morning routine" --wait
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
- # 8. Download the final UGC ad — by AD id, not the clip id
56
- clipugc ads download <adId> -o ugc-ad.mp4
57
- ```
99
+ ## Quickstart (plain CLI)
58
100
 
59
- Tip: add `--json` to any command to get raw JSON (handy for grabbing ids in scripts), and `--wait` to any generation command to poll with a spinner until it completes.
60
-
61
- ## Commands
62
-
63
- ### Auth
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
- ### Images (looks)
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
- | Command | Description |
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
- `images generate` flags:
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
- | Flag | Values |
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
- ### Videos
122
+ ## Example prompts
134
123
 
135
- | Command | Description |
136
- |---------|-------------|
137
- | `clipugc videos list [--character <id>] [--mergeable \| --finals] [--page N] [--per-page N]` | List your clips. `--character` filters to one AI character, `--mergeable` shows only completed clips not yet merged (ready for `videos merge`). `--finals` lists finished **ads** instead of clips — identical to `clipugc ads list`, and the ids it prints are ad ids. |
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
- ### Ads
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
- A finished UGC ad is its own resource, not a flavour of a clip — so it has its own id space.
150
- **An ad id is not a clip id**: `clipugc ads download 121` and `clipugc videos download 121` address
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
- | Command | Description |
155
- |---------|-------------|
156
- | `clipugc ads list [--status <s>] [--page N] [--per-page N]` | List your finished ads. `--status` is one of `pending`, `processing`, `completed`, `failed`. Same as `videos list --finals`. |
157
- | `clipugc ads show <adId>` | Show ad details: merge status, hook text, watermark, credits charged, source clip id. |
158
- | `clipugc ads download <adId> [-o out.mp4]` | Download the finished ad (`-o` creates missing parent directories; default `clipugc-ad-<adId>.mp4`). |
159
- | `clipugc ads retry <adId> [--wait]` | Re-render a failed ad. Charges the merge credit again, and only works while the app recording is still stored (`can_retry`). |
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
- | Variable | Overrides |
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
- Every command accepts the global `--json` flag to print raw JSON instead of formatted output — use it for scripting and to capture ids:
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 list --mine --json
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
- ### Waiting on long-running jobs
161
+ **Looks** — never re-describe the person; the base image carries the face. Change only
162
+ the setting, outfit and light:
213
163
 
214
- Generation commands (`images generate`, `images variation`, `images retry`, `videos create`, `videos motion`, `videos merge`, `videos retry`, `ads retry`) accept `--wait` to poll with a spinner until the job is `completed` or `failed`. Without `--wait`, the command returns immediately and you can poll with `images status <id>` / `videos status <id>` / `ads show <adId>`.
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
- ### Exit codes
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
- | Code | Meaning |
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
- ## Claude Code Skills
175
+ <details>
176
+ <summary><b>Smirk</b> — "I know something you don't"</summary>
230
177
 
231
- If you use [Claude Code](https://claude.ai/code), this repo ships three skills:
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
- - **`clipugc`** — drive the whole CLI through natural language, with automatic prerequisite checks (CLI installed, logged in, enough credits) and guided end-to-end workflows.
234
- - **`ugc-director`** — a TikTok UGC ad director: turns an app idea into a complete creative plan (silent-reaction archetype, hook text, casting, copy-paste look & video prompts) and executes it with the CLI. Built on research into what actually converts: mouth-closed reaction formats (no lip-sync = no AI uncanny valley), text-overlay hooks, a 12-archetype reaction taxonomy, hook formula library, and a casting matrix by app category.
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
- **Install** via the Claude Code plugin system:
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
- /plugin marketplace add mirzemehdi/ClipUGC-CLI
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
- Or clone this repo and Claude Code picks up the skills from `.claude/skills/` when working inside it.
199
+ <details>
200
+ <summary><b>Head-shake</b> — "why did nobody tell me"</summary>
245
201
 
246
- **Use:**
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
- /ugc-director make a TikTok ad for my habit tracker app
250
- /persona-account create an AI influencer for a fitness account
251
- /persona-account give me the next post
252
- /clipugc create a character for my fitness app ads
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;AAE5D,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;IAE/B,OAAO,OAAO,CAAC;AACjB,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"}
@@ -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}\` (charges the merge credit again)`);
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. Charges the merge credit again')
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);
@@ -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":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,iBAAiB,GAGlB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,cAAc,GAAG;IACrB,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACvD,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE;IACvD,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE;IACrE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE;IAClE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE;CAChG,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IAC1D,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE;IAC7D,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE;IACxD,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAe,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;IACxE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;CAC9G,CAAC;AAEF,SAAS,WAAW,CAAC,OAAqB;IACxC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,cAAc,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9C,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,IAAI,KAAK,CAAC,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,+EAA+E,CAAC,CAAC;IAEhG,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,KAA4B,EAAE,GAAY,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qDAAqD,CAAC;SAClE,cAAc,CAAC,kBAAkB,EAAE,kCAAkC,CAAC;SACtE,cAAc,CAAC,iBAAiB,EAAE,aAAa,CAAC;SAChD,cAAc,CAAC,qBAAqB,EAAE,wDAAwD,CAAC;SAC/F,MAAM,CAAC,eAAe,EAAE,+CAA+C,CAAC;SACxE,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;SAC/F,MAAM,CAAC,KAAK,EAAE,IAA+F,EAAE,GAAY,EAAE,EAAE;QAC9H,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE;YACpC,WAAW,EAAE,IAAI,CAAC,SAAS;YAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,EAAE,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,kDAAkD,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,KAA4B,EAAE,GAAY,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChD,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,aAAa;YAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QAClF,UAAU,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,mEAAmE,CAAC;SAChF,MAAM,CAAC,eAAe,EAAE,kDAAkD,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAClH,MAAM,CAAC,oBAAoB,EAAE,gEAAgE,CAAC;SAC9F,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAA8C,EAAE,GAAY,EAAE,EAAE;QACzF,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE;YAC5D,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QACH,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACtD,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,iCAAiC,YAAY,IAAI,GAAG,WAAW,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE,IAAI,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,0BAA0B,CAAC;SACnC,WAAW,CAAC,4EAA4E,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,2CAA2C,CAAC;SAC7D,MAAM,CAAC,iBAAiB,EAAE,sDAAsD,CAAC;SACjF,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,SAAiB,EAAE,IAAyC,EAAE,GAAY,EAAE,EAAE;QACvG,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,cAAc,IAAI,SAAS,iBAAiB,CAAC,CAAC;YAChF,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,IAAI,SAAS,EAAE,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE;YAC7E,KAAK,EAAE,WAAW,OAAO,CAAC,cAAc,IAAI,SAAS,EAAE;YACvD,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,IAAI;YAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,yBAAyB,CAAC;SAClC,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,SAAiB,EAAE,KAA4B,EAAE,GAAY,EAAE,EAAE;QAC1F,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;QACpC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,gBAAgB,IAAI,CAAC,IAAI,OAAO,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;QAClG,CAAC;QACD,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,2BAA2B,CAAC;SACpC,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,SAAiB,EAAE,IAAyB,EAAE,GAAY,EAAE,EAAE;QACvF,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -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 and its credits were refunded. Re-render it with `clipugc ads retry <adId>`.');
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":"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"}
@@ -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. Charges the merge credit again. */
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. Charges the merge credit again. */
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":"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"}
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: 1 }. */
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. */
@@ -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 — the merge credits were refunded.`);
28
- throw new ApiError(`${label} failed. The merge credits were refunded; retry with \`clipugc ads retry\`.`);
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.`);
@@ -1 +1 @@
1
- {"version":3,"file":"poll.js","sourceRoot":"","sources":["../../src/utils/poll.ts"],"names":[],"mappings":"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"}
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": "0.3.2",
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/mirzemehdi/ClipUGC-CLI.git"
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
  }