← ClaudeAtlas

meta_ads_extractorlisted

Extract and save ad creative assets (images + videos) from the Meta Ads Library via browser automation, with dimensions, aspect ratios, and CTA destination URLs. Use when user says "/meta_ads_extractor", "extract Meta ads", "download competitor ads", "swipe file", "save Facebook ad creatives", "scrape ad library", or in French "extrais les pubs Meta", "telecharge les pubs concurrentes", "recupere les creatives Facebook", "fais un swipe file". For analyzing extracted ads into a strategy report, see /meta_ads_analyser. For the full extraction + analysis pipeline in one command, see /ads_analyst.
agentik-os/claude-code-skills · ★ 1 · Data & Documents · score 72
Install: claude install-skill agentik-os/claude-code-skills
# Meta Ads Library Asset Extraction Extract actual ad creative images and videos from Meta's Ad Library via browser automation. > **Portability note:** delivery via the `message` tool (`action=send`) and the Telegram size > limits below assume the OmegaOS VPS bridge. Off-VPS, drop assets into the run's output > directory instead and skip the `message` send step — extraction logic is unchanged. ## Dynamic Workflow orchestration Extraction fans out cleanly over independent **units** = each advertiser (and, within one advertiser, each lazy-loaded batch / each asset). Use this when extracting from multiple advertisers or a large swipe file; for a single small page, run linearly. 1. **Plan** — resolve the unit list: list advertisers/pages requested + the per-advertiser target (top-N, media type, country). One unit = one `view_all_page_id` extraction. 2. **Parallel fan-out** — per advertiser: resolve delegate_page ID -> open filtered Ad Library -> extract all media + CTA URLs from DOM (steps 1-4) -> download only the requested assets (step 5). File-disjoint by advertiser slug, so units never collide (R-SCOPE: one writer per output file). 3. **Adversarial verify (2-of-3)** — accept each unit only when at least 2 of 3 independent checks pass: (a) every requested file exists and is non-zero on disk; (b) dimensions/aspect ratio captured via `sips`/`identify`/`ffprobe` and written to metadata JSON; (c) DOM order matches the requested rank (e.g. `images[0]` = to