guide to agentprivacy
Browse collections
โœจVisualise
Connect with Star
Your VTA, your chosen perspective

The planned connection uses your VTA and the Trust Spanning Protocol to carry a scoped exchange for you or your agent. You choose what is presented; the receiving service checks the request before a view is shared.

This guide has no VTA connection adapter yet. Opening Star does not connect an identity or send a key.

Open Star โ†— ยท Inspect your City Key โ†—
guide / Skill / Fedwiki Transcribe

FedWiki video transcription

Transcribe video/audio assets hosted on a FedWiki (Smallest Federated Wiki) page using local whisper.

FedWiki video transcription

End-to-end flow: FedWiki assets folder โ†’ list files โ†’ stream audio (ffmpeg) โ†’ transcribe (whisper.cpp) โ†’ .txt/.srt/.vtt.

When to use

The user references a FedWiki page or assets folder hosting videos and wants transcripts. FedWiki URLs look like http://<host>/view/<page>/view/<page>; the videos live in an assets story item that names a folder (e.g. workshop-videos).

Prerequisites (already installed on this machine)

  • whisper.cpp built: C:\Users\mitch\whisper.cpp-master\build\bin\Release\whisper-cli.exe
  • Model: C:\Users\mitch\whisper.cpp-master\models\ggml-large-v3-turbo-q5_0.bin (high accuracy, multilingual)
  • ffmpeg: ...\WinGet\Packages\Gyan.FFmpeg_*\ffmpeg-*-full_build\bin\ffmpeg.exe

If building whisper.cpp fresh: it needs CMake + a C++ compiler. VS Build Tools 2019 bundles both โ€”
cmake -B build -G "Visual Studio 16 2019" -A x64 then cmake --build build --config Release.
(CMake is at ...\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe.)

How enumeration works (the key trick)

FedWiki's assets plugin renders the file list client-side, so the folder URL just returns the SPA
shell. The real listing endpoint โ€” discovered from /plugins/assets/assets.js โ€” is:

GET {WikiBase}/plugin/assets/list?assets={folder}   ->   {"error":null,"files":[ ... ]}

Individual files are served (no auth) at {WikiBase}/assets/{folder}/{filename}. Filenames may contain
spaces/apostrophes (Groundhog Day.mov, don't-panic.mov) so URL-encode each segment.

Note: the wiki may print asset URLs with hostname public (only resolves on the host machine).
Substitute the host you can actually reach (e.g. david.local).

Run it

& "C:\Users\mitch\.claude\skills\fedwiki-transcribe\transcribe-assets.ps1" `
    -WikiBase "http://david.local" `
    -AssetsFolder "workshop-videos"

Useful params: -OutDir (default C:\Users\mitch\transcripts), -Exclude @("file.mov"),
-KeepWav, -Language en|auto, -Model <path>, -Threads 16.

The script is idempotent: a video whose <base>.txt already exists is skipped, so it can be
resumed after interruption. It streams audio (does not save the multi-GB video), deletes the temp WAV
on success, and logs to <OutDir>\_batch_log.txt. Run it in the background for large batches and tail
the log โ€” transcription is CPU-bound (no GPU here), roughly real-time per video with the large model.

Manual single-file equivalent

$ff="...\ffmpeg.exe"; $cli="...\whisper-cli.exe"; $m="...\ggml-large-v3-turbo-q5_0.bin"
& $ff -y -i "http://david.local/assets/workshop-videos/max_timeline_01.mov" -vn -ar 16000 -ac 1 -c:a pcm_s16le out.wav
& $cli -m $m -f out.wav -t 16 -otxt -osrt -ovtt -of out

Notes / gotchas

  • whisper.cpp's built-in miniaudio decodes WAV/MP3 directly but not video containers โ€” hence ffmpeg.
  • whisper wants 16 kHz mono PCM; the ffmpeg flags above produce exactly that.
  • For non-English audio, pass -Language auto (the turbo model is multilingual).
  • To speed up a large batch at some accuracy cost, point -Model at ggml-base.en.bin or a small model.

upstream: ~/.claude/skills (local workbench; not yet promoted into agentprivacy-skills-v5 โ€” that promotion is a First-Person call) ยท author: Mitchell Travers ยท (โš”๏ธโŠฅโฟปโŠฅ๐Ÿง™)๐Ÿ˜Š

โ† The Workbench Skills ยท Welcome Visitors