Disclaimer: This project is for educational and research purposes only. It is intended to demonstrate technical concepts in web scraping, HLS video downloading, and cross-platform desktop application development. Users are responsible for complying with applicable laws and terms of service.
A cross-platform desktop app that downloads movies from phim.nguonc.com with maximum speed via parallel HLS fragment downloading. Built-in yt-dlp — no external tools needed.
- One-click download: Paste any movie URL from phim.nguonc.com
- Multiple sources: Choose between Vietsub, Thuyết minh, and other available servers
- Batch episodes: Select individual episodes or ranges
- Maximum speed: Downloads HLS segments in parallel (configurable up to 32 concurrent fragments)
- Smart naming: Automatically names files as
Name.S01E01.mp4 - Cross-platform: Works on macOS, Windows, and Linux
Download the latest release for your platform from the Releases page.
git clone https://github.com/NinhGhoster/NguonC-Downloader.git
cd nguonc-downloader
pip install -r requirements.txt
python3 nguonc_app.py- Launch the app
- Paste a phim.nguonc.com movie URL (e.g.,
https://phim.nguonc.com/phim/mot-ngay-no) - Click Load Movie — the app fetches title, year, servers, and episodes
- Select the server/source (Vietsub, Thuyết minh, etc.)
- Tick the episodes you want to download
- Adjust Concurrent Fragments slider (higher = faster, default 8)
- Choose an output directory
- Click Download Selected
- Scrape: Fetches the movie page and extracts episode data from embedded JSON
- Resolve: For each episode, fetches the stream embed page and decodes the obfuscated HLS URL
- Download: Uses
yt-dlp(bundled) with--concurrent-fragments Nto download HLS segments in parallel - Save: Outputs original-quality MP4 files with clean naming
bash build_macos.shOutput: dist/NguonC Downloader.app
pip install -r requirements.txt
flet pack nguonc_app.py --name "NguonC Downloader"pip install -r requirements.txt
sudo apt install libgtk-3-dev libwebkit2gtk-4.1-dev xvfb
xvfb-run flet pack nguonc_app.py --name "NguonC Downloader"nguonc-downloader/
├── assets/ # Icons, screenshots
│ ├── icon.png
│ ├── icon.icns
│ ├── icon.ico
│ └── screenshot.png
├── nguonc_downloader.py # Core engine: scrape, decode, download
├── nguonc_app.py # Flet desktop GUI
├── requirements.txt # Python dependencies
├── build_macos.sh # macOS build script (patches Flet bundle name)
├── .github/workflows/ # CI builds for all platforms
├── AGENTS.md # AI coding assistant notes
└── README.md # This file
- Python 3 — Core logic
- Flet — Cross-platform GUI (native Flutter widgets)
- yt-dlp — HLS downloading with parallel fragments (bundled in app)
- PyInstaller — App packaging
GNU General Public License v3.0
