{"id":27386269,"url":"https://github.com/dv64/catchstream","last_synced_at":"2026-04-19T17:01:48.278Z","repository":{"id":271167940,"uuid":"912584939","full_name":"DV64/CatchStream","owner":"DV64","description":"A modern terminal-based video downloader with concurrent downloads, processing features and elegant UI.","archived":false,"fork":false,"pushed_at":"2025-01-18T17:01:12.000Z","size":108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T17:18:09.820Z","etag":null,"topics":["catchstream","download","downloader","python","terminal","videos"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DV64.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-06T01:04:36.000Z","updated_at":"2025-01-18T17:01:15.000Z","dependencies_parsed_at":"2025-04-13T17:18:10.786Z","dependency_job_id":"970f22a6-f5ff-476e-825e-d2202e22ed35","html_url":"https://github.com/DV64/CatchStream","commit_stats":null,"previous_names":["dv64/catchstream"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DV64/CatchStream","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DV64%2FCatchStream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DV64%2FCatchStream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DV64%2FCatchStream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DV64%2FCatchStream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DV64","download_url":"https://codeload.github.com/DV64/CatchStream/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DV64%2FCatchStream/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271752113,"owners_count":24814747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["catchstream","download","downloader","python","terminal","videos"],"created_at":"2025-04-13T17:18:08.994Z","updated_at":"2026-04-19T17:01:43.229Z","avatar_url":"https://github.com/DV64.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🎥 CatchStream\n\n### Advanced Video Downloader with Terminal UI\n\n[![Python 3.8+](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20macOS%20%7C%20Android-green.svg)](https://github.com/DV64/CatchStream)\n\n[Features](#features) • [Installation](#installation) • [Usage](#usage) • [Configuration](#configuration) • [FAQ](#faq)\n\n\u003c/div\u003e\n\n---\n\n## 📋 Features\n\n### Core Features\n- Multi-platform support (Windows, Linux, macOS, Android)\n- Concurrent downloads with queue management\n- Multiple quality presets (480p, 720p, 1080p)\n- Progress tracking with detailed statistics\n- Download resume capability\n- Playlist support\n\n### Advanced Features\n- Video processing (compression, watermark, trim)\n- Audio extraction\n- Subtitle download\n- Thumbnail download\n- Format conversion\n- Archive management\n- Favorites system\n\n### User Experience\n- Rich terminal interface\n- Real-time progress tracking\n- Download statistics\n- Custom themes\n- Notifications\n\n## 📋 Requirements\n\n- Python 3.8 or higher\n- FFmpeg\n- Internet connection\n\n## ⚡ Quick Start\n\n1. **Clone Repository**\n```bash\ngit clone https://github.com/DV64/CatchStream.git\ncd CatchStream\n```\n\n2. **Install Dependencies**\n```bash\npip install -r requirements.txt\n```\n\n3. **Run Application**\n```bash\npython CatchStream.py\n```\n\n## 🔧 Installation Guide\n\n### Windows\n```powershell\n# Install FFmpeg using winget or chocolatey\nwinget install FFmpeg\n# OR\nchoco install ffmpeg\n```\n\n### Linux (Ubuntu/Debian)\n```bash\nsudo apt update\nsudo apt install python3 python3-pip ffmpeg\n```\n\n### macOS\n```bash\n# Using Homebrew\nbrew install python ffmpeg\n```\n\n### Android (Termux)\n```bash\npkg update\npkg install python ffmpeg\n```\n\n## 💻 Usage\n\n### Single Video Download\n1. Launch CatchStream\n2. Select option 1 (Single Video)\n3. Enter video URL\n4. Choose quality preset\n5. Wait for download to complete\n\n### Playlist Download\n1. Select option 2 (Playlist)\n2. Enter playlist URL\n3. Choose videos to download\n4. Select quality preset\n\n### Batch Download\n1. Select option 3 (Batch)\n2. Enter multiple URLs\n3. Set quality preferences\n\n## ⚙️ Configuration\n\nEdit `config.json` to customize:\n```json\n{\n    \"theme\": \"cyan\",\n    \"auto_cleanup\": true,\n    \"log_retention_days\": 30,\n    \"audio_bitrate\": \"192k\",\n    \"compression_preset\": \"medium\",\n    \"download_path\": \"~/Downloads\",\n    \"default_quality\": \"high\",\n    \"max_concurrent_downloads\": 3,\n    \"auto_archive\": false,\n    \"notifications\": true,\n    \"thumbnail_quality\": \"high\",\n    \"interface\": {\n        \"show_file_size\": true,\n        \"show_eta\": true,\n        \"progress_bar_style\": \"detailed\",\n        \"auto_clear_completed\": true\n    },\n    \"performance\": {\n        \"cache_size\": 100,\n        \"chunk_size\": 1024,\n        \"buffer_size\": 8192,\n        \"max_retries\": 5\n    },\n    \"downloads\": {\n        \"auto_resume\": true,\n        \"verify_ssl\": true,\n        \"timeout\": 30,\n        \"rate_limit\": 0\n    }\n}\n```\n\n### Configuration Options\n\n- **Basic Settings**\n  - `theme`: UI color theme (default: \"cyan\")\n  - `auto_cleanup`: Automatically clean temporary files (default: true)\n  - `log_retention_days`: Days to keep log files (default: 30)\n  - `download_path`: Default download location\n  - `default_quality`: Default video quality (low/medium/high)\n  - `max_concurrent_downloads`: Maximum parallel downloads\n\n- **Media Settings**\n  - `audio_bitrate`: Audio quality for extractions\n  - `compression_preset`: Video compression level\n  - `thumbnail_quality`: Quality of downloaded thumbnails\n\n- **Interface Options**\n  - `show_file_size`: Display file sizes\n  - `show_eta`: Show estimated time remaining\n  - `progress_bar_style`: Progress bar appearance\n  - `auto_clear_completed`: Remove completed downloads from view\n\n- **Performance Tuning**\n  - `cache_size`: Size of video info cache\n  - `chunk_size`: Download chunk size\n  - `buffer_size`: Buffer size for processing\n  - `max_retries`: Maximum retry attempts\n\n- **Download Settings**\n  - `auto_resume`: Resume interrupted downloads\n  - `verify_ssl`: Verify SSL certificates\n  - `timeout`: Connection timeout in seconds\n  - `rate_limit`: Download speed limit (0 for unlimited)\n\n## 📝 Project Structure\n\n```\nCatchStream/\n├── CatchStream.py        # Main application file\n├── config.json          # Application configuration\n├── requirements.txt     # Python dependencies\n├── VERSION             # Version information\n├── CHANGELOG.md        # Version history and changes\n├── LICENSE            # MIT License\n├── README.md          # Documentation\n├── downloads/         # Downloaded videos directory\n├── temp/             # Temporary files\n├── cache/            # Cache directory\n├── archive/          # Archived downloads\n└── logs/             # Application logs\n    └── catchstream_YYYYMMDD.log\n```\n\n### Directory Structure\n- `downloads/`: Storage for downloaded videos\n- `temp/`: Temporary files during processing\n- `cache/`: Cached video information\n- `archive/`: Long-term storage for completed downloads\n- `logs/`: Application logs with daily rotation\n\n### Core Files\n- `CatchStream.py`: Main application logic and UI\n- `config.json`: User configuration and settings\n- `VERSION`: Current version number\n- `CHANGELOG.md`: Version history and feature updates\n- `requirements.txt`: Required Python packages\n\n## 🤝 Contributing\n\n1. Fork repository\n2. Create feature branch\n3. Commit changes\n4. Push to branch\n5. Open Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 📧 Contact\n\nDV64 - [@DV64](https://github.com/DV64)\n\nProject Link: [https://github.com/DV64/CatchStream](https://github.com/DV64/CatchStream)\n\n---\n\u003cdiv align=\"center\"\u003e\nMade by DV64\n\u003c/div\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdv64%2Fcatchstream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdv64%2Fcatchstream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdv64%2Fcatchstream/lists"}