Skip to main content

🌊 Nami

An open-source CLI media downloader for Instagram, TikTok, Facebook, and X

PyPI Version Python Version License GitHub Stars

Nami is a lightweight, open-source media downloader designed for seamless batch extraction across social platforms. Combining gallery-dl and yt-dlp with an interactive Rich terminal interface, Nami automates deduplication, rate-limit retries, and browser cookie handling.

InstallationUsage FlowSupported PlatformsDirectory LayoutConfiguration


Features

  • Photos & Videos: Batch download high-resolution photos, reels, videos, and posts.
  • Instagram Stories & Highlights: Extract stories and highlight archives automatically.
  • Smart Anti-Duplicate Archiving: Automatic archive.txt tracking avoids re-downloading existing media.
  • Automated Cookie Integration: Supports Netscape cookie files and browser session extraction (--cookies-from-browser).
  • Cookie Fallback & Retry Logic: Automatically attempts anonymous fallbacks and handles rate-limits gracefully.
  • Terminal UI: Powered by rich with customizable contrast themes (light / dark).

Supported Platforms

Platform Photos Videos Stories Highlights Authentication Mode Status
Instagram Included Included Included Included Netscape Cookie / Anonymous Active
TikTok Included Included N/A N/A Browser DB / Netscape Cookie Active
Facebook Included Included N/A N/A Netscape Cookie / Anonymous Active
X (Twitter) Included Included N/A N/A Netscape Cookie / Anonymous Active

Installation

Install nami directly via pip:

pip install nami

All dependencies (rich, gallery-dl, yt-dlp) are automatically installed.

To upgrade to the latest release:

pip install -U nami

Usage Flow

1. Project Workspace Initializer

When you launch nami for the first time, it automatically creates your local workspace structure:

Nami/
├── downloads/      # Extracted media organized by platform & account
├── cookies/        # Optional Netscape cookie files (*_cookies.txt)
└── profiles/       # Target account URL text files (*_profiles.txt)

2. Configure Profile Sources

Add your target account URLs into the designated text files inside Nami/profiles/:

Nami/profiles/
├── instagram_profiles.txt  # Add Instagram profile URLs (one per line)
├── tiktok_profiles.txt     # Add TikTok profile URLs
├── facebook_profiles.txt   # Add Facebook profile URLs
└── x_profiles.txt          # Add X / Twitter profile URLs

3. Session Authentication

Place Netscape-formatted cookie files inside Nami/cookies/ to download private content or bypass login restrictions:

  • instagram.com_cookies.txt
  • facebook.com_cookies.txt
  • x.com_cookies.txt

4. Interactive Execution & Filtering

Launch the application to run batch downloads across your configured profile lists:

nami
┌──────────────────────── Nami ────────────────────────┐
│ What do you want to download?                        │
│                                                      │
│ 1  Photos only                                       │
│ 2  Videos only                                       │
│ 3  Stories only                                      │
│ 4  Highlights only                                   │
│ 5  Photos + Videos                                   │
│ 6  Stories + Highlights                              │
│ 7  All                                               │
│ 8  Settings                                          │
│ 0  Exit                                              │
└──────────────────────────────────────────────────────┘

Configuration & Environment Variables

User settings are saved automatically in ~/.nami/nami_config.json. You can also configure Nami via environment variables:

Variable Description Default
NAMI_THEME Terminal theme styling (dark or light) dark
NAMI_BASE_DIR Custom output downloads directory path Configured path
NAMI_COOKIES_DIR Custom Netscape cookie directory path Configured path
NAMI_PROFILES_DIR Custom profile text files directory path Configured path
NAMI_BROWSER Browser for automated cookie extraction (brave, chrome, edge, firefox) brave
NAMI_USER_AGENT Custom HTTP User-Agent string for request headers Chrome 131 standard string
NAMI_SKIP_ENV_CHECK Set to 1 to skip initial dependency verification 0

Customizing Theme Contrast

Adjust terminal theme styling by setting NAMI_THEME:

# Light Terminal Theme
export NAMI_THEME=light

# Dark Terminal Theme (Default)
export NAMI_THEME=dark

License

Distributed under the MIT License. Developed and maintained by Igect under OpenSelena.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nami-2.4.0.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nami-2.4.0-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file nami-2.4.0.tar.gz.

File metadata

  • Download URL: nami-2.4.0.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nami-2.4.0.tar.gz
Algorithm Hash digest
SHA256 7aa78c745df27f63f260cdbaf5a1229b69f47c157b606e6994f8f0832c9ae284
MD5 795ef15fd65622291e9efa13f99508e1
BLAKE2b-256 0cf39f57c072e3fb335ba19187dabf9d5c9382aa1f75616409fc599a3e428b7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for nami-2.4.0.tar.gz:

Publisher: publish.yml on OpenSelena/nami

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nami-2.4.0-py3-none-any.whl.

File metadata

  • Download URL: nami-2.4.0-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for nami-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 847d3697c65d41cf5c3de9a6e196679ebbf293538445f487766937edb41d0572
MD5 9ac2465fff43d6429f77586b17d177ab
BLAKE2b-256 a2da93d004b34393a80b5ef2afc2077b0584683826c9702c72dafc565d182024

See more details on using hashes here.

Provenance

The following attestation bundles were made for nami-2.4.0-py3-none-any.whl:

Publisher: publish.yml on OpenSelena/nami

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

5.0.6

2 files

5.0.4

2 files

5.0.3

2 files

5.0.2

2 files

5.0.1

2 files

5.0.0

2 files

4.0.0

2 files

3.0.4

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.5.2

2 files

2.5.1

2 files

2.5.0

2 files

2.4.1

2 files

This release

2.4.0 This release

2 files

2.3.9

2 files

2.3.8

2 files

2.3.7

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page