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.

소스 정보

저장소
jnMetaCode/openshorts
최근 소스 활동
2026년 9월 23일 09:50
감지된 SKILL.md 언어
영어
스타
45
포크
10

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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).
GitHub에서 보기