A comprehensive toolkit for automating submissions to Hot100.ai, including browser automation, API discovery, and a browser extension.
- Playwright Automation Script: Full browser automation for submitting projects
- Browser Extension: Semi-automated helper for quick form filling
- API Monitor: Discovers and documents API endpoints
- Session Management: Saves and restores authentication sessions
- Postman Collection Generator: Auto-generates API documentation
auto-crawler/
βββ hot100ai_submission_research.md # Research findings
βββ hot100ai_automation.js # Main automation script
βββ api_monitor.js # API discovery tool
βββ package.json # Node.js dependencies
βββ .env.example # Environment variables template
βββ browser-extension/ # Chrome extension
β βββ manifest.json
β βββ content.js
β βββ background.js
β βββ popup.html
β βββ popup.js
β βββ styles.css
βββ README.md # This file
- Node.js v14 or higher
- Google Chrome browser
- A Google account for authentication
- Clone the repository:
cd /Users/zenglei/Workspace/auto-crawler- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env
# Edit .env with your Google credentialsRun the main automation script:
npm run submit
# or
node hot100ai_automation.jsFeatures:
- Automatic Google OAuth login
- Session persistence
- Form auto-filling
- Thumbnail upload
- API request capture
Monitor and discover API endpoints:
npm run monitor
# or
node api_monitor.jsThis will:
- Navigate through Hot100.ai pages
- Capture all API requests
- Generate endpoint documentation
- Create a Postman collection
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
browser-extensionfolder
- Click the extension icon when on hot100.ai
- Fill in project details
- Click "Fill Form on Page" to auto-fill
- Use "Capture API" to monitor requests
- Method: Google OAuth 2.0
- Backend: Supabase
- Token Storage: localStorage (
sb-wscvwmwxpdzszdcxnaja-auth-token)
GET /api/submissions?filter=hot100
GET /api/chart/stats
GET /api/stats/total-vibes
POST /api/submissions (requires auth)
- Google account authentication
- Project title
- Description
- Project URL
- Thumbnail image (PNG/JPG)
- Tags/categories
- Review Hot100.ai's Terms of Service before automation
- Respect rate limits to avoid being blocked
- Consider reaching out for official API access
- Use automation responsibly
- Never hardcode credentials
- Use environment variables for sensitive data
- Keep authentication tokens secure
- Don't commit
.envfiles to version control
- Google OAuth may require 2FA handling
- CAPTCHAs may block automation
- Site structure may change (BETA 2.0)
- Manual review may be required for submissions
-
Authentication fails
- Check Google account credentials
- Ensure 2FA is handled if enabled
- Verify no security blocks on account
-
Form fields not found
- Site structure may have changed
- Update selectors in automation script
- Use API monitor to rediscover endpoints
-
Rate limiting
- Add delays between submissions
- Reduce automation frequency
- Consider manual review process
The API monitor generates:
hot100ai-api-discovery-[timestamp].json- Full API call loghot100ai-endpoints-[timestamp].json- Simplified endpoint listhot100ai-postman-[timestamp].json- Postman collection
- Contact Hot100.ai for official API access
- Implement rate limiting in automation scripts
- Add error handling for edge cases
- Create test suite for validation
- Build dashboard for submission tracking
MIT License - Use at your own risk and responsibility
Feel free to submit issues and enhancement requests!
const submitter = new Hot100AISubmitter();
await submitter.initialize();
await submitter.login(email, password);
await submitter.submitProject({
title: 'My AI Project',
description: 'An innovative AI tool',
url: 'https://myproject.com',
tags: ['ai', 'automation']
});
await submitter.close();Note: This toolkit is for educational purposes. Always respect the target website's terms of service and implement responsible automation practices.