{"id":19745538,"url":"https://github.com/riyatorgal/ytbrief","last_synced_at":"2025-09-30T13:31:56.665Z","repository":{"id":260513002,"uuid":"880797881","full_name":"RiyaTorgal/YTBrief","owner":"RiyaTorgal","description":"AI YouTube Video Summarizer which returns Video stats and Bullet point Summary as Output","archived":false,"fork":false,"pushed_at":"2024-12-04T03:08:25.000Z","size":22631,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-15T05:59:21.523Z","etag":null,"topics":["ai","flask","flask-cors","gemini-api","npl","python-3","react","video-summarization","youtube-api-v3"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/RiyaTorgal.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":"2024-10-30T11:32:17.000Z","updated_at":"2024-12-04T03:08:28.000Z","dependencies_parsed_at":"2024-10-31T19:17:14.589Z","dependency_job_id":"8d21b19e-875a-4e32-8bcd-13151fb92ee7","html_url":"https://github.com/RiyaTorgal/YTBrief","commit_stats":null,"previous_names":["riyatorgal/ytbrief"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RiyaTorgal%2FYTBrief","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RiyaTorgal%2FYTBrief/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RiyaTorgal%2FYTBrief/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RiyaTorgal%2FYTBrief/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RiyaTorgal","download_url":"https://codeload.github.com/RiyaTorgal/YTBrief/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234744304,"owners_count":18879953,"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","flask","flask-cors","gemini-api","npl","python-3","react","video-summarization","youtube-api-v3"],"created_at":"2024-11-12T02:09:26.062Z","updated_at":"2025-09-30T13:31:56.659Z","avatar_url":"https://github.com/RiyaTorgal.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YTBrief: YouTube AI Video Summarizer\n\n![YTBrief Application](https://github.com/RiyaTorgal/YTBrief/blob/main/images/YTBrief%20New%20Layout.png)\n\nYTBrief is a simple web application that summarizes YouTube videos using the Gemini API. Users can paste a YouTube link, and the application retrieves the video’s transcript and generates a concise summary, making it easier to grasp the content without watching the entire video. It also provides the summary in the PDF format for offline reading and \"Read out Loud\" feature to listen to the contents of the summary.\n\n## Project Structure\n\nThe project is organized into two main parts:\n\n- **Frontend**: Contains the ReactJS UI, located in the `yt-brief` folder.\n- **Backend**: Contains the Flask server and Python scripts, located in the `ytBrief_Backend` folder.\n\n## Features\n\n- Enter a YouTube URL to summarize its content (transcript must be available).\n- Displays the video title, channel name, and thumbnail.\n- Displays the stats (Views, Likes, Comments, Duration, Published, Channel).\n- Utilizes the Gemini API for summarization.\n- Makes the summary available in PDF format for offline reading.\n- Reads out loud the summary which you pause/play and stop at anytime.\n\n## Requirements\n\n- Python 3.7 or higher\n- [ReactJS](https://react.dev) for creating an easy-to-use web app framework.\n- [Flask](https://flask.palletsprojects.com/en/stable/) for handleling API requests from the backend\n- [Gemini API](https://developers.google.com/generative-language/docs) for summarization capabilities.\n- [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/) for web scraping functionality.\n- [youtube-transcript-api](https://github.com/jdepoix/youtube-transcript-api) for retrieving video transcripts.\n- [python-dotenv](https://pypi.org/project/python-dotenv/) for managing environment variables and securely loading API keys from a `.env` file.\n- [google-api-python-client](https://github.com/googleapis/google-api-python-client) for enabling seamless integration with Google APIs.\n\n## Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/RiyaTorgal/YTBrief.git\n   ```\n2. Change the Directory\n\n   ```bash\n   cd YTBrief\n   ```\n\n3. Create a `.env` file in the root directory of the project and add your Gemini and YouTube Data API key\n\n    ```bash\n    GEMINI_API_KEY = \"Your_Gemini_api_Key\"\n    YOUTUBE_API_KEY = \"Your_YouTube_Data_API_Key\"\n    ```\n## Setup Instructions\n\n### Frontend (ReactJS)\n\n1. Navigate to the `yt-brief` folder:\n\n   ```bash\n   cd yt-brief\n   ```\n2. Install Dependencies:\n\n   ```bash\n   npm install\n   ```\n3. Start the React App:\n\n   ```bash\n   npm run start\n   ```\n\n### Backend (Flask)\n\n1. Navigate to the `ytBrief_Backend` folder:\n\n   ```bash\n   cd ytBrief_Backend\n   ```\n2. Install required Python packages:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n3. Start the Flask serve:\n\n   ```bash\n   python app.py\n   ```\n\n## Running the Application\n\n1. Start both the frontend and backend servers in separate terminals.\n   \n2. Open the frontend app by navgating to `http://localhost:3000` in your browser\n\n3. Enter a YouTube URL in the input field and click the \"Summarize\" button. The application will display the video title, channel name, thumbnail, and the generated summary.\n\n## Output\n![Output GIF](https://github.com/RiyaTorgal/YTBrief/blob/main/images/YTBrief%20New%20Layout%201.gif)\n\n## Contributions\nContributions are welcome! Please fork the repository and submit a pull request with your changes.\n\n## License\nThis project is licensed under the MIT license - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friyatorgal%2Fytbrief","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friyatorgal%2Fytbrief","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friyatorgal%2Fytbrief/lists"}