← ClaudeAtlas

runlisted

Turn an Instagram "Download Your Information" (DYI) data export into clean, analysable per-conversation chat JSON — fixes Meta's mojibake encoding bug, filters by date range and excluded threads, transcribes voice notes and video audio tracks via a configurable speech-to-text provider (Soniox, local whisper.cpp, or none), and assembles one JSON file per conversation plus a filterable index.json rollup, with every machine transcription unmistakably labeled as such. Use when the user types /ig-dm-export-analyzer:run, or says they are working with an Instagram DM archive, an ig/instagram DYI export, messages_1.json thread folders, transcribing Instagram voice messages, or building a searchable/filterable chat corpus from Instagram direct messages.
SashaMarchuk/claude-plugins · ★ 0 · Data & Documents · score 70
Install: claude install-skill SashaMarchuk/claude-plugins
# Instagram DM export analyzer Config-driven pipeline that converts an Instagram DYI export into a clean chat corpus. Tested end-to-end on a real multi-thousand-message export with zero STT failures and all verification checks green. **Nothing about a specific export, account, provider, or credential path lives in the code.** A new export means a new config file, not a code change. ## When to use - You have a fresh Instagram DYI export and want the DMs as analysable text. - Voice notes / video messages need transcribing and merging into the transcript. - A previous run needs re-doing with a different date range, exclusion list, or STT provider. ## Dependencies Python 3.9+ and its standard library are enough for the default path. On top of that: `requests` is needed **only** for `stt.provider: soniox`; `pyyaml` **only** if the config is YAML (a `.json` config with the same keys needs neither). `ffmpeg` / `ffprobe` are required for any run that touches video or STT. ## Run it ```bash PLUGIN="${CLAUDE_PLUGIN_ROOT}" cp "$PLUGIN/templates/config.example.yaml" ./my-run.yaml # edit paths + date range python3 "$PLUGIN/scripts/run_pipeline.py" ./my-run.yaml ``` Useful variants: ```bash python3 "$PLUGIN/scripts/run_pipeline.py" ./my-run.yaml --dry-run # Step 1 only: scan + counts, no STT, no cost python3 "$PLUGIN/scripts/run_pipeline.py" ./my-run.yaml --from 3 # re-assemble + re-verify from cached STT (free) python3 "$PLUGIN/scripts/run_pipeline.py" ./my-run.yaml --