One reporting pipeline
Four stages, one evidence trail
Run the stages in order for a new subject. Re-run one stage later when the collection changes.
-
1 Collect
video-downloadPull public video from Twitter/X, TikTok, YouTube, Instagram, and Facebook with
yt-dlp, with a browser fallback when an extractor breaks. -
2 Transcribe
video-transcribeCreate the transcript of record with Whisper on CPU and write a provenance sidecar that connects every transcript to its source media and decode settings.
-
3 Inspect
video-framesExtract frames, assemble 3×3 contact sheets, and analyze on-screen text, setting, presentation style, and other visual evidence.
-
4 Compare
video-dashboardAggregate transcript and frame analysis into topic, tone, and cross-platform views in a local single-page dashboard.
Transcripts you can defend
Keep the quote connected to the audio
The CPU whisper.cpp path is the transcript of record. A GPU path is available as an accelerator, but the workflow does not assume another reporter has the same hardware.
Each .transcript.meta.json file records the engine and model build, a source-media hash, and pinned decode parameters. The record also states that GPU runs and different model quantizations are not byte-identical.
Security boundaries
Media stays data
The pipeline handles adversarial pages and files without granting them authority over the agent.
- Untrusted by defaultSocial pages, metadata, media, transcripts, OCR, and analysis JSON remain untrusted data, never instructions.
- No silent credentialsPublic unauthenticated access is the default. A clean credentialed browser profile requires explicit user approval.
- Contained parsingMedia processing runs with private-network access blocked, plus resource and file-size limits.
- Local dashboard codeThe dashboard uses a committed exact Chart.js asset and DOM-safe rendering instead of runtime CDN code.
Requirements
A local, inspectable toolchain
yt-dlpfor public platform downloadsffmpegfor audio and frame extractionwhisper.cppwith aggmlmodel- Python for analysis and orchestration
- Node.js 20 or later with
npmfor the dashboard asset
CUDA and openai-whisper are optional. Nothing in the pipeline requires a GPU.
Responsible collection
The skills are designed for reporting and analysis of public accounts. They do not bypass access controls, automate credential reuse, or scrape at scale.
Platform terms and local law still apply. Confirm that the collection is lawful and proportionate before downloading media.
Installation
Install all four skills together
# Add the marketplace once
/plugin marketplace add jamditis/claude-skills-journalism
# Install the plugin
/plugin install video-toolkit@claude-skills-journalism
Browse the source and setup notes in the GitHub repository.
Related skills
Start with the public record
Build a collection that another reporter can inspect, rerun, and trace back to the source media.
View video toolkit on GitHub