{"id":51551325,"url":"https://github.com/renezander030/capcut-cli","last_synced_at":"2026-07-12T14:01:15.396Z","repository":{"id":351059584,"uuid":"1209237271","full_name":"renezander030/capcut-cli","owner":"renezander030","description":"Independent, unofficial CLI to edit CapCut and JianYing projects — subtitles, timing, speed, volume, templates, cut long-form to shorts. No API needed, reads draft_content.json directly. Not affiliated with ByteDance.","archived":false,"fork":false,"pushed_at":"2026-06-27T12:54:10.000Z","size":5178,"stargazers_count":112,"open_issues_count":1,"forks_count":19,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-06-27T14:21:50.756Z","etag":null,"topics":["automation","capcut","capcut-api","capcut-automation","capcut-editor","capcut-subtitles","capcut-template","claude-code-plugin","cli","draft-content-json","jianying","python","srt-export","subtitle-editor","video-to-shorts"],"latest_commit_sha":null,"homepage":"https://renezander.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/renezander030.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["renezander030"],"custom":["https://renezander.gumroad.com/l/viral-youtube-shorts-blueprint","https://renezander.com/contact"]}},"created_at":"2026-04-13T08:19:44.000Z","updated_at":"2026-06-27T12:54:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac7ea84d-0268-44ff-b079-be5616f6d523","html_url":"https://github.com/renezander030/capcut-cli","commit_stats":null,"previous_names":["renezander030/capcut-cli"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/renezander030/capcut-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renezander030%2Fcapcut-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renezander030%2Fcapcut-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renezander030%2Fcapcut-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renezander030%2Fcapcut-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/renezander030","download_url":"https://codeload.github.com/renezander030/capcut-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renezander030%2Fcapcut-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35393398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-12T02:00:06.386Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","capcut","capcut-api","capcut-automation","capcut-editor","capcut-subtitles","capcut-template","claude-code-plugin","cli","draft-content-json","jianying","python","srt-export","subtitle-editor","video-to-shorts"],"created_at":"2026-07-10T00:00:52.211Z","updated_at":"2026-07-12T14:01:15.373Z","avatar_url":"https://github.com/renezander030.png","language":"TypeScript","funding_links":["https://github.com/sponsors/renezander030","https://renezander.gumroad.com/l/viral-youtube-shorts-blueprint","https://renezander.com/contact"],"categories":["Creative Media"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/renezander030/capcut-cli/master/media/og-card.png\" alt=\"capcut-cli — the CapCut/JianYing CLI any LLM agent can drive: zero dependencies, no server, both namespaces\" width=\"640\"\u003e\n\u003c/p\u003e\n\n# capcut-cli\n\n[![CI](https://github.com/renezander030/capcut-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/renezander030/capcut-cli/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/capcut-cli.svg)](https://www.npmjs.com/package/capcut-cli)\n[![npm downloads](https://img.shields.io/npm/dm/capcut-cli.svg)](https://www.npmjs.com/package/capcut-cli)\n[![node](https://img.shields.io/node/v/capcut-cli.svg)](https://nodejs.org)\n[![license](https://img.shields.io/npm/l/capcut-cli.svg)](./LICENSE)\n\nEnglish | [中文](./README.zh-CN.md)\n\n\u003e **Disclaimer:** This is an independent, community-maintained project. It is **not affiliated with, sponsored by, or endorsed by** CapCut, JianYing, or ByteDance Ltd. \"CapCut\" and \"JianYing\" (剪映) are trademarks of ByteDance Ltd. All product names, logos, and brands are the property of their respective owners and are used here only for identification (nominative) purposes.\n\n**An independent CLI for CapCut / JianYing that any LLM agent can drive — zero dependencies, no server, both namespaces in one binary.**\n\nJSON in, JSON out: every command reads and writes the local draft store directly, with no MCP server or HTTP daemon. On newer CapCut versions it detects and synchronizes every readable timeline target instead of assuming `draft_content.json` is the only source of truth. That gives any model (Claude, DeepSeek, GLM, Kimi) a deterministic boundary for inspection, building, subtitles, captions, translation, and long-form cuts.\n\n**Use it three ways:**\n\n- **CLI** — `npm install -g capcut-cli`, then `capcut \u003ccommand\u003e \u003cproject\u003e`\n- **Library** — `import { loadDraft, lintDraft, saveDraft } from \"capcut-cli\"` (typed, zero-dep)\n- **Queue runner** — `capcut serve` reads JSONL jobs from stdin, for [n8n / Make / Coze](./examples/serve-automation.md)\n\n\u003e **New in v0.13.0:** timeline-mirror repair for CapCut ≥ 8.7 (`sync-timelines`), word-level subtitle export (`export-srt --granularity word`, SRT + VTT), CapCut-native keyframe easing (`keyframe --easing`), deterministic scene-cut detection (`detect-scenes`), portable text-style presets (`make-preset` + `--preset`), and `lint --fix` auto-repair. Full details in the [changelog](./CHANGELOG.md).\n\n## Install\n\n**Prerequisites:** Node ≥ 18 (built-ins only — no native modules). Optional tools unlock specific commands: Whisper for `caption`, FFmpeg for `render`, ffprobe for automatic media metadata, and `ANTHROPIC_API_KEY` for `translate`.\n\n```bash\nnpm install -g capcut-cli      # or: npx capcut-cli \u003ccommand\u003e\n```\n\nBuild from source instead: `git clone https://github.com/renezander030/capcut-cli \u0026\u0026 cd capcut-cli \u0026\u0026 npm install \u0026\u0026 npm run build` (then `npm link` to expose `capcut`).\n\n## Quickstart\n\n```bash\ncapcut doctor                                  # verify Node, FFmpeg, whisper, draft dirs\ncapcut quickstart my-first --video clip.mp4    # create + add input + lint, prints the \"open in CapCut\" step\ncapcut info ./my-first/                         # inspect the draft (add -H for a table)\n```\n\nThen open the project in CapCut to review and render. Every short-video platform forbids automated upload, so the publish click stays human.\n\n## Commands\n\nJSON by default (pipe to `jq`); add `-H` for a human-readable table. Pass `--jianying` to use the JianYing enum namespace. Run `capcut \u003ccommand\u003e --help` for full flags.\n\n| Group | Commands |\n|-------|----------|\n| **Inspect** | `info` · `tracks` · `materials` · `version` · `lint` |\n| **Browse / drill in** | `segments` · `texts` · `segment` · `material` |\n| **Create** | `init` · `quickstart` · `compile` (build a draft from a JSON spec) |\n| **Preview** | `render` (low-res ffmpeg proxy — not CapCut's final render) |\n| **Add** | `add-video` · `add-audio` · `add-text` (Wikimedia URLs supported, license-checked) |\n| **Edit / animate** | trim · speed · volume · transitions · masks · text/image animations · easing curves |\n| **Templates** | apply and extract reusable layouts · `make-preset` (portable text-style presets) |\n| **Subtitles \u0026 i18n** | `caption` · `import-srt` · `export-srt` (line/word SRT + VTT) · `translate` (multi-language draft clone) |\n| **Effects** | `sfx` · `chroma` (chroma key) |\n| **Long-form → short** | `cut` · `detect-scenes` (ffmpeg scene-cut detection) |\n| **Automation** | `serve` (stateless JSONL runner) · `migrate` · `doctor` · `sync-timelines` (8.7 mirror repair) |\n\n**Full reference** for every command, option, and exit code: **[docs/command-reference.md](./docs/command-reference.md)**.\n\n## Sponsor\n\ncapcut-cli is MIT and free forever. Sponsoring funds faster releases and same-week support for new CapCut / JianYing versions — and unlocks power-user extras:\n\n- **$5/mo · Supporter** — sponsors-only release notes plus your name in `BACKERS.md`. Keep the project moving.\n- **$25/mo · Pro** — invite to the private `capcut-cli-pro` repo: premium template and caption-style packs, the full Claude viral-shorts pipeline, ready-to-run `compile` specs, and early-access builds. Plus priority issue triage.\n- **$100/mo · Team** — everything in Pro for up to 5 teammates, written commercial-use confirmation, your logo in this README, and priority fast-tracking of the features your team needs.\n\n[**Become a sponsor →**](https://github.com/sponsors/renezander030)\n\n\u003e Using capcut-cli at work? The Team tier pays for itself the first afternoon it saves your engineers.\n\n## How it works\n\nCapCut/JianYing store each project as local JSON. capcut-cli loads that store, validates against a version-aware schema, applies your edit, and writes it back atomically (with a `.bak`). No project files are uploaded anywhere; nothing runs as a service. See [docs/version-support.md](./docs/version-support.md) for the CapCut/JianYing versions and schema flags it understands.\n\n## Docs \u0026 examples\n\n- [docs/command-reference.md](./docs/command-reference.md) — every command and flag\n- [examples/](./examples/) — end-to-end recipes (VO alignment, serve automation, batch subtitle correction)\n- [docs/version-support.md](./docs/version-support.md) · [docs/jianying-encryption.md](./docs/jianying-encryption.md)\n- [CHANGELOG.md](./CHANGELOG.md) · [Releases](https://github.com/renezander030/capcut-cli/releases) — what's new\n- [draftcat](https://github.com/renezander030/draftcat) — sibling project: governed AI pipelines (Go, MIT), same single-binary, no-API design\n\n## Trademarks\n\nCapCut™ and JianYing™ (剪映) are trademarks of ByteDance Ltd. This project is unofficial and is not affiliated with or endorsed by ByteDance; the marks are used nominatively to describe interoperability.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenezander030%2Fcapcut-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenezander030%2Fcapcut-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenezander030%2Fcapcut-cli/lists"}