Only the posts worth your time
Sniply is an intelligent social media aggregator that scrapes content from multiple platforms, categorizes posts using AI, and delivers only the content you care about directly to your inbox.
- Facebook - Posts from your feed and specific pages
- Twitter/X - Tweets from timeline and specific users
- Reddit - Posts from subreddits and general feed
- LinkedIn - Professional posts and updates
- Smart Classification - Automatically categorizes posts into:
- News & Current Events
- Technology & Innovation
- Sports & Entertainment
- Lifestyle & Personal
- Memes & Humor
- Advertisements
- Groq AI Integration - Uses advanced language models for accurate categorization
- Per-Account Settings - Different email categories for each account
- Post Limits - Control how many posts to process per scrape
- Scrape Intervals - Set custom timing for automated scraping
- Specific Targeting - Follow specific users, pages, or subreddits
- Enable/Disable - Turn accounts on/off without deletion
- Filtered Content - Only receive posts from categories you want
- Clean Formatting - AI-cleaned posts optimized for reading
- Detailed Metadata - Username, platform, category, and timestamps
- No Account Required - Test all features without real social media accounts
- Realistic Data - 900+ sample posts across all categories
- Full Functionality - Complete testing environment for evaluation
- Python 3.7+
- Chrome browser (for real scraping)
- Groq API key (for AI categorization)
-
Clone the repository
git clone https://github.com/khaled-muhammad/sniply.git cd sniply -
Install dependencies
pip install -r requirements.txt
-
Set up environment
# Create .env file echo "GROQ_API_KEY=your_groq_api_key_here" > .env
-
Run the application
python main.py
-
Try Demo Mode (Recommended)
- Choose option
5(Demo Mode) - Select
1(Setup Demo Mode) - Explore all features risk-free
- Choose option
-
Add Real Accounts
- Choose option
4(Add New Account) - Select platform and login via browser
- Configure settings for each account
- Choose option
-
Start Scraping
- Choose option
1(Start Scraping) - Watch as posts are processed and categorized
- Check
sent_emails.txtfor email notifications
- Choose option
Adding Accounts
python main.py
# Choose: 4 (Add New Account)
# Select platform and authenticate via browserManaging Settings
python main.py
# Choose: 3 (Manage Accounts)
# Select account to configure:
# - Email categories
# - Post limits
# - Scrape intervals
# - Specific pages/usersViewing Status
python main.py
# Choose: 2 (View Connected Accounts)
# See all accounts with status and settingsManual Scraping
python main.py
# Choose: 1 (Start Scraping)
# Processes all enabled accountsAutomated Scraping
# Set up cron job or task scheduler
python start.pyEmail Categories
news- Breaking news and current eventstechnology- Tech updates and innovationssports- Sports news and updatesentertainment- Movies, TV, music, celebritieslifestyle- Health, wellness, travel, foodpersonal- Personal updates from friendsmeme- Humor and memesadvertisement- Promotional content
Platform-Specific Settings
- Reddit: Target specific subreddits
- Facebook/X/LinkedIn: Follow specific users/pages
- All Platforms: Set post limits and intervals
Perfect for testing without real accounts!
python main.py
# Choose: 5 (Demo Mode)
# Choose: 1 (Setup Demo Mode)- 20 demo accounts across all platforms
- Realistic sample posts in all categories
- Full feature testing without authentication
- No rate limits or browser requirements
- โ Account management and settings
- โ Content scraping simulation
- โ AI categorization testing
- โ Email notification system
- โ Platform-specific configurations
See DEMO_README.md for detailed demo instructions.
Sniply/
โโโ main.py # Main application entry point
โโโ models.py # Account and settings data models
โโโ utils.py # Core utilities and AI integration
โโโ add_account.py # Account authentication flow
โโโ manage_accounts.py # Account management interface
โโโ start.py # Scraping orchestration
โโโ scrappers/ # Platform-specific scrapers
โ โโโ facebook_scrapper.py
โ โโโ x_scrapper.py
โ โโโ reddit_scrapper.py
โ โโโ linkedin_scrapper.py
โโโ demo_mode.py # Demo mode functionality
โโโ demo_scraper.py # Demo scraping simulation
โโโ demo_add_account.py # Demo account creation
- Account Data:
~/sniply/sm_accs/ - Cookies:
{platform}/{username}.sc - Settings:
{platform}/{username}_settings.json - Email Log:
sent_emails.txt
- selenium - Browser automation
- webdriver-manager - Chrome driver management
- groq - AI categorization
- colorama - Terminal colors
# Required for AI categorization
GROQ_API_KEY=your_groq_api_key_here{
"account_id": "platform_username",
"platform": "facebook",
"username": "john_doe",
"email_categories": ["news", "technology"],
"enabled": true,
"max_posts_per_scrape": 100,
"scrape_interval_minutes": 30,
"specific_pages": ["https://example.com"],
"subreddits": ["technology", "news"],
"follow_users": ["user1", "user2"]
}# 1. Add accounts from news sources
python main.py โ 4 โ Add Reddit account
# 2. Configure for news subreddits
python main.py โ 3 โ Select account โ Edit subreddits: "news,worldnews"
# 3. Set email categories to news only
python main.py โ 3 โ Select account โ Email categories: "news"
# 4. Start scraping
python main.py โ 1# 1. Add Twitter accounts
python main.py โ 4 โ Add X account
# 2. Configure for tech category
python main.py โ 3 โ Select account โ Email categories: "technology"
# 3. Follow tech influencers
python main.py โ 3 โ Select account โ Follow users: "elonmusk,sundarpichai"
# 4. Start scraping
python main.py โ 1# 1. Add accounts from all platforms
python main.py โ 4 โ Add Facebook, X, Reddit, LinkedIn accounts
# 2. Configure different categories per platform
# Facebook: personal, lifestyle
# X: news, technology
# Reddit: news, entertainment
# LinkedIn: technology, news
# 3. Set different post limits
# Facebook: 50 posts
# X: 100 posts
# Reddit: 75 posts
# LinkedIn: 25 posts
# 4. Start scraping all platforms
python main.py โ 1Authentication Fails
- Ensure Chrome browser is installed
- Check internet connection
- Try clearing browser cache
- Verify platform login credentials
No Posts Found
- Check account enable/disable status
- Verify email category settings
- Ensure accounts have content in feed
- Check post limit settings
AI Categorization Not Working
- Verify
GROQ_API_KEYis set correctly - Check internet connection
- Ensure Groq API quota is available
- Posts will default to "other" category if AI fails
Performance Issues
- Reduce
max_posts_per_scrapesetting - Increase
scrape_interval_minutes - Disable unused accounts
- Close other browser instances
# Run with verbose output
python main.py --debug- Batch Processing: Process multiple accounts simultaneously
- Smart Limits: Set appropriate post limits per platform
- Selective Categories: Only enable needed email categories
- Account Management: Disable unused accounts
Facebook: 50-100 posts, 30-60 min intervals
X: 100-200 posts, 15-30 min intervals
Reddit: 75-150 posts, 30-45 min intervals
LinkedIn: 25-50 posts, 60-120 min intervals
- Fork the repository
- Create a feature branch
- Make your changes
- Test with demo mode
- Submit a pull request
git clone https://github.com/khaled-muhammad/sniply.git
cd sniply
pip install -r requirements.txt
python demo_mode.py # Setup demo environmentThis project is licensed under the MIT License - see the LICENSE file for details.
- Groq for AI categorization capabilities
- Selenium for browser automation
- Chrome WebDriver for platform access
- Colorama for terminal styling
- Issues: GitHub Issues
- Demo Guide: DEMO_README.md
Made with โค๏ธ for smarter social media consumption
Sniply - Because your time is valuable, and not all posts are worth it.