{"id":24201270,"url":"https://github.com/gpsyrou/tube-virality","last_synced_at":"2025-09-22T00:31:34.351Z","repository":{"id":119812904,"uuid":"582960951","full_name":"gpsyrou/tube-virality","owner":"gpsyrou","description":"Develop an API to retrieve statistics and information around Youtube trending videos. Perform descriptive statistics analysis, and build models able to project the likelihood of a trending video to become viral.","archived":false,"fork":false,"pushed_at":"2025-01-12T11:58:53.000Z","size":12420,"stargazers_count":10,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-12T12:33:06.016Z","etag":null,"topics":["api","golang","nlp","python","web-scraping","youtube"],"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/gpsyrou.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":"2022-12-28T11:00:12.000Z","updated_at":"2025-01-12T11:57:40.000Z","dependencies_parsed_at":"2024-04-13T12:32:53.598Z","dependency_job_id":"a0889034-6810-4824-9003-b0bf6ee0cb08","html_url":"https://github.com/gpsyrou/tube-virality","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpsyrou%2Ftube-virality","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpsyrou%2Ftube-virality/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpsyrou%2Ftube-virality/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpsyrou%2Ftube-virality/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gpsyrou","download_url":"https://codeload.github.com/gpsyrou/tube-virality/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233808777,"owners_count":18733601,"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":["api","golang","nlp","python","web-scraping","youtube"],"created_at":"2025-01-13T21:15:06.014Z","updated_at":"2025-09-22T00:31:24.319Z","avatar_url":"https://github.com/gpsyrou.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tube Virality Project\n![Python](https://img.shields.io/badge/-Python-000?\u0026logo=Python)\n![Go](https://img.shields.io/badge/-Golang-000?\u0026logo=go)\n\n## YouTube Trending Video Analytics API\n\n**Purpose:** The **Tube Virality** project aims to develop a comprehensive API that retrieves metadata, including view counts, likes, and descriptions, from YouTube videos and channels. Unlike relying on existing APIs, we're creating this retrieval API from the ground up. This approach grants us full control over all levels of abstraction, ensuring our API's efficiency and flexibility.\n\nWe will not only gather data but also utilize the API to collect information about a curated selection of trending YouTube videos over time. Once a substantial dataset is collected, we'll proceed to the next phase: analyzing the collected data to uncover insights and answer critical questions:\n\n- What factors contribute to a YouTube video going viral?\n- Can we construct a model capable of predicting when a new video has the potential to go viral?\n\n## About the Project\n\nThe **Tube Virality** project is dedicated to constructing an API tailored to fetch statistics and details related to trending YouTube videos. Moreover, we're committed to conducting descriptive statistical analyses and crafting predictive models that gauge the likelihood of a trending video attaining viral status.\n\n### Refining Ideas for YouTube Virality Project\n\n#### Defining Virality with Custom Logic\n\nDetermining the factors that contribute to a video's virality will necessitate a tailored approach. For instance, a video from a renowned YouTuber might garner 20 million views despite having only 1 million subscribers. Conversely, a video from a YouTuber with 10,000 subscribers could amass 2 million views, representing a more substantial and intriguing impact. Crafting a \"success-story\" criterion will require the establishment of guidelines to define virality thresholds.\n\n#### Data Gathering as the First Step\n\nThe path to accomplishing the aforementioned objectives commences with data collection. We will initiate by collating daily trending videos in the UK, coupled with their respective trending positions for each date. This methodological selection will enable us to assemble a representative assortment of captivating YouTube videos. Subsequently, guided by the principles outlined in the custom virality logic, we will categorize the dataset into two distinct segments: \"success\" and \"non-success\" stories, leading to a form of supervised labeling.\n\n\n## Technologies Utilized\n\nWe've harnessed a blend of cutting-edge technologies to power the **Tube Virality** project:\n\n- **Python 3.9:** This versatile programming language is at the core of our project, facilitating data manipulation, analysis, and model development.\n- **SQL:** We're leveraging SQL databases to efficiently store and manage the collected data, ensuring scalability and structured data retrieval.\n- **Go:** With the power of Go, we're enhancing our API's performance and concurrent processing capabilities, resulting in a robust and responsive user experience.\n\n## Installation\n\nWIP\n\n## Usage\n\nWIP\n\n* temporary pull trending `make runPullTrending`\n* temporary run `make run2video`\n\n## Contributors\n\n- [Georgios Spyrou](https://github.com/gpsyrou)\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n\n### Proposed High-Level Architecture\n\n```mermaid\ngraph TD;\n\nsubgraph YouTube Data Collection\n    A1[Collect Trending Videos for a Specific Day] --\u003e A2[Generate List of Trending Video URLs]\n    A2 --\u003e B{Video Metadata Collector}\n    B --\u003e C[Video Metadata: Views, Likes, Description, Comments]\n    B --\u003e D{Channel Metadata Collector}\n    D --\u003e E[Channel Metadata: User, Subscribers]\nend\n\nsubgraph Data Storage\n    F[SQL Database]\n    C --\u003e F\n    E --\u003e F\nend\n\nsubgraph Data Analytics \u0026 Machine Learning\n    G[Data Analysis \u0026 Visualization]\n    H[Custom Logic for Virality]\n    I[Supervised Learning Models]\n    G --\u003e H\n    G --\u003e I\n    F --\u003e H\n    F --\u003e I\n    H --\u003e J[Virality Prediction]\nend\n\n```\n\n### Entity-Relatioship Diagram for Data Storage Module\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/assets/img/ERD_youtube.png\" width=\"720\" title=\"hover text\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpsyrou%2Ftube-virality","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgpsyrou%2Ftube-virality","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpsyrou%2Ftube-virality/lists"}