Local shot planner + Runway API submitter for AI-generated music videos.
This version is shaped around the current API reality:
- API billing is separate from the web app
- low-tier accounts may have concurrency = 1
- daily generation count is often more important than raw queue depth
- Loads a shot manifest
- Estimates credit cost before submission
- Filters by status and priority
- Caps daily submissions and credit spend
- Uploads local input stills to Runway
- Submits image-to-video generations
- Downloads completed outputs
- Logs everything to JSONL
npm install
cp .env.example .env
# add your Runway API keyPreview your plan:
npm run planSubmit only ready shots, with a max of 5 generations and 300 credits:
npm run submit -- --only ready --max-daily-submits 5 --max-credit-spend 300Run in dry-run mode:
npm run submit -- --only ready --dry-runEach shot can include:
id: unique identifiersection: intro / verse / chorus / etcstatus:idea,ready,submitted,keep,rerun,junkpriority: lower number means earlier submissionpromptText: prompt for Runwayinput: optional local image pathduration: secondsratio: output resolution string like1280:768seed: optional seedmodel: defaults togen4.5notes: freeform notes
- Default credit estimator assumes Gen-4.5 at 12 credits / second.
- This is just a local planning heuristic. Check current Runway pricing before large runs.
- The CLI favors deliberate selection over blindly filling slots.