A modern, elegant web-based Telegram channel archiver with real-time monitoring, smart file handling, and beautiful dark theme UI
- Dark/Light Theme Toggle - Professional dark mode with smooth transitions
- Glass Morphism Design - Beautiful translucent cards with backdrop blur effects
- Custom OperatorMono Font - Elegant monospace typography throughout
- Responsive Design - Perfect on desktop, tablet, and mobile devices
- Real-time Updates - Live progress monitoring and status indicators
- Web-based Configuration - No more manual config.json editing
- Add/Edit/Delete Channels - Full CRUD operations with beautiful modals
- Smart URL Validation - Supports
https://t.me/channeland@channelformats - Auto-name Generation - Automatically suggests friendly names from URLs
- Enable/Disable Channels - Toggle archiving without deleting configuration
- Bulk Operations - Manage multiple channels efficiently
- Start/Stop Archiving - Full control from the web interface
- Real-time Progress Tracking - Live progress bars and channel status
- Smart File Handling - Configurable file size limits (skip large files)
- Live Logs Terminal - Real-time archiving logs with terminal styling
- Process Monitoring - Track current channel, processed count, and timing
- Statistics Cards - Animated counters for channels, messages, files, and media
- Archive Overview - Visual representation of your archive collection
- Channel Status - Live indicators for archiving activity
- Quick Actions - Fast access to search, refresh, and system info
- Full-text Search - Find content across all archived channels
- Channel Filtering - Search within specific channels
- Highlighted Results - Search terms highlighted in results
- Advanced Filters - Date ranges, media types, and more
- Export Results - Save search results for later analysis
- Markdown + JSON Format - Human-readable archives with metadata
- Media Organization - Automatic media file organization and linking
- Image Previews - Click images for full-size modal previews
- File Type Detection - Smart icons and handling for different media types
- Size Optimization - Configurable file size limits to prevent long downloads
- Secure Configuration - API credentials safely stored
- Error Handling - Graceful failure recovery and user feedback
- Performance Optimized - Efficient CSS, lazy loading, and smart caching
- Cross-platform - Works on Windows, macOS, and Linux
Beautiful dark theme dashboard with real-time statistics, channel management, and archiving controls
Powerful search functionality with highlighted results and channel filtering
- Python 3.8 or higher
- Telegram API credentials (api_id and api_hash)
-
Clone the repository
git clone https://github.com/LinuxCTRL/Telegram-Archiver.git cd Telegram-Archiver -
Create and activate virtual environment
# Create virtual environment python -m venv venv # Activate virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Configure API credentials
python test_setup.py
Follow the prompts to enter your Telegram API credentials.
-
Start the web interface
python web_frontend.py
-
Open your browser Navigate to
http://localhost:5000and enjoy your modern archive browser!
- Click the "Add Channel" button in the Channel Management section
- Enter the Telegram channel URL (
https://t.me/channelname) or username (@channelname) - The display name will be auto-generated, or you can customize it
- Choose whether to enable archiving immediately
- Click "Add Channel" to save
- Edit: Click the edit button to modify channel details
- Enable/Disable: Toggle archiving without deleting the channel
- Delete: Remove channels with confirmation (archived files remain)
- Configure Max File Size (default: 50MB)
- Choose File Handling: Skip or Download large files
- Click "Start Archiving" to begin
- Monitor progress in real-time with live logs
- Progress Bar: Visual completion percentage
- Current Channel: See which channel is being processed
- Live Logs: Terminal-style output with timestamps
- Statistics: Processed vs. total channels
- Use the search bar in the navigation or go to the Search page
- Enter keywords to find across all channels
- Optionally filter by specific channel
- View highlighted results with context
- Case-insensitive: Search works regardless of capitalization
- Multi-word: Search for phrases or multiple keywords
- Media filtering: Find messages with specific media types
- Export results: Save search results for analysis
- Click the theme toggle button in the navigation
- Supports both light and dark modes
- Preference saved automatically
- Custom OperatorMono font included
- Fallback to system monospace fonts
- Optimized for readability and code display
telegram-archive-browser/
βββ π web_frontend.py # Main Flask application
βββ π telegram_archiver.py # Core archiving functionality
βββ π monitor_control.py # Process monitoring and control
βββ π run_archiver.py # Archiving script runner
βββ π config.json # Configuration file
βββ π templates/ # HTML templates
β βββ π base.html # Base template with navigation
β βββ π index.html # Dashboard and channel management
β βββ π search.html # Search interface
β βββ π channel.html # Channel file listings
β βββ π view.html # File viewer with media support
βββ π static/ # Static assets
β βββ π css/
β β βββ π style.css # Custom Tailwind CSS styles
β βββ π fonts/
β β βββ π OperatorMonoLig-Book.otf # Custom font
β βββ π js/
β βββ π app.js # Frontend JavaScript
βββ π archived_channels/ # Archived content storage
βββ π [Channel Name]/
βββ π [Channel]_[Date].md # Markdown archives
βββ π [Channel]_[Date]_metadata.json # Metadata
βββ π media/ # Downloaded media files
{
"api_credentials": {
"api_id": "your_api_id",
"api_hash": "your_api_hash",
"session_name": "telegram_archiver"
}
}{
"channels": [
{
"identifier": "https://t.me/channelname",
"name": "Display Name",
"enabled": true
}
]
}{
"archive_settings": {
"messages_per_channel": 100,
"days_back": 7,
"output_directory": "archived_channels",
"download_media": true
}
}- Size Limits: Configure maximum file size for downloads
- Skip Large Files: Automatically skip files exceeding limits
- Media Organization: Automatic folder structure for media files
- Format Support: Images, videos, documents, and audio files
- Live Progress: Real-time updates during archiving
- Process Control: Start/stop archiving from the web interface
- Error Handling: Graceful recovery from network issues
- Logging: Comprehensive logs with timestamps
- Lazy Loading: Efficient loading of large archive lists
- Caching: Smart caching for faster page loads
- Compression: Optimized assets and images
- Responsive: Adaptive layouts for all screen sizes
- Glass Morphism: Modern translucent design elements
- Gradient Accents: Beautiful color transitions
- Micro-interactions: Smooth hover effects and animations
- Typography: Custom OperatorMono font for elegance
- Keyboard Navigation: Full keyboard support
- Screen Reader: Proper ARIA labels and semantic HTML
- Color Contrast: WCAG compliant color schemes
- Focus Management: Clear focus indicators
- Touch Friendly: Large touch targets and gestures
- Responsive Grid: Adaptive layouts for all devices
- Mobile Navigation: Collapsible menu for small screens
- Performance: Optimized for mobile networks
# Install development dependencies
pip install -r requirements.txt
# Run in development mode
python web_frontend.py
# Access at http://localhost:5000- Themes: Modify CSS variables for custom colors
- Fonts: Replace OperatorMono with your preferred font
- Layout: Adjust Tailwind classes for different layouts
- Features: Extend API endpoints for additional functionality
GET /api/channels- Get all channelsPOST /api/channels- Add new channelPUT /api/channels/{index}- Update channelDELETE /api/channels/{index}- Delete channel
POST /api/archiving/start- Start archiving processPOST /api/archiving/stop- Stop archiving processGET /api/archiving/status- Get archiving status
GET /api/settings- Get archive settingsPOST /api/settings- Update archive settings
- API Credentials: Stored securely in config.json
- Input Validation: All user inputs validated and sanitized
- CSRF Protection: Forms protected against cross-site requests
- Error Handling: Sensitive information not exposed in errors
- Local Storage: All data stored locally on your machine
- No Tracking: No analytics or tracking scripts
- Secure Sessions: Telegram sessions handled securely
- Data Control: Full control over your archived data
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Telethon - Telegram client library
- Flask - Web framework
- Tailwind CSS - Utility-first CSS framework
- OperatorMono - Beautiful monospace font
- Heroicons - Beautiful SVG icons
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
Built with β€οΈ for secure and elegant Telegram archiving