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.
- 📽️ 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)
git clone https://github.com/iq5sa/cin-dl.git
cd cin-dl
npm installRun the help menu:
node cin-dl.js --help# 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 --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}"
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- Automatic updates for Cinemana API changes
- Resume interrupted downloads
- GUI wrapper (optional future)
MIT © Sajjad Asaad (Jood)