Install
openclaw skills install @exsusiai/video-knowledge-ingestIngest and summarize cross-platform videos into a local knowledge base. Use when working with YouTube, Bilibili, Xiaohongshu, or local media/subtitle files and you need to fetch subtitles when available, fall back to yt-dlp download + ffmpeg + Whisper transcription when subtitles are missing, generate a text summary, and save transcript/summary/metadata into local files. Also use when packaging this workflow for sub-agents or debugging failures such as subtitle 429s, Bilibili share-link 403s, YouTube anti-bot issues, Xiaohongshu no-subtitle cases, missing ffmpeg/yt-dlp/Whisper dependencies, or summarize/codex auth problems.
openclaw skills install @exsusiai/video-knowledge-ingestUse this skill as the default cross-platform video → transcript → summary → local-knowledge workflow.
skills/video-knowledge-ingest/scripts/video-ingest.sh "<url-or-local-file>"summary.md.Default knowledge-base root:
/home/jason/.openclaw/workspace/knowledge/video-notes/Core tools in the normal path:
yt-dlp — resolve metadata, fetch subtitles, or download mediaffmpeg / ffprobe — normalize audio before transcriptionscripts/whisper-gpu.sh — local Whisper transcription using the workspace GPU venvsummarize --cli codex — generate the final written summaryPlatform-specific notes:
bilibili.com/... to www.bilibili.com/... and strips spm_ tracking paramsyt-dlp; go straight to Whispert, start, list, index) but drop common tracking params.www.bilibili.com and remove spm_* query params.yt-dlp in subtitle-only mode.zh.* and en.* subtitles..srt / .vtt file lands, continue with that file even if another subtitle variant returned a non-zero exit code.If no usable subtitles land:
yt-dlpscripts/whisper-gpu.shsummarize --cli codex --force-summarycodex to be installed and logged in, or configure the summarize backend another way before useFor each ingested item, keep these files:
source.url or source.pathsource.info.jsondownloads/ (when remote media/subtitles are fetched)whisper/ (when Whisper was used)transcript.txtsummary.mdrecord.jsonknowledge/video-notes/index.jsonlRemote URL:
skills/video-knowledge-ingest/scripts/video-ingest.sh "https://www.youtube.com/watch?v=..."
skills/video-knowledge-ingest/scripts/video-ingest.sh "https://bilibili.com/video/BV..."
skills/video-knowledge-ingest/scripts/video-ingest.sh "https://www.xiaohongshu.com/explore/..."
Local files:
skills/video-knowledge-ingest/scripts/video-ingest.sh /path/to/file.srt
skills/video-knowledge-ingest/scripts/video-ingest.sh /path/to/file.mp4
Custom output root:
skills/video-knowledge-ingest/scripts/video-ingest.sh "<source>" --kb-root /some/other/root
Read references/toolchain.md when you need:
Read references/troubleshooting.md when you hit:
scripts/video-ingest.sh entrypoint over re-implementing the workflow.