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.3.9.tar.gz (18.7 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.3.9-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nami-2.3.9.tar.gz
Algorithm Hash digest
SHA256 bc7b271e80c153037ebbcf7b477730301095477cc0091f9c9137bcf61ccda33f
MD5 c2157e97fe609e0689a493d97c4a908f
BLAKE2b-256 db8daa4b1fa9ba5110aeb7a144af48d2c8449f6c38bb2045329a38ec0d8d9943

See more details on using hashes here.

Provenance

The following attestation bundles were made for nami-2.3.9.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.3.9-py3-none-any.whl.

File metadata

  • Download URL: nami-2.3.9-py3-none-any.whl
  • Upload date:
  • Size: 16.7 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.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 5a60d920970f094eba09e86344b5a3b60ff21e2e432a970d252aa2500dffa8b1
MD5 488cae71397dbf002365ff18b4b69047
BLAKE2b-256 a036a09323b277827e87626aa92f61a330e438798f19df5d1039a210ea1fb061

See more details on using hashes here.

Provenance

The following attestation bundles were made for nami-2.3.9-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

2.4.0

2 files

This release

2.3.9 This release

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