FedWiki Transcribe Skill
A Claude Code skill that turns a Federated Wiki assets folder full of recordings into finished wiki pages. It enumerates the videos, transcribes them locally with whisper.cpp, writes an AI summary, embeds the full transcript, and publishes each as a page. Built during the Mouse House Workshop, where it produced 17 session pages.
What it does
- List the videos in a FedWiki assets folder (via the assets plugin's list endpoint).
- Extract audio by streaming each video over the network with ffmpeg (no multi-GB download kept on disk) to 16 kHz mono WAV.
- Transcribe with whisper.cpp (large-v3-turbo) to .txt / .srt / .vtt.
- Summarise each transcript (title, abstract, key points, action items).
- Publish a FedWiki page per video: video embed, summary, and a collapsible transcript.
Prerequisites
- whisper.cpp built (MSVC / CMake) with a model such as large-v3-turbo-q5_0.
- ffmpeg on PATH (audio extraction; whisper's miniaudio reads WAV/MP3 but not video containers).
- node + wiki for the local wiki (see Wiki Here).
The enumeration trick
FedWiki's assets plugin renders the file list client-side, so the folder URL just returns the page shell. The real listing endpoint (found in /plugins/assets/assets.js) is:
GET {wiki}/plugin/assets/list?assets={folder}
-> { "error": null, "files": [ ... ] }
files are served (no auth) at:
{wiki}/assets/{folder}/{filename} # URL-encode spaces & apostrophes
The scripts
- transcribe-assets.ps1 - enumerate a FedWiki assets folder, stream + extract audio, transcribe. Resumable (skips done) with per-file logs.
- make-wiki-page.ps1 - assemble a FedWiki page JSON from content (and optionally embed a transcript as a collapsible section). Writes UTF-8 without BOM.
- stage-wiki-pages.ps1 - rename page JSON to FedWiki slugs (no extension) ready to drop into pages/.
- build-index-page.ps1 - build a hub page linking every session and link it from the home page.
- build-workshop-page.ps1 - bundle all artifacts into a wiki assets folder and build a master workshop page.
Usage
Transcribe a whole assets folder:
./transcribe-assets.ps1 -WikiBase http://david.local -AssetsFolder workshop-videos
single file, by hand
ffmpeg -y -i "{wiki}/assets/{folder}/clip.mov" -vn -ar 16000 -ac 1 -c:a pcm_s16le out.wav
whisper-cli -m ggml-large-v3-turbo-q5_0.bin -f out.wav -t 16 -otxt -osrt -ovtt -of out
Gotchas
- BOM - FedWiki's JSON.parse rejects a leading byte-order mark; PowerShell's
Out-File -Encoding utf8adds one. Write UTF-8 without BOM (a bad page gets auto-recycled). - Reading UTF-8 -
Get-Contenton PS 5.1 misreads BOM-less UTF-8 as ANSI and corrupts em dashes / curly quotes; read with[IO.File]::ReadAllText(path, [Text.Encoding]::UTF8). - Video plugin - the wiki needs wiki-plugin-video to render the embeds.
- Writes need auth - the default security module 403s anonymous writes; seed pages by file, or run friends security (Wiki Here) to edit in the browser.
- PowerShell 5.1 - keep scripts ASCII; a stray em dash mangles when the script is read as ANSI.
Files
The five scripts and SKILL.md are attached below. (They are also bundled with Mouse House Workshop under its /skill folder.)
See
- Mouse House Workshop
- Workshop Videos
- Wiki Here
- Federated Wiki