{"id":22275597,"url":"https://github.com/aiafterdark/youtube-summarizer-app","last_synced_at":"2026-05-04T22:37:22.946Z","repository":{"id":263204048,"uuid":"889676595","full_name":"AIAfterDark/youtube-summarizer-app","owner":"AIAfterDark","description":"AI-powered YouTube video summarizer that generates concise summaries and enables interactive Q\u0026A about video content. Supports both cloud (OpenRouter) and local (Ollama) deployment with adjustable summary detail levels.","archived":false,"fork":false,"pushed_at":"2024-12-03T18:05:28.000Z","size":3715,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-01T12:09:21.416Z","etag":null,"topics":["ai-agents","ai-tools","chatbot","content-summarization","llama","machine-learning","natural-language-processing","ollama","open-source","openrouter","python","streamlit","video-processing","youtube-api","youtube-transcripts"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AIAfterDark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2024-11-16T23:34:43.000Z","updated_at":"2024-12-07T22:20:08.000Z","dependencies_parsed_at":"2025-06-01T03:29:42.273Z","dependency_job_id":"b0093094-d0d2-4fcf-b216-e2925d21cb09","html_url":"https://github.com/AIAfterDark/youtube-summarizer-app","commit_stats":null,"previous_names":["aiafterdark/youtube-summarizer-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AIAfterDark/youtube-summarizer-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AIAfterDark%2Fyoutube-summarizer-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AIAfterDark%2Fyoutube-summarizer-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AIAfterDark%2Fyoutube-summarizer-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AIAfterDark%2Fyoutube-summarizer-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AIAfterDark","download_url":"https://codeload.github.com/AIAfterDark/youtube-summarizer-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AIAfterDark%2Fyoutube-summarizer-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265934265,"owners_count":23852092,"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":["ai-agents","ai-tools","chatbot","content-summarization","llama","machine-learning","natural-language-processing","ollama","open-source","openrouter","python","streamlit","video-processing","youtube-api","youtube-transcripts"],"created_at":"2024-12-03T14:10:07.863Z","updated_at":"2026-05-04T22:37:22.868Z","avatar_url":"https://github.com/AIAfterDark.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YouTube Video Summarizer\nCreated by AI Afterdark - Building Innovation with AI at Night\nAn AI-powered application that generates summaries of YouTube videos and enables interactive conversations about their content.\n\u003cimg src=\"img/YoutubeVideoSummarizer.gif\" alt=\"Demo\" autoplay loop\u003e\n\n## Live Demo\nExperience the YouTube Video Summarizer in action: [https://aiafterdark-youtube-summarizer.streamlit.app/](https://aiafterdark-youtube-summarizer.streamlit.app/)\n\n## Features\n- Robust YouTube video transcript extraction with multiple fallback methods:\n  - YouTube Transcript API (primary)\n  - Pytube captions\n  - yt-dlp caption extraction\n- AI-powered content summarization using OpenRouter's LLMs\n- Interactive Q\u0026A about video content\n- Adjustable summary detail levels\n- Clean, responsive UI\n- Comprehensive error handling and reporting\n\n## Cloud Deployment (Default)\n### Prerequisites\n- Python 3.11+\n- pip (Python package manager)\n- Git\n- OpenRouter API key\n\n### Quick Start\n1. Clone the Repository\n```bash\ngit clone https://github.com/AIAfterDark/youtube-summarizer-app.git\ncd youtube-summarizer-app\n```\n\n2. Set Up Virtual Environment\n```bash\npython -m venv venv\n# Windows\nvenv\\Scripts\\activate\n# Unix/MacOS\nsource venv/bin/activate\n```\n\n3. Install Dependencies\n```bash\npip install -r requirements.txt\n```\n\n4. Configure Environment\nCreate a `.env` file in the root directory and add your OpenRouter API key:\n```env\nOPENROUTER_API_KEY=your_api_key_here\n```\n\n5. Run the Application\n```bash\nstreamlit run app.py\n```\n\n## Local Deployment (Ollama)\nThe app-local.py version allows you to run the summarizer using Ollama on your local machine, which is free and doesn't require an API key.\n\n### Prerequisites\n- All requirements from Cloud Deployment\n- Ollama installed on your machine\n\n### Setup Steps\n1. Install Ollama\n   - Download from [ollama.ai](https://ollama.ai)\n   - Follow the installation instructions for your OS\n   - Make sure Ollama is running in the background\n\n2. Pull Your Preferred Model\n```bash\n# Pull the default model (recommended)\nollama pull llama2\n\n# Or pull other supported models\nollama pull codellama\nollama pull mistral\nollama pull neural-chat\n```\n\n3. Run the Local Version\n```bash\nstreamlit run app-local.py\n```\n\n### Available Local Models\nThe following models are tested and supported in app-local.py:\n- llama2 (default, recommended)\n- codellama\n- mistral\n- neural-chat\n\n### Configuration\nYou can modify these settings in app-local.py:\n- Default model: Change `model=\"llama2\"` in the `ollama_completion` function\n- API endpoint: Default is `http://localhost:11434/api/chat`\n- Timeout settings: Default is 30 seconds\n\n## Configuration\n### Summary Detail Level\nAdjust the chunk size based on video length:\n- Short videos (\u003c30 mins): 4000\n- Long content (1hr+): 7000+\n\n### Cloud Models (app.py)\nThe app uses OpenRouter's API to access various LLM models:\n- meta-llama/llama-2-13b-chat (default)\n- anthropic/claude-2\n- openai/gpt-3.5-turbo\n\n## Contributing\nWe welcome contributions! Please feel free to submit a Pull Request.\n\n## License\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Credits\nCreated by Will at AI Afterdark\nBuilt using:\n- Streamlit for web interface\n- OpenRouter for cloud AI\n- Ollama for local AI\n- YouTube Transcript API for content extraction\n\n## Contact\n- Twitter: @AIAfterdark\n- GitHub: AI Afterdark\n\n---\nBuilt by AI Afterdark - Innovating with AI at Night\n\n# YouTube Video Summarizer\n\nAn AI-powered Streamlit app that generates summaries of YouTube videos and allows you to chat with the content. Available in two versions: Cloud (OpenRouter) and Local (Ollama).\n\n## Features\n\n- YouTube video transcript extraction\n- Intelligent text chunking and processing\n- AI-powered summarization\n- Interactive chat with video content\n- Multiple transcript retrieval methods\n- Cloud and Local deployment options\n\n## Versions\n\n### Cloud Version (app.py)\n- Uses OpenRouter API for AI inference\n- Requires OpenRouter API key\n- Better for deployment and sharing\n- Uses meta-llama/llama-3.2-3b-instruct:free model\n\n### Local Version (app-local.py)\n- Uses Ollama for local AI inference\n- No API key required\n- Better for privacy and offline use\n- Supports multiple Ollama models\n\n## Setup\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/youtube-summarizer-app.git\ncd youtube-summarizer-app\n```\n\n2. Install dependencies:\n```bash\npip install -r requirements.txt\n```\n\n3. Setup based on version:\n\n### For Cloud Version (app.py):\n1. Get an API key from [OpenRouter](https://openrouter.ai/)\n2. Create a `.env` file:\n```bash\nOPENROUTER_API_KEY=your_api_key_here\n```\n3. Run the app:\n```bash\nstreamlit run app.py\n```\n\n### For Local Version (app-local.py):\n1. Install Ollama from [ollama.ai](https://ollama.ai)\n2. Pull the Llama2 model:\n```bash\nollama pull llama2\n```\n3. Start Ollama:\n```bash\nollama serve\n```\n4. Run the app:\n```bash\nstreamlit run app-local.py\n```\n\n## Usage\n\n1. Enter a YouTube URL\n2. Adjust the Summary Detail Level slider (1000-10000)\n3. Click \"Generate Summary\"\n4. View the generated summary\n5. Use the chat to ask questions about the video content\n\n## Features in Detail\n\n### Transcript Retrieval\n- Primary: YouTube Transcript API\n- Fallback: yt-dlp\n- Supports both manual and auto-generated captions\n\n### Text Processing\n- Smart chunking based on sentence boundaries\n- Context-aware summarization\n- Clean transcript formatting\n\n### Chat Interface\n- Context-aware responses\n- Strictly based on generated summary\n- Clear indication when information isn't available\n\n## Requirements\n\n- Python 3.7+\n- Streamlit\n- youtube-transcript-api\n- yt-dlp\n- For Cloud Version: OpenRouter API key\n- For Local Version: Ollama\n\n## Contributing\n\nFeel free to open issues or submit pull requests with improvements.\n\n## License\n\nMIT License - feel free to use this project as you wish.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faiafterdark%2Fyoutube-summarizer-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faiafterdark%2Fyoutube-summarizer-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faiafterdark%2Fyoutube-summarizer-app/lists"}