About
A Go-based command-line tool for downloading NVIDIA Linux drivers with advanced features to avoid 403 errors and ensure reliable downloads.
Features
✅ Browser Simulation
Simulates real browser headers to prevent 403 Forbidden errors
✅ Streaming Download
Memory-efficient streaming for large file downloads
✅ Progress Tracking
Real-time download progress display
✅ Auto Management
Automatic directory creation and file existence checks
✅ Cross-Platform
Available for both Linux and Windows
✅ Large File Support
Optimized for downloading 200-300MB driver files
Quick Start
Download Latest Version
Usage
Basic Usage
# Use default URL and output directory
./nvidia-downloader
# Specify custom URL and output directory
./nvidia-downloader -url "https://cn.download.nvidia.com/XFree86/Linux-x86_64/595.58.03/NVIDIA-Linux-x86_64-595.58.03.run" -output "./"
Run Without Compilation
# Use default parameters
go run main.go
# Specify custom parameters
go run main.go -url "YOUR_URL" -output "YOUR_OUTPUT_DIR"
Command Line Options
-url Download URL (default: pre-configured NVIDIA driver URL)
-output Output directory (default: ./models/nvidia_drivers)
-h Show help message
Build from Source
# Requirements: Go 1.21 or higher
# Clone the repository
git clone https://github.com/your-username/simple-downloader.git
cd simple-downloader
# Build
go build -o nvidia-downloader
# Run
./nvidia-downloader
How It Works
The downloader uses several techniques to ensure successful downloads:
- User-Agent: Simulates Chrome browser to prevent blocking
- Referer Header: Sets proper referrer to NVIDIA's download page
- Accept Headers: Mimics browser content negotiation
- Sec-Fetch Headers: Modern browser security fetch simulation
- Streaming: Uses io.CopyBuffer for chunked downloads
GitHub Actions
This project uses automated CI/CD:
- Automatic builds on tag push (v* format)
- Manual trigger option from Actions tab
- Cross-platform builds (Linux & Windows)
- Automated release creation with assets
Troubleshooting
403 Forbidden Errors
- Verify the download URL is correct
- Check your network connection
- Try updating the User-Agent string in the code
Slow Download Speed
- Check your network connection
- Try using a closer mirror server
- Check for network restrictions
Insufficient Disk Space
Ensure you have at least 500MB of free disk space (driver files typically require 200-300MB).