YouTube Channel Sentiment Analysis Tool
Overview
This project allows the user to input a YouTube channel name and get a sentiment analysis
about the channel's recent comments. It uses YouTube's API to retrieve the top comments
from the last 10 videos on the specified channel.
Here's the code on GitHub.
Technologies used
- YouTube API: Integrated the YouTube API to retrieve channel information, video data, and comments from YouTube. This involved authenticating the API requests and handling the API responses.
- Streamlit: Utilized Streamlit, a web application framework, to create an interactive dashboard for the sentiment analysis tool. Developed user interface components, such as text inputs, buttons, and data visualizations, to enhance user experience.
- Flask: Implemented a backend API using Flask, a micro web framework, to handle data processing tasks. The API received requests from the frontend, processed the data using TextBlob for sentiment analysis, and returned the results to the frontend.Third Item
- Docker: Employed Docker for containerization, enabling easy deployment and scalability of the application. Created Docker images for the frontend, backend, and data processing components, allowing them to run independently and communicate with each other through defined interfaces.
- TextBlob: Utilized the TextBlob library, a powerful NLP tool in Python, for sentiment analysis of the extracted comments. Performed sentiment classification on the comments to determine their polarity (positive, negative, or neutral) and subjectivity.
The dashboard allows for the user to type a YouTube channel's name in the search bar and, if it exists, to get a sentiment chart, a word cloud and a data frame containing all the comments used in the analysis.
And then it generates a bar graph about the polarity of the comments. They can be neutral, positive or negative.
A word cloud with the words most frequently used in the comments.
And the original dataframe with all the comments and their respective polarity, subjectivity and classifications.