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.8.tar.gz (19.1 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.8-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nami-2.3.8.tar.gz
  • Upload date:
  • Size: 19.1 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.8.tar.gz
Algorithm Hash digest
SHA256 e4cae17a4c1de1116bd9ec76a9edf0f779468e1f0704aecd2319c8f49f81ea9c
MD5 26e2f170f30c020ccb9a01a936d3fd00
BLAKE2b-256 ec84cb89bfd174849222df61c646caa8dd1e6ffa51297294c04550bcfc2c8f71

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: nami-2.3.8-py3-none-any.whl
  • Upload date:
  • Size: 17.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.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 f65d94eececa45d99579c78e85ae96fe7c7f37a9da04d047a7e71b428a47c600
MD5 630cbb1e70b2241b47485c1bc2be0afa
BLAKE2b-256 236ba9bc88571a42e5a68e87c4a8abcc39fc0024a77ef67ec4391ebad7207ffe

See more details on using hashes here.

Provenance

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

2.3.9

2 files

This release

2.3.8 This release

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