Chrome Extension · Manifest V3 · Local-first Batch Archiver

Save photos, videos, and entire profiles — straight to tidy local folders.

Day21 Bulk Social Media Downloader adds one-click hover buttons, an on-page ⌘K command palette, and an auto-scrolling batch queue to most major social platforms. Save a single post or hundreds of items in the best available quality, with custom filenames and zero server round-trips.

Platforms
7 major social sites (on-demand access)
Formats
MP4 · JPG/PNG · M4A · JSON
Processing
100% in-browser (FFmpeg.wasm)
Price
Free · No account required
Batch active · 48 items
Extension batch download controls active on an anonymized creator profile grid
Compact extension toolbar popup showing 48 detected media items and unfinished batch recovery
18 / 48 saved · Creator_Archive_2026/

00 / Watch

From messy social pages to organized local folders in 46 seconds.

See how a whole collection is detected, queued, merged in best available quality, and sorted into named folders automatically. Plays muted — turn on sound in the player for the voiceover.

0:00 The manual save problem0:14 Hover badge & ⌘K batch trigger0:30 Auto-sorted folders & duplicate skip
7

Major Platforms, On-Demand Access

Enable only the sites you use. Each supported platform requests browser host permission individually when toggled on.

4

Ways to Trigger Any Save

Hover a media card, click a floating profile batch pill, press ⌘K for the command palette, or launch from the toolbar popup.

0

Server Round-Trips

Separate video and audio streams merge right inside your browser tab via FFmpeg.wasm. Nothing reaches our servers.

02 / Features

Everything you need to archive at scale, without the clutter.

Broad media coverage, durable batch controls, and precise local organization in one focused tool.

01 / SAVE

What you can save

  • Single photos and complete multi-slide carousels
  • Vertical clips and full-length videos in best available quality
  • Standalone M4A audio tracks from any video post
  • High-resolution profile avatars in one click
  • Optional sidecar .json with caption, timestamp, and source URL
02 / SCALE

Built for big batches

  • Auto-scrolling profile and collection harvesting
  • Pause, resume, and unfinished-batch recovery in the popup
  • Local duplicate memory skips items you already saved
  • Configurable concurrency (1–6) and pacing (0–3000 ms)
  • Cap runs at the first N items or grab everything available
03 / ORGANIZE

Organized your way

  • Custom subfolder paths inside Downloads/
  • Token template {username}_{date}_{id}_{index}.{ext}
  • One-click presets: By creator, Date archive, and Flat
  • In-browser FFmpeg.wasm video + audio stream merging
  • Optional completion webhook POST for local automation
Illustrated local archive pipeline showing media items flowing into structured MP4, JPG, M4A, and JSON folders

Local archive pipeline

Raw streams in. Named files out.

Media is resolved from your active browsing session, merged locally via WebAssembly when audio and video arrive as separate streams, named according to your token template, and written straight to your local folder without touching any external cloud.

.MP4.JPG / .PNG.M4A.JSON

03 / How It Works

Up and running in three quick steps.

Grant only the site access you choose, trigger a save, and let your local naming rules handle the rest.

STEP 01

Enable the sites you use

Install the extension, open Platform Access, and toggle on the social sites you want. Host permissions are requested per site on demand.

Site A · EnabledSite B · Ask on enable
STEP 02

Hover, click a pill, or press ⌘K

Hover any photo or video for instant save buttons, choose “Download all posts” on a profile, or search all detected page actions from the keyboard.

⌘K / Ctrl+KAlt+Shift+DAlt+Shift+B
STEP 03

Let the queue & naming rules work

Watch the floating orb or open the drawer as files enter Downloads/Day21/{username}/, named cleanly and with duplicates skipped.

18 / 48 saved{username}{index}

04 / The Interface

Every setting is explicit, local, and built for power users.

Real extension surfaces — from one-click batch recovery to filename tokens and local webhook automation.

Extension toolbar popup showing Supported page with 48 media detected, an Unfinished 18/48 Continue banner, Download media on this page button, and Progress and Settings controls.

Popup · Recovery

Toolbar Popup & Batch Recovery

Live page media counter (48 media), an “Unfinished · 18/48 · Continue” recovery banner when a batch is interrupted, primary one-click batch action, and ⌘K shortcut reminder.

Inspect full panel ↗
Settings panel showing Essentials switches and Output and naming controls with Subfolder name, Filename template, clickable token pills, and By creator, Date archive, and Flat presets.

Settings · Organization

Output & Filename Token Builder

Set a custom subfolder inside Downloads/, build templates with clickable tokens ({username}, {date}, {id}, {index}, {type}, {ext}), check the live preview, or pick a preset.

Inspect full panel ↗
Settings panel showing Batch and pacing controls: Batch scope All available or First N, Concurrency slider 1 to 6, Request interval slider 0 to 3000ms, Skip already downloaded, and Keyboard shortcuts.

Settings · Queue & Pacing

Batch Scope, Concurrency & Pacing

Cap runs at the first N items or grab all available, tune simultaneous downloads (1–6) and request intervals (0–3000 ms), skip already-saved posts, and export metadata JSON.

Inspect full panel ↗
Platform Access settings panel listing Site A through Site G with individual toggle switches and Enabled or Click to grant access status badges.

Permissions · On Demand

Per-Site Platform Access

Seven supported platforms (shown as Site A through Site G for trademark neutrality) are toggled individually. The extension never holds blanket access to sites you do not enable.

Inspect full panel ↗
Webhook settings panel showing Send POST on download complete toggle, Endpoint URL field, Custom header input, and Send test payload button.

Automation · Local Callback

Optional Webhook Integration

Send a JSON POST payload to a local script, home server, or NAS indexer whenever a download or batch completes, with optional custom headers and a one-click test button.

Inspect full panel ↗

05 / Privacy by Architecture

Nothing to collect. Nowhere to send it.

Day21 is an independent software studio backed by more than a decade of experience building and maintaining download tools. No adware, no bundled extras — every fetch runs in your browser session and stays under your control.

0

Accounts or sign-ups

Install and use immediately. No login wall, no email capture, and no cloud sync.

0

Analytics or telemetry

No usage tracking, no error beacons, and no third-party SDKs in the extension or on this website.

0

Day21 media servers

Fetches happen directly in your browser session and merge locally via FFmpeg.wasm. Nothing reaches our servers.

Fair Use & Responsibility · Designed for personal archiving of content you have lawful access to save. Follow each platform's terms of service, respect creators' rights, and use built-in pacing responsibly.

06 / FAQ

Questions before your first local archive.

Clear answers about single saves, large batches, naming tokens, permissions, and privacy.

How do I save a single photo or video versus an entire profile?

Hover any photo or video card and click the top-left Day21 badge to save just that item (or the ♫ button on videos for audio only). To grab an entire profile or collection, click the floating “Download all posts” pill, trigger the batch button in the toolbar popup, or press ⌘K and select the profile batch action.

How does batch downloading handle rate limits and interrupted runs?

You control both concurrency (1–6 simultaneous downloads) and request pacing (0–3000 ms between items) in Settings. You can pause or cancel a run at any time from the floating drawer, and if your browser closes mid-run, the popup shows an “Unfinished · Continue” banner so you can resume where you left off.

How do custom folder and filename tokens work?

In Settings → Output & naming, pick a subfolder inside your browser Downloads directory (such as Day21/{username}) and compose your filename template using tokens like {username}, {date}, {timestamp}, {id}, {index}, {type}, {shortcode}, and {ext}. A live preview shows the exact output path before you run a batch.

How does local video merging and M4A audio extraction work?

Many platforms deliver high-resolution video and audio as separate streams. Instead of sending links to an external server, the extension runs FFmpeg.wasm directly inside your browser tab to mux video and audio into a standard .mp4 file. When you only want the soundtrack, choose the audio-only action to save the .m4a stream directly.

What happens when a post contains multiple slides?

Multi-slide posts (carousels mixing photos and videos) are detected as a single logical group and queued in slide order. Including {index} in your filename template keeps every slide numbered cleanly inside your destination folder.

How does duplicate detection avoid re-downloading old items?

When “Skip already downloaded” is enabled, the extension keeps a local ledger of saved item IDs in your browser storage. Re-running a batch on a creator profile automatically marks previously saved posts as Skipped and only downloads new uploads.

Why is site access toggled separately for each platform?

The extension installs with zero host permissions. In the Platform Access panel, you enable only the social sites you actually use, and your browser prompts you per site on demand. You can turn any site off again with one switch.

Do my cookies, account data, or downloaded files ever touch Day21 servers?

No. There is no account, no analytics, and no Day21 media relay server. Requests run inside your existing browser session, stream merging happens locally on your device, and the optional webhook sends events only to an endpoint URL you configure yourself.

Bulk Social Media Downloader icon

Build a tidy local archive, one click or one complete profile at a time.

Best available quality · Custom folder & filename tokens · Zero Day21 server round-trips.