Skip to content

iq5sa/cin-dl

🎬 cin-dl

Node.js
cin-dl is a command-line downloader for Cinemana’s Android API.
It’s designed for power users who want full control over their movie and series downloads.


✨ Features

  • 📽️ Download movies, episodes, or entire series
  • 📝 Fetch subtitles in SRT / VTT formats
  • 📂 Auto-organized folders (Show/Sxx/Eyy)
  • 🎞️ Quality selection (1080p, 720p, etc.)
  • 🎛️ ffmpeg integration → mux or burn subtitles
  • 🔄 Smart retry, auto-filtering, concurrency support
  • 🧪 Dry-run mode (plan downloads without executing)

🚀 Installation

git clone https://github.com/iq5sa/cin-dl.git
cd cin-dl
npm install

🖥️ Usage

Run the help menu:

node cin-dl.js --help

🔧 Examples

# 1) Download a single movie by id
node cin-dl.js --movie 25006

# 2) Download an ENTIRE series from any episode id
node cin-dl.js --from-video 25006 --structure series

# 3) Only Season 3 of a series
node cin-dl.js --from-video 25006 --season 3 --structure series

# 4) By root series id (if API supports it)
node cin-dl.js --series 3293 --structure series

# 5) Multiple explicit ids
node cin-dl.js --movie 25006 --movie 1243796

# 6) With Arabic subtitles only (SRT format)
node cin-dl.js --movie 25006 --subs ar --subs-format srt

⚙️ CLI Options

  --base-url       API base URL (default from .env)
  --output         Output folder (default from .env)
  --movie          Movie/Episode id(s)
  --from-video     Episode id(s) → expand to full series
  --series         Root series id(s)
  --season         Season filter(s) when using --from-video / --series
  --ids-file       File with ids (one per line)
  --quality        Preferred quality (default: mp4-1080)
  --concurrency    Concurrent downloads (default: 4)
  --skip-existing  Skip already existing files
  --subs           Comma-separated subtitle languages (e.g. ar,en)
  --subs-format    Subtitle format: srt | vtt | both
  --mux-subs       Attach subs into MKV (ffmpeg, no re-encode)
  --burn-subs      Burn first subtitle (ffmpeg re-encode)
  --structure      flat | series (default: flat)
  --dry-run        Plan only (no downloads)
  --name-template  Filename template, e.g. "{title}.S{season}E{episode}.{quality}"

🔧 Configuration

Configure via .env:

BASE_URL=https://cinemana.shabakaty.com
OUTPUT_DIR=downloads
DEFAULT_QUALITY=mp4-1080
CONCURRENCY=4

# Optional advanced discovery
# SERIES_EP_ENDPOINT=/android/seriesEpisodes/id/{seriesId}
# SERIES_EP_SEASON_PARAM=season
# DISCOVER_LANGS=ar,en
# DISCOVER_LEVELS=0,1,2,3

📦 Requirements


🛠️ Roadmap

  • Automatic updates for Cinemana API changes
  • Resume interrupted downloads
  • GUI wrapper (optional future)

⚖️ License

MIT © Sajjad Asaad (Jood)

About

cinemana-downloader

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors