An AI-powered URL digestion tool that uses Google Gemini to extract and analyze content from YouTube videos, GitHub repositories, and any webpage.
- π¬ YouTube Video Analysis: Extract transcripts, summaries, and key insights from YouTube videos
- π» GitHub Repository Analysis: Analyze code repositories, documentation, and project structure
- π° Webpage Content Extraction: Digest articles, blogs, documentation, and any public webpage
- π§ AI-Powered Understanding: Uses Google Gemini 2.5 Pro for intelligent content analysis
- πΎ Memory Storage: Creates searchable memories from extracted content
- π― Smart Routing: Automatically categorizes content (video, code, documentation, etc.)
- π Web Interface: Clean, modern UI for easy URL submission and result viewing
- π Bug Report Integration: Drop Loom videos for bug reports with automatic transcription
- π¬ Feedback System: Submit context, feedback, and additional information to AI database
- Python 3.8+
- Google Cloud account with billing enabled
- Google Gemini API key
- Clone the repository:
git clone https://github.com/CryptoJym/website-eater.git
cd website-eater- Set up the backend:
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt- Configure your API key:
# Copy the template
cp .env.template .env
# Edit .env and add your Google API key
# GOOGLE_API_KEY=your-api-key-here- Start the server:
cd ..
./restart_server.sh- Open your browser to http://localhost:5003
- Go to Google Cloud Console
- Create or select a project
- Enable billing for the project
- Navigate to APIs & Services β Credentials
- Click "+ CREATE CREDENTIALS" β "API key"
- Enable the Generative Language API
- Copy your API key (starts with
AIza...)
Note: Make sure you create an API key, not an OAuth client or service account key!
- Open http://localhost:5003 in your browser
- Paste any URL in the input field:
- YouTube videos:
https://www.youtube.com/watch?v=... - GitHub repos:
https://github.com/owner/repo - Any webpage:
https://example.com/article
- YouTube videos:
- Click "Digest URL"
- View the extracted content and analysis
curl -X POST http://localhost:5003/api/digest \
-H "Content-Type: application/json" \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'import requests
response = requests.post('http://localhost:5003/api/digest',
json={'url': 'https://github.com/google/gemini'})
data = response.json()
print(f"Title: {data['title']}")
print(f"Content Type: {data['content_type']}")
print(f"Analysis: {data['analysis']}")The bottom section of the interface allows you to submit:
- Loom Videos: Automatically detects and processes Loom URLs for bug reports
- General Feedback: Feature requests, ideas, or any context
- Bug Reports: Detailed descriptions with optional video evidence
Example:
https://www.loom.com/share/abc123...
Bug: The submit button doesn't work when...
All feedback is automatically:
- Processed by Gemini AI
- Categorized (bug_report, feature_request, etc.)
- Routed to appropriate destinations (bug_tracker, development_backlog)
- Stored in the knowledge base for future reference
website-eater/
βββ backend/
β βββ app_url_digestion.py # Main Flask application
β βββ requirements.txt # Python dependencies
β βββ .env # Configuration (git-ignored)
βββ frontend/ # Frontend assets (if any)
βββ restart_server.sh # Server restart script
βββ update_api_key.py # API key updater utility
βββ README.md # This file
Edit backend/.env to configure:
GOOGLE_API_KEY: Your Gemini API keyGEMINI_MODEL: Model to use (default: gemini-2.5-pro-preview-03-25)USER_ID: User identifier for memory storageAGENT_ID: Agent identifier
- Check your Google Cloud billing is enabled
- Use the preview model for higher quotas:
gemini-2.5-pro-preview-03-25 - Wait a few minutes if you hit rate limits
- Make sure you created an API key, not OAuth or Service Account credentials
- API keys start with
AIza...
- Check if port 5003 is already in use
- Ensure Python virtual environment is activated
- Check logs for specific error messages
{
"status": "success",
"url": "https://example.com",
"title": "Extracted Title",
"content_type": "article|video|code|documentation",
"memory_id": "mem_abc123",
"content_length": 1234,
"analysis": "Full content analysis...",
"url_accessed": true,
"routes": [
{"destination": "knowledge_base"}
]
}- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Google Gemini
- Flask web framework
- Modern web technologies
- Never commit your
.envfile or API keys - Keep your API keys secure and rotate them regularly
- Use environment variables for sensitive configuration
For issues, questions, or contributions, please open an issue on GitHub.
Happy URL Digesting! ππ½οΈ Key documentation for the May 20 2025 Gemini API update
| Area | Doc / Notebook | What it covers |
|---|---|---|
| Official reference | Gemini API β URL context tool (Google AI for Developers) | Parameters, limits (20 URLs/request, quota), usage examples, and best-practice notes for the new url_context tool. |
| Gemini API β Release notes (May 20 2025) (Google AI for Developers) | Full changelogβincluding URL context, multi-tool calls, async Live API, and video-frame controls. | |
| Gemini API reference (root) (Google AI for Developers) | Updated method and type definitions for SDK v1.0, including Tool(url_context={}). |
|
| Hands-on examples | Cookbook β βBrowser as a toolβ notebook (GitHub) | Three worked examples showing URL context alongside code-execution and Google-Search grounding. |
| Quickstart β βGet startedβ notebook (Google Colab) | Minimal Colab that installs google-genai, enables URL context, and runs a compare-two-sites demo. |
|
| Open-source repo | google-gemini/cookbook (GitHub) (GitHub) | All quickstarts + Apache-2.0 code kept in sync with the docs. |
These links take you straight to the authoritative pages and example notebooks so you can dive into the new URL-context feature, review the full API surface, and copy/paste runnable samples.