跳到正文
cccskills
免费在 GitHub 公开中文介绍

VideoEssay

根据内容和立场制作配有旁白的视频文章,也可将帖子、想法或功能做成短解说视频,或用作者录音、声音克隆或 DA 朗读博客并制作成视频,供检查后接收。

原文查看原文说明

Turns content plus a stance into a video essay narrated by the DA, any post, idea or feature plus a length into a short DA-narrated explainer video, or the author's own audio reading of their blog post (a recording or their voice clone) into a finished video of that post, with scripted visuals rendered on HyperFrames, presence layer, rendered and read back. USE WHEN video essay, explainer video, short video about this post, N-minute video of my blog post, make a video about this, respond to this video, argue against this in a video, debate this, video response, DA video, narrated video, turn this essay into a video, react to this interview, make a video from my audio, I recorded myself reading the post, turn this post into a video, video from my voice clone, audio to video. NOT FOR the user's camera footage or clips (Video), audio-only podcast cuts (Video), one-off animation (HyperFrames).

danielmiessler/LifeOS星标 19,636(GitHub 19,636 + cccskills 0)
集成工具YouTube

实测评分 未实测

查看安装方法

适用场景

  • 将对访谈的回应制作成视频文章
  • 用短视频介绍文章或功能
  • 为博客配录音并制作成视频
  • 用声音克隆朗读博客并制作视频

中文介绍

功能

VideoEssay 可根据素材制作带旁白的视频。制作视频文章时,它会先围绕某个立场整理书面论点,经过确认后再规划画面结构和脚本,并渲染视频。它也能按指定时长,为帖子、想法或功能制作简短解说视频,不必表达特定立场。另一种方式是把博客文章做成视频,旁白可使用作者的录音、作者的声音克隆,或 DA 的朗读。视频可以呈现博客页面,并配上与朗读段落相对应的画面。完成后,你可以先检查内容和画面,再接收成片。

适用场景

想以视频表达对访谈或其他视频的看法、用短片介绍文章或功能,或制作贴合博客内容的视频时,可以使用它。它也适合把作者自己朗读博客的录音制作成视频。

使用示例

  • “针对这次访谈制作一部视频文章,表达反对意见。”
  • “把最新文章做成两分钟的解说视频。”
  • “用我录制的音频把这篇博客制作成视频。”

注意事项

首次使用需要进行设置。语音合成使用 Fish Audio。若要使用作者的声音克隆,还需要相应的语音 ID 和 API 密钥。此技能不会发布视频;发布需通过单独流程完成。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

文档检查

AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。

安全性发送数据、删除文件、执行命令等是否有说明
A良好每次运行停在待审状态,技能不会上传或发布视频。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足需要初始设置、Fish Audio,克隆声音还需 ID 和密钥;详情见 Setup.md。

不计入评分。 由 AI(OpenAI Codex)于 2026年10月28日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(43)

  • SKILL.md14.3 KB
  • Intents/Argue.md5.2 KB
  • Intents/Explainer.md7.3 KB
  • Intents/Full.md1.4 KB
  • Intents/Produce.md6.9 KB
  • Intents/Script.md3.8 KB
  • Intents/Voice.md10.1 KB
  • References/ScriptSchema.md4.3 KB
  • References/Style.md18.7 KB
  • References/Tools.md5.5 KB
  • Setup.md14.5 KB
  • Tools/.gitignore30 B
  • Tools/Align.ts6.6 KB
  • Tools/Build.ts20.8 KB
  • Tools/Capture.ts65.3 KB
  • Tools/Clean.ts21.7 KB
  • Tools/Compose.ts14.9 KB
  • Tools/CompositionTypes.ts5.5 KB
  • Tools/Describe.ts8.4 KB
  • Tools/DesignAudit.ts132.0 KB
  • Tools/DiagramLayout.ts29.0 KB
  • Tools/EssayLint.ts6.3 KB
  • Tools/Ingest.ts51.3 KB
  • Tools/Intake.ts3.4 KB
  • Tools/Lib.ts28.3 KB
  • Tools/Meaning.ts20.7 KB
  • Tools/Motion.ts12.1 KB
  • Tools/Narrate.ts24.4 KB
  • Tools/package.json418 B
  • Tools/Page.ts26.1 KB
  • Tools/PagePresence.ts31.8 KB
  • Tools/PageVisuals.ts88.9 KB
  • Tools/PlanBeats.ts4.0 KB
  • Tools/ReadCamera.ts11.2 KB
  • Tools/ReadSync.ts13.3 KB
  • Tools/Run.ts21.0 KB
  • Tools/Score.ts14.6 KB
  • Tools/ScriptLint.ts9.4 KB
  • Tools/Setup.ts11.1 KB
  • Tools/Theme.ts21.9 KB
  • Tools/Thumbnail.ts6.8 KB
  • Tools/tsconfig.json420 B
  • Tools/Verify.ts31.2 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

VideoEssay

Contents: Ideal State · Intent Routing · Tools · Data & Config · Quality loop · Gotchas · Examples

The DA's own video format, in two modes, each a fully automated production that proves itself before the user sees it. Essay mode argues first, then renders. Voice mode (run.json mode: "voice") turns the author's post, read by their recording, their voice clone or the DA reading their exact words (run.json narrator recorded | clone | da), into a video of the real post page scrolling with the spoken sentence highlighted, inserts directed from what the post argues (LIFEOS/TOOLS/VideoMeaning: MeaningMap, Direction, a two-vendor plan review), and the reader's portrait in the corner badge (the author's, or the DA's on a DA-read run).

Ideal State

  • An essay run argues before it renders: a linted, steelmanned Essay.md with verbatim, correctly attributed quotes reaches the user at the checkpoint (unless the ask skips it), and only then becomes Script.json and a render.
  • A voice run narrates only the author's own words, its page reads like the live post, and every page highlight and insert is timed to the paragraph being spoken.
  • Every render reads itself back before anyone sees it: Out/verify.json all green, and the frames and the Out/review/ studio pass read.
  • The mp4 and thumbnail reach ~/Downloads/<slug>/ only through Deliver.ts, after a passing ArtDirection critique and Proof receipt on those exact bytes.
  • Every run stops in review state; nothing uploads from this skill. Publishing is the user's separate call through Video.

Intent Routing

IntentTriggerFile
Argue"write the argument", "essay first", "what's our take on this", the first step of every new runIntents/Argue.md
Script"script it", "turn the essay into beats", "plan the visuals"Intents/Script.md
Produce"produce it", "render the essay", "make the video from the script", re-renders after an editIntents/Produce.md
Full"respond to this video", "video essay on this", "argue X in a video", raw content plus a stance to argueIntents/Full.md
Voice"make a video from my audio", "I recorded the post", "use my clone to read the post", a post plus a recordingIntents/Voice.md
Explainer"make an explainer video", "a short video about this post / idea / feature", "a 2-minute video of my latest post", any source plus a length with no stance to argueIntents/Explainer.md

Full is Argue → review checkpoint → Script → Produce. The checkpoint after the essay is the default: text is cheap to change and a render is not. The user skips it by saying so in the ask ("straight through", "no review, just make it"). Voice has no essay and no DA-written narration; its narration rule, stages and inserts are in Intents/Voice.md. Explainer writes an Essay.md with kind: explainer (narration only, no opposing quotes) at the length asked for, then runs Script and Produce straight through; its optional YouTube leg (thumbnail on the post's header image, full description, private upload) runs through Video, never this skill.

FileRead when
References/ScriptSchema.mdwriting or linting Script.json
References/Style.mdcomposing frames, the thumbnail, or running DesignAudit (the house design system)
References/Tools.mdrunning or debugging one stage tool directly, choosing a flag, or finding a run's files
Setup.mdfirst run on a machine, any tool stops naming Setup.md, or a Config.json field's meaning or default

Tools

Tools/Run.ts drives every run; the other stage tools, the run layout and the composition files are in References/Tools.md.

ToolContract
Tools/Run.ts --run <slug> [--from stage] [--to stage] [--force] [--music ambient|pulse] [--accept-review-shortfall] [--polish]essay: lint, then narrate → score beside capture, then build, then verify beside thumbnail, then describe once verify passes (other stages wait only for what they read); after any failure no stage starts; voice: clean → align → plan → meaning → lint → capture → build → verify → describe

Data & Config

Everything personal lives in the user zone. First-time setup is Setup.md, and bun skills/VideoEssay/Tools/Setup.ts --check reports what is still missing. With no config file every tool stops and names Setup.md.

  • LIFEOS/USER/CUSTOMIZATIONS/SKILLS/VideoEssay/Config.json: fonts (a missing face is an error, never a fallback), fontFamilies, avatar, runsRoot, blogBaseUrl, possessive, presenter, narrators.da, colors, badge, skipParagraphs and styleFile; each field's meaning and default is in the Setup.md field table, the face roles and colour keys in Setup.md § Faces and colours. Relative paths resolve against the config dir. Never change narrators.da.label for one run; pass --label at ingest instead.
  • LIFEOS/USER/CUSTOMIZATIONS/SKILLS/VideoEssay/public/: created by Setup.ts and linked from Tools/public. It holds the avatar cut-out and staged runs, never the skill tree.
  • Voices: narration is synthesized on Fish Audio (LIFEOS/TOOLS/FishTTS.ts). The DA reads with its one voice, LIFEOS_CONFIG.toml [da.voices.main]: its fish_reference_id names the Fish voice and its fish_speed is the pace (no separate presenter voice since 2026-10-24). The author's clone uses [principal.voice] plus two env ids: FISH_PRINCIPAL_VOICE_ID, the Fish clone itself, and ELEVENLABS_PRINCIPAL_VOICE_ID, the id narration recognizes as a clone read. Key: FISH_API_KEY. Fish applies the pace itself, so no chunk is stretched afterward. Setup.md § LIFEOS_CONFIG.toml and § Accounts and secrets have the details.
  • Names: the badge label defaults to the first word of principal.name and the reader to the DA display name, both from LIFEOS_CONFIG.toml. A DA-read badge shows READ BY <READER> · <POSSESSIVE> AI (THEIR AI unless Config.json possessive says otherwise); a post the DA wrote itself (--label <DA NAME> at ingest) reads WRITTEN AND READ BY <READER>. Neither ever carries a voice-vendor logo or a clone credit.
  • Pronunciations (optional): LIFEOS/USER/PRINCIPAL/PRONUNCIATIONS.json when present, plus a per-run pronunciations.json, applied to spoken text only.
  • Capture (required for voice runs and capture inserts) drives the Interceptor test profile whose context id is INTERCEPTOR_TEST_CONTEXT_ID in LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Interceptor/preferences.env; Capture.ts stops naming that file when it is missing.
  • Run.ts refuses a run dir under the config root or the user-data repo.

Quality loop

Before the critique, every render passes the Assay video eval set (video-eval, skills/Assay/Tools/VideoEval.ts) in Run.ts's eval stage, as each intent's ## Evals section declares it; a blocking result fails the run.

Nothing this skill produces reaches the user as a first draft. The artifact goes through Skill("ArtDirection"): a direction council before new or large work, then the cross-vendor critique panel (skills/ArtDirection/Tools/Critique.ts) scores it against the rubric and names defects (for a run with a Meaning/Direction.rendered.json, pass --direction <run>/Meaning/Direction.rendered.json so each beat is also judged against its own rationale), then this skill iterates on those defects until the bar or reports the shortfall. Record the user's verdict with skills/ArtDirection/Tools/Calibrate.ts.

Hand-over is skills/ArtDirection/Tools/Deliver.ts. It refuses without a passing critique of those exact bytes and a passing Proof receipt (skills/Assay/Tools/Proof.ts run --artifact <file>), and it writes the delivery receipt the gate reads. Critique Out/essay.mp4 with --out <run> so Critique.json sits one level above it, then run Deliver.ts --artifact <run>/Out/essay.mp4 --critique <run>/Critique.json --to ~/Downloads/<slug>/. The thumbnail ships as the ≤ 2 MB q85 JPEG (Intents/Produce.md), critiqued and delivered the same way.

Gotchas

These change what a run does. Failures the tools already handle are documented at their fix sites in Tools/ (the Capture.ts header, Ingest.ts, Clean.ts, Narrate.ts, Build.ts, Page.ts, Verify.ts); read those when debugging that tool.

  • Tools/public must be the symlink into the USER store, never a real directory. A stray empty public/ dir (left behind by moving the store, for one) makes every Build and Setup fail on the publicDir invariant; delete it and let Setup.ts recreate the link.
  • Writing the skill's own files from a Bash heredoc trips the taint guard when the session has read outside content. Use the file tool for intent files in a session that has ingested a transcript.
  • HyperFrames check fails on text layered under a chapter card (content_overlap) unless both card text blocks carry data-layout-allow-overlap; the attribute is not inherited.
  • Narration's word timings come from Fish Audio's timestamped speech (FishTTS.ts) on the model TTS_MODEL names (CROSS_VENDOR.fishVoice). Do not switch TTS_MODEL without re-probing that the new model still returns word timings; captions and beat timing depend on them.
  • Interceptor's default screenshot is a DOM render that draws every web font in Times. Capture.ts embeds the page's loaded faces and replaces post.png only once a marker pass proves the web fonts drew. DOM renders still miss ::before/::after content and mask-image icons (a nav's arrow glyphs, say). --pixel shows all of it, but through Capture.sh it is JPEG quality 50, which breaks the exact-colour marker pass (Capture.test.ts covers the fallback-face judgment).
  • HyperFrames' own pre-render check measures text contrast (WCAG AA 4.5:1) and text overlap at sampled times, and refuses the render (white text on a mid-tone coloured header can fall under 4.5:1; a result wider than the space past its stop can overlap a lane label mid-build). Text colours come through readableOn() against the run's own ground, and DesignAudit measures at settle only, so run the seam check on the staged project when a render is refused; its raw JSON (hyperframes check <dir> --json) names the element, colours and time.
  • The rendered mp4 comes out quieter than the staged narration.wav, inside the HyperFrames render seam. Build.ts replaces the mp4's audio with exactly what the composition plays; voice renders fail Verify's −14 ± 1 LUFS if that replacement is skipped (Build.test.ts "delivered loudness").
  • Embedded frames (tweets, videos, widgets) never draw in the DOM-render capture, and never lay out in a hidden tab (they read "LOADING TWEET…" for the whole video). Capture.ts shoots each embed in a headless copy of the pinned browser and pastes the pixels in; loading markers must clear within 30 s or the capture fails, and it never writes a loading state. A link card taller than the reading band is never whole at reading zoom; show it with a screenshot insert of the post itself, selected by the card's own link.

Examples

Example 1: respond to an interview

User: "Make a video essay answering this interview — I disagree with most of it: <youtube url>"
→ Full: Intake pulls the transcript; Argue writes Essay.md (quotes lint-verified, steelman, disagreement, argument), adversarial read, plus the optional writing audits when installed
→ checkpoint: the essay is shown; on "go", Script.json is written and linted
→ Produce: verify.json green, frames read; mp4 and thumbnail delivered through Deliver.ts and the description copied, all in ~/Downloads/<slug>/

Example 2: the DA reads a new post

User: "DA-read video of my new post on composting"
→ Voice: Ingest --narrator da; the post's own words narrated, its page scrolling with the spoken sentence highlighted, embeds and link cards as on the live page
→ meaning-directed inserts on the paragraphs they illustrate; verify.json green; critiqued and delivered to ~/Downloads/<slug>/

Example 3: edit one paragraph after review

User: "Change the ending — softer on the delete-everything advice"
→ Edit Essay.md and the affected beats in Script.json
→ Run.ts --from narrate: only the changed beats re-synthesize; captures stay cached; re-render, re-verify

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

AnnualReports

免费有简介

按类别或厂商查找并获取网络安全报告,比较威胁、勒索软件、数据泄露、云安全和AI趋势。分析会注明每项数据的厂商、年份及报告,并分别呈现来源间的分歧。

  • 按类别查找威胁报告
  • 获取指定厂商的报告
  • 比较多家厂商的勒索软件趋势
danielmiessler/LifeOS2万2026年10月28日 更新

ApertureOscillation

免费有简介

通过三轮分析,对比单个功能或组件的设计需求与整个系统的目标,梳理两者的冲突、合适的实现范围,以及方案是否符合整体方向。

  • 判断服务或库是否应拆分
  • 比较功能需求与产品方向
  • 检查新组件是否符合现有系统
danielmiessler/LifeOS2万2026年10月28日 更新

Aphorisms

免费有简介

按文章主题寻找格言或引文,按相关程度排序,并附上作者和推荐理由。可添加带出处的引文、按主题研究思想家的言论、整理使用记录,帮助避免重复引用。

  • 为新闻简报寻找引文
  • 保存有出处且不重复的引文
  • 按主题研究思想家的言论
danielmiessler/LifeOS2万2026年10月28日 更新

Art

免费有简介

按用途选择制作流程,生成博客插图、技术图解、比较图、漫画和图标等视觉内容,并输出供预览的图像。

  • 制作博客标题图
  • 解释系统结构
  • 展示比较或时间线
danielmiessler/LifeOS2万2026年10月28日 更新

ArtDirection

免费有简介

依据简报和制作标准评估图片、影片、幻灯片及网站页面截图,由视觉评审给出评分和缺陷优先级,支持有限轮次的修改;通过评审后才能交付,并可记录人工评分供后续校准。

  • 按优先级整理图片修改项
  • 依标准评估影片或幻灯片
  • 发布前检查视觉效果
danielmiessler/LifeOS2万2026年10月28日 更新

ArXiv

免费有简介

按主题、研究领域或论文编号查找 arXiv 论文,并整理标题、作者、摘要和链接;查看新投稿,也可在有内容时获取 AlphaXiv 的人工智能生成概述。

  • 查看人工智能和机器学习新论文
  • 查找特定主题的论文
  • 按论文编号或 arXiv 网址查询
danielmiessler/LifeOS2万2026年10月28日 更新

查看 danielmiessler 的全部技能

报告此技能的问题