https://github.com/dv64/catchstream
A modern terminal-based video downloader with concurrent downloads, processing features and elegant UI.
https://github.com/dv64/catchstream
catchstream download downloader python terminal videos
Last synced: about 2 months ago
JSON representation
A modern terminal-based video downloader with concurrent downloads, processing features and elegant UI.
- Host: GitHub
- URL: https://github.com/dv64/catchstream
- Owner: DV64
- License: mit
- Created: 2025-01-06T01:04:36.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-18T17:01:12.000Z (over 1 year ago)
- Last Synced: 2025-04-13T17:18:09.820Z (about 1 year ago)
- Topics: catchstream, download, downloader, python, terminal, videos
- Language: Python
- Homepage:
- Size: 105 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎥 CatchStream
### Advanced Video Downloader with Terminal UI
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/DV64/CatchStream)
[Features](#features) • [Installation](#installation) • [Usage](#usage) • [Configuration](#configuration) • [FAQ](#faq)
---
## 📋 Features
### Core Features
- Multi-platform support (Windows, Linux, macOS, Android)
- Concurrent downloads with queue management
- Multiple quality presets (480p, 720p, 1080p)
- Progress tracking with detailed statistics
- Download resume capability
- Playlist support
### Advanced Features
- Video processing (compression, watermark, trim)
- Audio extraction
- Subtitle download
- Thumbnail download
- Format conversion
- Archive management
- Favorites system
### User Experience
- Rich terminal interface
- Real-time progress tracking
- Download statistics
- Custom themes
- Notifications
## 📋 Requirements
- Python 3.8 or higher
- FFmpeg
- Internet connection
## ⚡ Quick Start
1. **Clone Repository**
```bash
git clone https://github.com/DV64/CatchStream.git
cd CatchStream
```
2. **Install Dependencies**
```bash
pip install -r requirements.txt
```
3. **Run Application**
```bash
python CatchStream.py
```
## 🔧 Installation Guide
### Windows
```powershell
# Install FFmpeg using winget or chocolatey
winget install FFmpeg
# OR
choco install ffmpeg
```
### Linux (Ubuntu/Debian)
```bash
sudo apt update
sudo apt install python3 python3-pip ffmpeg
```
### macOS
```bash
# Using Homebrew
brew install python ffmpeg
```
### Android (Termux)
```bash
pkg update
pkg install python ffmpeg
```
## 💻 Usage
### Single Video Download
1. Launch CatchStream
2. Select option 1 (Single Video)
3. Enter video URL
4. Choose quality preset
5. Wait for download to complete
### Playlist Download
1. Select option 2 (Playlist)
2. Enter playlist URL
3. Choose videos to download
4. Select quality preset
### Batch Download
1. Select option 3 (Batch)
2. Enter multiple URLs
3. Set quality preferences
## ⚙️ Configuration
Edit `config.json` to customize:
```json
{
"theme": "cyan",
"auto_cleanup": true,
"log_retention_days": 30,
"audio_bitrate": "192k",
"compression_preset": "medium",
"download_path": "~/Downloads",
"default_quality": "high",
"max_concurrent_downloads": 3,
"auto_archive": false,
"notifications": true,
"thumbnail_quality": "high",
"interface": {
"show_file_size": true,
"show_eta": true,
"progress_bar_style": "detailed",
"auto_clear_completed": true
},
"performance": {
"cache_size": 100,
"chunk_size": 1024,
"buffer_size": 8192,
"max_retries": 5
},
"downloads": {
"auto_resume": true,
"verify_ssl": true,
"timeout": 30,
"rate_limit": 0
}
}
```
### Configuration Options
- **Basic Settings**
- `theme`: UI color theme (default: "cyan")
- `auto_cleanup`: Automatically clean temporary files (default: true)
- `log_retention_days`: Days to keep log files (default: 30)
- `download_path`: Default download location
- `default_quality`: Default video quality (low/medium/high)
- `max_concurrent_downloads`: Maximum parallel downloads
- **Media Settings**
- `audio_bitrate`: Audio quality for extractions
- `compression_preset`: Video compression level
- `thumbnail_quality`: Quality of downloaded thumbnails
- **Interface Options**
- `show_file_size`: Display file sizes
- `show_eta`: Show estimated time remaining
- `progress_bar_style`: Progress bar appearance
- `auto_clear_completed`: Remove completed downloads from view
- **Performance Tuning**
- `cache_size`: Size of video info cache
- `chunk_size`: Download chunk size
- `buffer_size`: Buffer size for processing
- `max_retries`: Maximum retry attempts
- **Download Settings**
- `auto_resume`: Resume interrupted downloads
- `verify_ssl`: Verify SSL certificates
- `timeout`: Connection timeout in seconds
- `rate_limit`: Download speed limit (0 for unlimited)
## 📝 Project Structure
```
CatchStream/
├── CatchStream.py # Main application file
├── config.json # Application configuration
├── requirements.txt # Python dependencies
├── VERSION # Version information
├── CHANGELOG.md # Version history and changes
├── LICENSE # MIT License
├── README.md # Documentation
├── downloads/ # Downloaded videos directory
├── temp/ # Temporary files
├── cache/ # Cache directory
├── archive/ # Archived downloads
└── logs/ # Application logs
└── catchstream_YYYYMMDD.log
```
### Directory Structure
- `downloads/`: Storage for downloaded videos
- `temp/`: Temporary files during processing
- `cache/`: Cached video information
- `archive/`: Long-term storage for completed downloads
- `logs/`: Application logs with daily rotation
### Core Files
- `CatchStream.py`: Main application logic and UI
- `config.json`: User configuration and settings
- `VERSION`: Current version number
- `CHANGELOG.md`: Version history and feature updates
- `requirements.txt`: Required Python packages
## 🤝 Contributing
1. Fork repository
2. Create feature branch
3. Commit changes
4. Push to branch
5. Open Pull Request
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 📧 Contact
DV64 - [@DV64](https://github.com/DV64)
Project Link: [https://github.com/DV64/CatchStream](https://github.com/DV64/CatchStream)
---
Made by DV64
```