A modern, feature-rich Indonesian news aggregator desktop application built with Python and CustomTkinter. This application provides a beautiful, user-friendly interface to browse, view, and manage news from multiple Indonesian news sources.
- Browse news from multiple Indonesian news sources
- Filter by category, zone, and search keywords
- Beautiful card-based UI for easy reading
- Real-time news fetching with loading indicators
- Support for 12+ major news sources including:
- Antara News
- CNN News
- CNBC News
- Republika News
- Tempo News
- Okezone News
- Kumparan News
- Tribun News (with zone support)
- Zetizen JawaPos News
- Vice News
- Suara News
- VOA News
- View raw API responses with JSON syntax highlighting
- Copy API endpoints and responses to clipboard
- Test API calls directly from the application
- Real-time API URL generation based on selections
- Generate Instagram-style news images with text overlays
- Custom logo upload support
- Bulk download selected news items as images
- Export news content as text files
- Grid view for easy selection
- Multi-select with keyboard shortcuts (Cmd/Ctrl + Click, Shift + Click)
- Publish news directly to Instagram and Facebook
- Configure Meta API credentials through the app
- Customizable caption templates
- Real-time publishing logs
- Support for both Instagram and Facebook Page publishing
- Beautiful, modern interface built with CustomTkinter
- Light and dark mode support
- Responsive design with smooth animations
- Intuitive navigation with tabbed interface
- Python 3.8 or higher
- pip (Python package manager)
-
Clone the repository:
git clone https://github.com/rizalfadhilah/Automaticnewscrawl.git cd Automaticnewscrawl -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
chmod +x build_dmg.sh
./build_dmg.shchmod +x build_mac.sh
./build_mac.sh.\build_windows.ps1build_windows.batFor detailed building instructions, see BUILD_INSTRUCTIONS.md.
- Select a news source from the left panel
- (Optional) Select a zone or category if available
- (Optional) Enter search keywords
- Click "π Fetch News" to load news articles
- Browse news cards and click to open articles in your browser
- Select a news source
- Configure filters (zone, type, search)
- View the generated API endpoint
- Click "Fetch API Response" to see the JSON response
- Use "Copy URL" or "Copy JSON" buttons to copy data
- Select a news source and configure filters
- (Optional) Upload a custom logo for image generation
- Click "Load News" to fetch news items
- Select news items (click to select, Cmd/Ctrl+Click for multi-select)
- Use bulk actions:
- Download Selected: Save all selected items as images
- Save as Text: Export selected items as a text file
- Individual actions per card:
- Download: Generate and save a single news image
- Copy: Copy news content to clipboard
- Publish: Publish to Instagram/Facebook (requires Meta API configuration)
- Click "βοΈ Edit" to enable editing
- Enter your Meta API credentials:
- Instagram Access Token: Your Instagram Business Account access token
- Instagram User ID: Your Instagram Business Account ID
- Facebook Page Access Token: Your Facebook Page access token
- Facebook Page ID: Your Facebook Page ID
- Configure default tags and caption template
- Click "πΎ Save Configuration" to save
Note: To get Meta API credentials, visit Meta for Developers
Automaticnewscrawl/
βββ app.py # Main application class
βββ main.py # Application entry point
βββ requirements.txt # Python dependencies
βββ config/
β βββ news_sources.py # News sources configuration
βββ services/
β βββ api_client.py # News API client
β βββ meta_client.py # Meta API client (Instagram/Facebook)
βββ utils/
β βββ date_utils.py # Date utility functions
β βββ image_utils.py # Image generation utilities
β βββ meta_config.py # Meta API configuration manager
β βββ path_utils.py # Path handling utilities
β βββ text_utils.py # Text processing utilities
βββ widgets/
βββ json_viewer.py # JSON viewer widget
βββ loading_spinner.py # Loading spinner widget
βββ modern_button.py # Modern button widget
βββ news_card.py # News card widget
βββ news_grid_card.py # News grid card widget
- customtkinter (>=5.2.0) - Modern UI framework
- requests (>=2.31.0) - HTTP library for API calls
- Pillow (>=10.0.0) - Image processing
- pyperclip (>=1.8.2) - Clipboard operations
- pyinstaller (>=6.0.0) - For building executables
See requirements.txt for the complete list.
News sources are configured in config/news_sources.py. You can add or modify news sources by editing this file.
Meta API configuration is stored locally and can be managed through the "Meta Config" tab in the application.
The application uses the Berita Indo API to fetch news data.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
rizal.fadh
- GitHub: @fadhriza
- Project: Automaticnewscrawl
- Built with CustomTkinter for the modern UI
- News data provided by Berita Indo API
- Thanks to all contributors and users of this project
If you encounter any issues or have questions, please open an issue on the GitHub repository.
Made with β€οΈ for the Indonesian news community