{"id":20805610,"url":"https://github.com/devrico003/youtube_summarizer","last_synced_at":"2025-10-08T23:09:42.623Z","repository":{"id":185041308,"uuid":"672891128","full_name":"DevRico003/youtube_summarizer","owner":"DevRico003","description":"A modern Next.js-based tool for AI-powered YouTube video summarization. This application allows you to generate concise summaries of YouTube videos using different AI models, with support for multiple languages and summary styles.","archived":false,"fork":false,"pushed_at":"2025-02-06T16:54:25.000Z","size":1833,"stargazers_count":85,"open_issues_count":0,"forks_count":22,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-26T14:13:01.797Z","etag":null,"topics":["gemini-pro","google","groq-api","language","llama3","llm","multilingual","nextjs","openai","prisma","sqlite","summarizer","transcript","translating-transcripts","youtube"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DevRico003.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-31T11:59:03.000Z","updated_at":"2025-03-24T14:19:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"b0e8ae3d-8b11-4a18-95eb-5c76a832ab11","html_url":"https://github.com/DevRico003/youtube_summarizer","commit_stats":null,"previous_names":["devrico003/youtube_summarizer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevRico003%2Fyoutube_summarizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevRico003%2Fyoutube_summarizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevRico003%2Fyoutube_summarizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevRico003%2Fyoutube_summarizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevRico003","download_url":"https://codeload.github.com/DevRico003/youtube_summarizer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246837679,"owners_count":20841902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gemini-pro","google","groq-api","language","llama3","llm","multilingual","nextjs","openai","prisma","sqlite","summarizer","transcript","translating-transcripts","youtube"],"created_at":"2024-11-17T19:15:44.609Z","updated_at":"2025-10-08T23:09:37.582Z","avatar_url":"https://github.com/DevRico003.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NEW VERSION -\u003e Python Version is in the branch \"old_python_version\"\n\n# YouTube AI Summarizer\n\nA modern Next.js-based tool for AI-powered YouTube video summarization. This application allows you to generate concise summaries of YouTube videos using different AI models, with support for multiple languages and summary styles.\n\n## 🎯 Features\n\n- **Multiple AI Models**: Choose your preferred AI model for summarization:\n  - Google Gemini 2.0 Flash (Fast and efficient)\n  - Groq with Llama 70B (High accuracy)\n  - GPT-4o-mini (Balanced performance)\n- **Flexible API Key Requirements**:\n  - Only one API key is required to start using the application\n  - Models become available based on the API keys you provide\n  - Mix and match different models as needed\n- **Multilingual Support**:\n  - Generate summaries in English and German\n  - Clean formatting in both languages\n  - Proper handling of language-specific structures\n- **Flexible Summary Modes**:\n  - Video Summary: Concise, structured overview\n  - Podcast Style: More narrative, detailed analysis\n- **Smart History System**:\n  - Automatic storage in SQLite database\n  - Quick access to previous summaries\n  - Unique constraint handling for video/language combinations\n- **Modern UI/UX**:\n  - Clean, responsive design with Tailwind CSS\n  - Automatic dark/light mode\n  - Progress indicators for summarization\n  - Beautiful markdown rendering\n  - Mobile-friendly interface\n\n## 📱 Interface \u0026 Workflow\n\n### 1. Home Screen\n![Home Screen](1home.png)\nThe main interface where users can input a YouTube URL and select their preferred language, summary type, and AI model.\n\n### 2. Generation Process\n![Generating Summary](2generating-summary.png)\nReal-time progress tracking shows the current status of your summary generation, including processing stages and completion percentage.\n\n### 3. Summary View\n![Video Summary](3video-summary.png)\nThe generated summary is displayed in a clean, well-structured format with an overview and key points from the video.\n\n### 4. History Dashboard\n![Summary History Dashboard](4summary-history-dashboard.png)\nAccess your previously generated summaries through the history dashboard, showing video titles and generation dates.\n\n### 5. Detailed History View\n![Summary History Detail](5summary-history.png)\nView complete details of past summaries, including full analysis and key points.\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js 15.x or higher (for local installation)\n- npm package manager (for local installation)\n- Docker (optional, for containerized installation)\n- API keys for the AI services\n\n### Installation\n\n#### Option 1: Local Installation\n\n1. Clone the repository:\n```bash\ngit clone [repository-url]\ncd youtube-summarizer\n```\n\n2. Install dependencies:\n```bash\nnpm install\n# or\nyarn install\n```\n\n3. Create a `.env` file in the root directory:\n```env\n# You only need to add the API keys for the models you want to use\n# At least one API key is required\nGEMINI_API_KEY=\"your-gemini-api-key\"\nGROQ_API_KEY=\"your-groq-api-key\"\nOPENAI_API_KEY=\"your-openai-api-key\"\n```\n\n4. Set up the database:\n```bash\nnpx prisma generate\nnpx prisma db push\n```\n\n5. Start the development server:\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\n#### Option 2: Docker Installation\n\n1. Clone the repository:\n```bash\ngit clone [repository-url]\ncd youtube-summarizer\n```\n\n2. Build the Docker image:\n```bash\ndocker build -t youtube-summarizer .\n```\n\n3. Run the container:\n```bash\ndocker run -d \\\n  -p 3000:3000 \\\n  -v ./prisma:/app/prisma \\\n  -e GEMINI_API_KEY=\"your-key\" \\\n  -e GROQ_API_KEY=\"your-key\" \\\n  -e OPENAI_API_KEY=\"your-key\" \\\n  youtube-summarizer\n```\n\nNote for Docker installation:\n- The `-v ./prisma:/app/prisma` flag creates a volume for the SQLite database\n- You only need to provide the API keys for the models you want to use\n- At least one API key is required\n- The application will be available at http://localhost:3000\n\nThe application will be available at [http://localhost:3000](http://localhost:3000)\n\n## 🔧 Configuration\n\n### API Key Configuration\n\nThe application is designed to work with partial API key configurations:\n\n- You only need to provide API keys for the models you want to use\n- The UI will automatically show which models are available based on your API keys\n- You can start with just one API key and add more later\n- Models without API keys will be disabled in the interface\n\n### Database Setup\nThe application uses Prisma with SQLite for data persistence. The configuration is defined in `prisma/schema.prisma`:\n```prisma\ngenerator client {\n  provider = \"prisma-client-js\"\n}\n\ndatasource db {\n  provider = \"sqlite\"\n  url      = \"file:./dev.db\"\n}\n```\n\nTo reset the database if you encounter any issues:\n```bash\n# Remove the existing database\nrm prisma/dev.db\n# Regenerate the database\nnpx prisma generate\nnpx prisma db push\n```\n\n### Obtaining API Keys\n\n1. **Google Gemini API Key** (Good starting choice - free tier available):\n   - Visit [Google AI Studio](https://aistudio.google.com/app/apikey)\n   - Create a new project if needed\n   - Generate an API key\n   - Free tier available with generous limits\n\n2. **Groq API Key**:\n   - Go to [Groq Cloud](https://console.groq.com/)\n   - Sign up for an account\n   - Navigate to API settings\n   - Generate a new API key\n\n3. **OpenAI API Key**:\n   - Visit [OpenAI Platform](https://platform.openai.com/api-keys)\n   - Create an account or log in\n   - Go to API settings\n   - Generate a new API key\n   - Note: This service requires a paid subscription\n\n## 🆕 Technical Highlights\n\n### Recent Migration from Python\n- Previously built with Python and Streamlit\n- Completely rebuilt using Next.js for better performance\n- New architecture using the App Router for improved routing\n- Enhanced state management and real-time updates\n\n### Performance Improvements\n- Streaming responses for real-time progress updates\n- Efficient chunk processing for long videos\n- Smart caching of summaries\n- Optimized database queries\n\n### Modern Tech Stack\n- **Frontend**: Next.js 15+, React, TypeScript\n- **Styling**: Tailwind CSS, shadcn/ui components\n- **Database**: Prisma with SQLite\n- **AI Integration**: Multiple model support\n- **API**: Built-in API routes with streaming support\n\n## 📚 Usage\n\n1. Visit the homepage\n2. Paste a YouTube URL\n3. Select your preferred:\n   - Language (English/German)\n   - Summary mode (Video/Podcast)\n   - AI model\n4. Click \"Generate Summary\"\n5. Watch the real-time progress\n6. View your formatted summary\n7. Access previous summaries in the history section\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## 🚨 Troubleshooting\n\n### Database Issues\n\nIf you encounter database errors like \"database disk image is malformed\", follow these steps:\n\n1. Stop the development server\n2. Delete the corrupted database:\n   ```bash\n   rm prisma/dev.db\n   ```\n3. Regenerate the database:\n   ```bash\n   npx prisma generate\n   npx prisma db push\n   ```\n4. Restart the development server:\n   ```bash\n   npm run dev\n   ```\n\n### API Errors\n\nIf you encounter API errors:\n\n1. Check that all environment variables are properly set in `.env`\n2. Verify that your API keys are valid and have sufficient credits\n3. For history-related errors, try resetting the database as described above\n\n### Common Issues\n\n1. **\"Invalid API Key\" errors**:\n   - Double-check your API keys in `.env`\n   - Make sure there are no extra spaces or quotes\n   - Verify the keys are active in their respective platforms\n\n2. **\"Failed to fetch summaries\" error**:\n   - Usually indicates a database issue\n   - Follow the database reset steps above\n   - Check if your database has proper read/write permissions\n\n3. **Performance issues**:\n   - Long videos may take more time to process\n   - Consider using Gemini model for faster processing\n   - Check your network connection","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevrico003%2Fyoutube_summarizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevrico003%2Fyoutube_summarizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevrico003%2Fyoutube_summarizer/lists"}