About book-video-factory
book-video-factory is a skill for producing book videos through a gated, revision-aware workflow. It supports a bilingual template style and a vertical paper-collage explainer style, while keeping assets, approvals, and release records project-local.
Key features
- 01Two selectable visual profiles
- 02Project-local assets and evidence
- 03Hash-bound approvals and manifests
- 04Production gates and cost ledger
- 05Optional ChatCut editing handoff
Use cases
- 01Producing a bilingual book video
- 02Creating a vertical paper-collage explainer
- 03Tracking approvals across revisions
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ jaxxchen003/ book-video-factory --skill book-video-factoryAfter installing, type/book-video-factoryin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/first-run.mdpaper-collage-explainer.mdquality-gates.mdruntime/book_video_factory/DEPENDENCIES.mdpyproject.tomlREADME.mdruntime/book_video_factory/config/brand_voice_profile.jsonmusic_sources.jsontopic_scoring.jsonvideo_style_v2.jsonvoice_candidates.jsonruntime/book_video_factory/config/release_profiles/book-v4-bilingual-3x4.jsonbook-vox-vertical-9x16-v1.jsonruntime/book_video_factory/config/style_profiles/book-editorial-bilingual-v2.jsonpaper-collage-explainer-v1.jsonruntime/book_video_factory/docs/ASSET_PROVIDER_POLICY.mdCONTENT_SYSTEM_BRIDGE.mdCONTRACTS.mdREFERENCE_1_STYLE_SPEC.mdRUNBOOK.mdSTABLE_WORKFLOW.mdTOPIC_LIBRARY_AND_OPERATIONS.mdWAREHOUSE_CONTRACT.mdruntime/book_video_factory/resources/fonts/README.mdSmileySans-OFL.txtruntime/book_video_factory/schemas/approval_event.schema.jsonassembly_brief.schema.jsonclaim.schema.jsoncontent_system_package.schema.jsonDetails
From the project README图书视频工厂
First use
-
Resolve
SKILL_ROOTas the directory containing thisSKILL.md; do not assume a particular user home directory, operating system, brand, voice, font, or credential. -
In an empty or new workspace, run:
python3 <SKILL_ROOT>/scripts/bootstrap_workspace.py --workspace . python3 <SKILL_ROOT>/scripts/doctor.py --profile planningBootstrap copies the bundled deterministic runtime into
book_video_factory/; it does not download hidden media or depend on the maintainer's machine. -
Create a project only after the user approves the book/topic:
python3 <SKILL_ROOT>/scripts/bootstrap_workspace.py \ --workspace . --slug <slug> --book-title '<title>' --author '<author>'If the topic comes from a structured content asset system, add
--mode content-system-backed. This mode requires a validated content package and traceability map before assets can pass their gate. -
Read
references/first-run.mdbefore generating the first production package. Readreferences/quality-gates.mdbefore declaring a release ready.
Working model
- Keep reusable workflow/configuration in
book_video_factory/and project-specific evidence/media inbook_video_warehouse/. - Treat all book covers, quotations, BGM, voice references, reference videos, generated assets, and credentials as user-owned/project-local inputs. Never ship, download, clone, or reuse a hidden default asset.
- Create a new release directory for every revision. Preserve the local master as the source of truth; ChatCut is an optional editable polish layer.
- Keep human gates for topic approval, script approval, source/rights approval, native-language review, and publish approval.
Style profiles
Select one style profile before making assets; never silently mix their frame, typography, or review contracts.
- 双语编辑模板图书视频(原风格) — machine ID
book-editorial-bilingual-v2. Deterministic 3:4 bilingual template with a real cover, 12 approved stills, local narration, rendered captions, and an optional 9:16 derivative. - VOX风格图书视频(新增风格) — machine ID
paper-collage-explainer-v1. A 9:16, voice-led editorial paper-collage explainer made from 4–8-second visual beats. It is a descriptive public label, not an affiliation claim or permission to imitate a named publisher/program. Read references/paper-collage-explainer.md before selecting it.
The original style is the backward-compatible default. For VOX style, create the project with --style-profile paper-collage-explainer-v1 and explicitly choose one generation lane:
gemini-api— programmatic lane. Requires a user-authorizedGEMINI_API_KEY, the current Google Gen AI SDK, provider cost/quota approval, and an immutable operation/output record. Usegemini-omni-flash-previewthrough the Interactions API by default; useveo-3.1-generate-previewthroughgenerate_videoswhen first/last-frame control or video extension is required.google-flow— manual creative lane. Requires current account/region eligibility, an eligible Google AI plan, available credits, and a user-operated browser session. Do not assume Flow exposes a programmable API; import only user-authorized exports and record prompts, visible credits, hashes, and manual-run provenance.
The VOX-style path is currently an orchestration-and-import workflow. Do not claim this repository bundles a one-click Google video generator.
The current dbs-content-system scene-traceability contract is V4-specific, so content-system-backed is supported by the original style only; VOX style is fail-closed to single-book until a manifest-based traceability contract is implemented and tested.
Production sequence
- Topic and evidence — collect public, attributable book metadata. If a WeRead credential or another data source is unavailable, record the limitation and use user-supplied/publicly attributable evidence; do not bypass logins or platform restrictions.
- Script, voice, and timing — create and approve a concise Chinese script plus any English production draft. Generate/record narration only with authorization; derive timestamps from actual audio via permitted ASR or an editor transcript. Never invent timing. VOX style locks this timing before full clip generation.
- Style-specific assets — the original style obtains a real cover plus 12 approved text-free stills. VOX style approves one metaphor, then a first/last frame or contact sheet, then each generated visual beat; prompts use non-branded editorial descriptors.
- Picture lock — map approved assets to the locked narration. Normalize VOX clips to silent 720×1280 H.264 at the local 30 fps timeline without speed changes; inspect cadence and keep optical flow off by default.
- Audio and render — add project-owned narration, local captions, permitted BGM and SFX. BGM rights approval and creative
bgm_revieware separate decisions. Never copy a reference video's audio. - QC and delivery — run technical and human gates, bind approvals to hashes, write manifests and cost events, then optionally import the passed local master into ChatCut for fine editing.
Workflow contracts
project.json.workflow.style_profile_idselects the visual workflow; its mappedrelease_profile_idselects the renderer/output contract. Existing projects without a style ID fall back to the original style only for compatibility.- Use
config/release_profiles/book-v4-bilingual-3x4.jsonfor the original style andconfig/release_profiles/book-vox-vertical-9x16-v1.jsonfor VOX style; never treat either style's dimensions or assets as universal constants. - Use
scripts/workflow.py evaluate --project <project> --release-id <release-id>to resolve the project profile and derive a release-scoped state.project.json.statusis not an approval mechanism, and approvals from different releases are never combined. - Record human decisions with
scripts/workflow.py approve; approvals bind to the reviewed file hash and become stale after edits. - Use
scripts/workflow.py manifest-stagefor immutable stage manifests with input/output hashes. - Long titles are pixel-measured, semantically wrapped to at most two lines, and fail closed if they cannot fit the configured safe area.
- Keep
dbs-content-systemupstream: it owns source audits,QST / CON / OPI / CAS / SOL, theme maps, relationships, deduplication, canonical versions, and assembly. Do not reproduce those algorithms in this Skill. - For
content-system-backed, usescripts/content_bridge.py export-dbs,validate-package,import-package,attach-traceability, andstatus.export-dbsis serialization only; it does not perform upstream semantic work. Imports and active-version changes are append-only and hash-bound. - A valid bridge package contains
source_document / content_unit / claim / assembly_brief; the traceability map connects every script line to reviewed Claim evidence or an explicit editorial exemption, and to the renderer's actual scene contract. A humantraceabilityapproval bound to that map is required beforeassets_ready.
Required release gates
- Do not use a generated imitation as a book cover. Record the actual cover source and rights/usage status.
- Do not reuse copyrighted music, sound effects, reference-video audio, a person's voice, public-figure likeness, or account branding without explicit rights.
- Require 12 non-duplicate numbered stills (
S01–S12) only for the original V4-style delivery. VOX style uses its approved clip manifest and does not impose a universal scene count. - For VOX style, keep
source_audit,gate_1_metaphor,gate_2_still,gate_3_clip_qa,bgm_review,audio_qc,local_master_review, andpublishas distinct hash-bound gates. Applycover_rightsandenglish_nativeonly when those elements are delivered. - Accept invisible provider provenance such as SynthID; do not remove or tamper with it. Reject visible third-party watermarks.
- Never invent token counts. Record only usage values exposed by the relevant provider.
Cost ledger
Use the bundled append-only ledger for known usage and operational facts:
python3 <SKILL_ROOT>/scripts/run_cost.py record \
--warehouse book_video_warehouse --project <slug> --stage assets.generate \
--images 12 --note 'Approved scene images'
python3 <SKILL_ROOT>/scripts/run_cost.py report --warehouse book_video_warehouse
— in a report means the usage was not available; it is not zero cost.
ChatCut handoff
Use ChatCut only after local QC passes. Import the local master and subtitle file, make scoped editorial changes, and export v4-chatcut-<revision> without overwriting the local master. Record the project ID, edits, reviewer decision, and export path in the project delivery manifest.