{"id":23746269,"url":"https://github.com/jmrashed/youtube-channel-analysis","last_synced_at":"2026-04-17T08:03:21.559Z","repository":{"id":267929511,"uuid":"902789873","full_name":"jmrashed/YouTube-Channel-Analysis","owner":"jmrashed","description":"This project aims to analyze the content of YouTube channels to gain insights into various aspects such as video engagement, trends, audience demographics, and content performance.","archived":false,"fork":false,"pushed_at":"2024-12-13T10:02:42.000Z","size":843,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-30T05:05:17.624Z","etag":null,"topics":["ai","analyze","audienceengagement","contentstrategy","python","trendsanalysis","videoperformance","youtube","youtubeanalytics","youtubegrowth"],"latest_commit_sha":null,"homepage":"","language":"Python","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/jmrashed.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-13T09:19:40.000Z","updated_at":"2025-03-06T01:35:18.000Z","dependencies_parsed_at":"2024-12-13T10:25:47.735Z","dependency_job_id":"d8d86d1d-b2df-4eca-a5f5-6458558feba2","html_url":"https://github.com/jmrashed/YouTube-Channel-Analysis","commit_stats":null,"previous_names":["jmrashed/youtube-channel-analysis","mrzstack/youtube-channel-analysis"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/jmrashed/YouTube-Channel-Analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrashed%2FYouTube-Channel-Analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrashed%2FYouTube-Channel-Analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrashed%2FYouTube-Channel-Analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrashed%2FYouTube-Channel-Analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmrashed","download_url":"https://codeload.github.com/jmrashed/YouTube-Channel-Analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmrashed%2FYouTube-Channel-Analysis/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266815226,"owners_count":23988563,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","analyze","audienceengagement","contentstrategy","python","trendsanalysis","videoperformance","youtube","youtubeanalytics","youtubegrowth"],"created_at":"2024-12-31T13:32:03.759Z","updated_at":"2026-04-17T08:03:21.507Z","avatar_url":"https://github.com/jmrashed.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YouTube Channel Content Analysis\n\nThis project aims to analyze the content of YouTube channels to gain insights into various aspects such as video engagement, trends, audience demographics, and content performance. The project will leverage Python and various libraries to interact with the YouTube API, scrape video data, and provide meaningful analytics for YouTube content creators or marketers.\n\n# YouTube Channel Analysis\n\n![Build Status](https://img.shields.io/github/workflow/status/jmrashed/YouTube-Channel-Analysis/CI?label=build)\n![License](https://img.shields.io/badge/License-MIT-blue.svg)\n![Latest Release](https://img.shields.io/github/v/release/jmrashed/YouTube-Channel-Analysis.svg)\n![Coverage Status](https://coveralls.io/repos/github/jmrashed/YouTube-Channel-Analysis/badge.svg)\n![Contributors](https://img.shields.io/github/contributors/jmrashed/YouTube-Channel-Analysis.svg)\n\nThis project analyzes YouTube channels to extract data about video performance, audience engagement, and growth metrics.\n\n## Features\n\n- Fetches channel and video metrics.\n- Provides insights into audience engagement and video performance.\n- Tracks YouTube channel growth over time.\n\n\n## Demo Screenshots\n\n\u003cimg src=\"Screenshot 2024-12-13 at 3.38.17 PM.png\"\u003e\n\n### Video Analytics Charts\n\n![Video Performance](video_performance.png)\n![Likes vs Views](likes_vs_views.png)\n![Comments](comments_chart.png)\n![Likes to Views Ratio](likes_to_views_ratio.png)\n\n\n## Features\n\n- **Video Metrics Analysis**: Extract key metrics such as views, likes, dislikes, comments, and more.\n- **Trend Analysis**: Identify trends in video titles, tags, and descriptions over time.\n- **Channel Growth Insights**: Track the growth of subscribers and video views across multiple periods.\n- **Audience Demographics**: Analyze the audience's location, gender, and interests (via available API data).\n- **Content Classification**: Classify videos into different genres based on keywords and metadata.\n\n## Technologies Used\n\n- **Python**: The core language for this project.\n- **Google API Client**: For interacting with the YouTube Data API.\n- **Pandas \u0026 Numpy**: For data manipulation and analysis.\n- **Matplotlib \u0026 Seaborn**: For visualizing the analytics.\n- **Requests**: For handling HTTP requests.\n- **BeautifulSoup (Optional)**: For scraping additional data if necessary.\n\n## Setup\n\n### Prerequisites\n\nTo run this project locally, you will need:\n\n- Python 3.x\n- A Google Cloud project with YouTube Data API v3 enabled.\n- An API key from Google Cloud.\n\n### Installation\n\n1. Clone this repository:\n   ```bash\n   git clone https://github.com/jmrashed/YouTube-Channel-Analysis.git\n   ```\n\n2. Navigate into the project directory:\n   ```bash\n   cd YouTube-Channel-Analysis\n   ```\n\n3. Install the required Python libraries:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. Set up the YouTube API credentials:\n   - Go to [Google Developers Console](https://console.developers.google.com/).\n   - Create a new project and enable the **YouTube Data API v3**.\n   - Create credentials for an **API key** and replace it in the `config.py` file.\n\n### API Configuration in `config.py`\n\nIn the `config.py` file, you'll need to define the following settings:\n\n- **API_KEY**: This is the key you obtain from the Google Developers Console when you enable the YouTube Data API v3. Replace `'YOUR_API_KEY'` in the `config.py` file with your actual API key.\n\n  ```python\n  API_KEY = 'YOUR_API_KEY'\n  ```\n\n- **MAX_RESULTS**: This parameter controls how many results (videos) are fetched from the YouTube API. You can set it to any integer value based on your needs, but the default maximum allowed by YouTube API is 50 per request.\n\n  ```python\n  MAX_RESULTS = 50\n  ```\n\n- **YOUTUBE_API_URL**: This is the base URL for the YouTube Data API. It should be defined as follows:\n\n  ```python\n  YOUTUBE_API_URL = 'https://www.googleapis.com/youtube/v3/'\n  ```\n\n### Example `config.py` File\n\nHere's an example of how your `config.py` should look after you replace the placeholders:\n\n```python\nAPI_KEY = 'AIzaSyAYourAPIKeyExample'  # Replace with your actual API key\nMAX_RESULTS = 50  # Adjust based on how many results you need\nYOUTUBE_API_URL = 'https://www.googleapis.com/youtube/v3/'\n```\n\n5. Run the analysis script:\n   ```bash\n   python analyze.py --channel_id UCbCmjCuTUZos6Inko4u57UQ\n   ```\n\n## Usage\n\n- After setting up the environment, you can start analyzing a YouTube channel by passing the channel ID or username to the script.\n- Example usage to analyze a channel by ID:\n  ```bash\n  python analyze.py --channel_id UCbCmjCuTUZos6Inko4u57UQ\n  ```\n\n- The script will output detailed metrics, such as:\n  - Total views and subscribers.\n  - Average video performance (likes, views, comments).\n  - Top trending tags or keywords.\n\n## Contributing\n\nIf you'd like to contribute to the project, feel free to fork the repository and create a pull request. Here's how you can contribute:\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature/your-feature-name`).\n3. Make your changes and commit them (`git commit -am 'Add new feature'`).\n4. Push to the branch (`git push origin feature/your-feature-name`).\n5. Open a pull request to merge your changes into the `main` branch.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgements\n\n- [YouTube Data API v3 Documentation](https://developers.google.com/youtube/v3)\n- [Pandas Documentation](https://pandas.pydata.org/pandas-docs/stable/)\n- [Matplotlib Documentation](https://matplotlib.org/)\n- [Seaborn Documentation](https://seaborn.pydata.org/) ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmrashed%2Fyoutube-channel-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmrashed%2Fyoutube-channel-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmrashed%2Fyoutube-channel-analysis/lists"}