{"id":23167392,"url":"https://github.com/tejaswinit167/ytcommentsnavigator","last_synced_at":"2026-04-12T00:02:26.827Z","repository":{"id":251254423,"uuid":"836842240","full_name":"TejaswiniT167/YTCommentsNavigator","owner":"TejaswiniT167","description":"YTCommentsNavigator is a web app for fetching, displaying, and getting customized YouTube comments. It allows users to search and filter comments by likes and sentiment (positive or negative). Made for fellow kindred spirits who spend more time in the comment section than the actual video! 😄","archived":false,"fork":false,"pushed_at":"2024-12-13T04:21:12.000Z","size":7939,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T06:43:53.395Z","etag":null,"topics":["dockerfile","expressjs","full-stack-web-development","mongodb-atlas","nodejs","python3","reactjs","youtube-api"],"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/TejaswiniT167.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-08-01T17:09:10.000Z","updated_at":"2024-12-13T04:21:16.000Z","dependencies_parsed_at":"2024-08-24T19:10:59.545Z","dependency_job_id":null,"html_url":"https://github.com/TejaswiniT167/YTCommentsNavigator","commit_stats":null,"previous_names":["tejaswinit167/ytcommentsnavigator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TejaswiniT167%2FYTCommentsNavigator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TejaswiniT167%2FYTCommentsNavigator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TejaswiniT167%2FYTCommentsNavigator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TejaswiniT167%2FYTCommentsNavigator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TejaswiniT167","download_url":"https://codeload.github.com/TejaswiniT167/YTCommentsNavigator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247256108,"owners_count":20909240,"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":["dockerfile","expressjs","full-stack-web-development","mongodb-atlas","nodejs","python3","reactjs","youtube-api"],"created_at":"2024-12-18T02:28:08.043Z","updated_at":"2026-04-12T00:02:26.699Z","avatar_url":"https://github.com/TejaswiniT167.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YouTube-Comments-Navigator\n\nYTCommentsNavigator is a web application that enables users to perform customized navigation of YouTube comments. Built with the MERN stack, Python, and the YouTube Data API, this tool allows users to search within the comments, filter comments by likes, and analyze sentiment/general reaction i.e, positive or negative. It provides enhanced comment navigation tailored to user needs :)\n\n## Features and Benefits\n\n### Enhanced Comment Navigation\n\n- **Comprehensive Comment Browsing**: Search and filter through YouTube comments with ease, helping users to quickly find relevant comments without endless scrolling.\n- **Streamlined Search and Filter**: Efficiently find comments based on keywords and likes, allowing for better navigation through large volumes of comments.\n\n### Sentiment Analysis\n\n- **Positive and Negative Filtering**: Analyze and filter comments by sentiment (positive or negative) using a simple rule-based model with TextBlob. Users can replace this with their own preferred approaches or self trained NLP models in `sentiment_analysis.py` for better specific results.\n- **Instant Feedback**: Influencers and businesses can quickly gather feedback and insights, helping them to understand audience sentiment and make informed decisions.\n\n### User-Centric Features\n\n- **Customized Search**: Tailor searches to find the most liked comments swiftly, providing a more focused and efficient browsing experience.\n- **Robust Comment Management**: Enhance user interaction by providing a platform to navigate through comments based on specific needs and preferences.\n- **Research and Analysis**: Useful for researchers and hobbyists analyzing public sentiment and engagement on various topics, if made a legit option on the platform.\n- **Educational Use**: Beneficial for learners in general, seeking doubt clarification and topic discussions within the comment section, providing for an optimized learning experience.\n\n## Technologies Used\n\n- **Frontend**: React.js, HTML, CSS\n- **Backend**: Node.js, Express.js\n- **Database**: MongoDB(Atlas)\n- **Scripting**: Python\n- **APIs**: YouTube Data API\n\n## Getting Started\n\n### Prerequisites\n\nEnsure you have the following installed on your system:\n\n- Node.js\n- npm or yarn\n- Python\n  Ensure you get your credentials for the below mentioned, required for this webapp working:\n- MongoDB Atlas Connection string,\n  In case you are using mongodb locally installed on your system, you can make slight code adjustments accordingly for database connection.\n- YouTube API Key\n\n### Installation\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https://github.com/TejaswiniT167/YTCommentsNavigator.git\n   cd YTCommentsNavigator\n   ```\n\n2. **Setup Environment Variables:**\n\n   Create a `.env` file at the root of the project by copying the example:\n\n   ```bash\n   cp .env.example .env\n   ```\n\n   Fill in your MongoDB URI and YouTube API key in the `.env` file.\n\n   ```plaintext\n   # .env\n\n   MONGO_URI=your_mongo_uri\n   API_KEY=your_youtube_api_key\n   ```\n\n3. **Install Dependencies:**\n   Excecute the below commands in respective directories:\n\n   - **Frontend:**\n\n     ```bash\n     cd frontend\n     npm install\n     npm run build\n     ```\n\n   - **Backend:**\n\n     ```bash\n     cd backend\n     npm install\n     ```\n\n   - **Python:**\n     ```bash\n     cd python\n     python -m venv com\n     source com/bin/activate # On Windows use `com\\Scripts\\activate`\n     pip install -r requirements.txt\n     ```\n\n### Running the Application\n\n1. **Start the Backend (which serves the React app):**\n\n   ```bash\n   cd backend\n   npm start\n   ```\n\n## Accessing the Web App\n\nAfter successfully building the React app and starting the backend server, the web app can be accessed at `http://localhost:5000`. The backend server serves the React app we built using `npm run build` and utilizes Python scripts as child processes to fetch and process YouTube comments with YouTube API.\n\nThe backend directs to various routes to achieve different functionalities:\n\n- **Fetching Comments**: `/api/fetch_comments` route is used to fetch comments from a specified YouTube video and store them in MongoDB.\n- **Searching Comments**: `/api/search` route allows users to search from the comments stored in MongoDb by above action, based on keywords.\n- **Sorting/Filtering by Likes**: `/api/byLikes` route sorts the comments by the number of likes, when the 'Filte by' likes option is selected.\n- **Filtering by Sentiment**: `/api/bySentiment` route filters comments based on sentiment (positive or negative) providing relavent comments based on the selected 'Filter by' option on the website i.e positive/negative.\n\nThese routes work together for providing users with customized search capabilities and insights.\n\n## Dockerization\n\nDockerization allows you to run the entire application with minimal setup. Instead of following the above commands, you can use Docker to containerize the application and ensure it runs consistently across different environments, allowing for simplifying deployment and managing dependencies.\n\n**Prerequisites :** Docker Desktop\n\n### Steps to dockerize\n\n1. **Clone the repository and set up environment variables:**\n\n   Follow the first two steps from the [Getting Started](#getting-started) section to clone the repository and set up your `.env` file with the necessary your credentials.\n\n2. **Build your Docker container and run the app:**\n\n   ```bash\n   docker build -t ytcommentsnavigator .\n   docker run -p 5000:5000 --env-file .env ytcommentsnavigator\n   ```\n\n   This command will build the Docker image for the application and then start the container.\n\nThis will build the Docker images for the frontend, backend, and Python scripts, and then start the containers.\nOnce the containers are up and running, the web app can be accessed at `http://localhost:5000`.\n\n#### Note: if you are running the application locally without Docker, you can safely delete the Docker-related `Dockerfile` from the repository.\n\nIn this project, docker-compose.yml might not be necessary since a single container handles the frontend, backend, and Python child process calls. However, if each service becomes more complex or you add additional features or separate services like a local database, Docker Compose will be beneficial for managing and orchestrating multiple containers efficiently.\n\n## Contributing\n\nI started this project because I often found myself endlessly scrolling through YouTube comments, looking for the most liked ones and discussions about topics of my concern. I believe with functionalities like these, it provides for a better user experience, saving time and enabling efficient navigation.\n\nIf you feel the same way and have ideas for new features or improvements to existing ones, you can start with this project and build additional features upon it to enhance its functionality further. Your contributions are always welcome, and a mention of my initial work is highly appreciated :)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftejaswinit167%2Fytcommentsnavigator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftejaswinit167%2Fytcommentsnavigator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftejaswinit167%2Fytcommentsnavigator/lists"}