Skip to main content

openshorts-video

Use this skill whenever the user wants a finished short video (talking-head explainer, opinion piece, product pitch, or an AI mini-drama) from a topic, article link, or script, using OpenShorts (Kaipian, github.com/jnMetaCode/openshorts). It installs OpenShorts locally, writes the script with the user's own text model, picks free stock footage or paints frames on-device, synthesizes the voice-over with free Edge TTS, burns captions, renders a 1080×1920 mp4 with cover, SRT and publish copy, and returns the file paths. Default path costs ¥0 / $0.

Quellinformationen

Repository
jnMetaCode/openshorts
Letzte Quellaktivität
23. September 2026 um 09:50
Erkannte Sprache von SKILL.md
Englisch
Sterne
45
Forks
10

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
openshorts-video
description
Use this skill whenever the user wants a finished short video (talking-head explainer, opinion piece, product pitch, or an AI mini-drama) from a topic, article link, or script, using OpenShorts (Kaipian, github.com/jnMetaCode/openshorts). It installs OpenShorts locally, writes the script with the user's own text model, picks free stock footage or paints frames on-device, synthesizes the voice-over with free Edge TTS, burns captions, renders a 1080×1920 mp4 with cover, SRT and publish copy, and returns the file paths. Default path costs ¥0 / $0.
compatibility
Needs an AI agent with terminal, network and filesystem access. Node.js 20+ and git. macOS, Linux and Windows. Uses `npm`; no Python.
metadata
{"author":"jnMetaCode","version":"2.0.0-alpha.26","upstream":"https://github.com/jnMetaCode/openshorts","homepage":"https://os.aiolaola.com"}
# OpenShorts — make a short video from one sentence The user gives a topic, an article URL, or a script. You do everything else: install, health-check, script, footage, voice, captions, render, publish pack. Deliver file paths at the end. Do not stop after explaining the steps. ## Required behavior 1. Ask the user for at most one thing, once: an API key for a text model (DeepSeek / Kimi / GLM / OpenAI-compatible…) **only if** `openshorts new` reports a missing key. Everything else (footage, voice, rendering) is free and needs no key. 2. Do not ask for confirmation before installing, running `doctor`, installing the bundled ffmpeg, or rendering. Send one short progress line, then execute. 3. Run long commands in the foreground with a timeout of at least 15 minutes. Do not poll with `sleep` / `ls` loops. 4. On failure read only the last 30 lines of output; OpenShorts prints the real cause (missing libass, missing key, quality-check items), not just an exit code. 5. Never print API keys or the contents of `~/.ao` / `~/.openshorts/config.json`. ## Defaults Unless the user says otherwise: Chinese talking-head explainer, 60 s, 1080×1920, free Edge TTS voice, Wikimedia Commons / Pexels footage, captions burned in, AI-content label on. Output goes to `~/OpenShorts/<project>/`. For English use `--lang en` (script, voice and caption line-breaking switch together). ## Execution ### 1. Install (once) ```bash node -v # must be >= 20 npx openshorts version # installs on first use; no clone needed ``` ### Alternative: use the MCP server instead of the CLI If your host supports MCP, register `npx openshorts mcp` and call `create_video` → poll `job_status` every 20–30 s → `doctor` on failure. It runs the same pipeline as the CLI steps below and returns the same file paths; prefer it when the host would otherwise time out on a 10-minute shell command. ### 2. Health check — do not skip ```bash node bin/openshorts.mjs doctor ``` If it says ffmpeg lacks **libass** (captions cannot be burned in — Homebrew's ffmpeg has this problem), run: ```bash node bin/openshorts.mjs install-ffmpeg # ~40 MB, pinned build with sha256 check, installed to ~/.openshorts/bin only ``` ### 3. Write the script ```bash node bin/openshorts.mjs new koubo-kepu --topic "<topic or full script>" # Chinese node bin/openshorts.mjs new --lang en --topic "<topic or full script>" # English ``` Add `--local-dir <folder>` to prefer the user's own footage, `--voice <id>` to pick a voice (`npm run voices` lists them). If the command reports a missing text-model key, ask the user for one key, then configure it once: ```bash DEEPSEEK_API_KEY=<key> node bin/openshorts.mjs new koubo-kepu --topic "<topic>" # any provider the engine knows: DEEPSEEK_API_KEY / MOONSHOT_API_KEY / OPENAI_API_KEY … ``` The command prints the project path: `~/OpenShorts/<project>/project.json`. ### 4. Estimate, render, pack ```bash node bin/openshorts.mjs estimate ~/OpenShorts/<project>/project.json # cost is ¥0 on the default path; tells the expected wait node bin/openshorts.mjs run ~/OpenShorts/<project>/project.json # footage → voice → captions → mp4 + quality check node bin/openshorts.mjs export ~/OpenShorts/<project>/project.json --platform douyin # or shorts / bilibili / channels ``` `run` reuses finished shots on re-runs; `run … --only s2` redoes one shot. `openshorts rm <project.json> --yes` deletes a project the user no longer wants (ask first — it removes the whole folder). If `run` ends with quality-check ⛔ items, report them verbatim to the user instead of calling it done. ## Exit handling On success `run` prints: ```text ✓ 成片:/Users/…/OpenShorts/<project>/<project>.mp4(58.3s,出片用时 47 秒) 字幕:…/<project>.srt 封面:…/<project>-cover.jpg 发布文案:…/<project>-发布文案.txt ``` Return those four paths plus the publish pack directory from `export`. If the output contains `⛔`, return the message as-is and stop; do not retry blindly. ## Notes for the agent - Everything runs on the user's machine; no video is uploaded anywhere. Only the script step calls the user's own text-model API. - `openshorts drama --plan -i story="…"` previews the cost of an AI mini-drama before spending anything; only run `drama` without `--plan` after the user has seen the estimate. - Web UI alternative: `npm run openshorts` opens http://127.0.0.1:4174 (the same pipeline, four steps).
Auf GitHub ansehen