{"id":16968055,"url":"https://github.com/thespeedx/youtube-api","last_synced_at":"2025-06-24T14:33:31.757Z","repository":{"id":41189298,"uuid":"508568227","full_name":"TheSpeedX/Youtube-API","owner":"TheSpeedX","description":null,"archived":false,"fork":false,"pushed_at":"2022-09-29T04:05:16.000Z","size":2926,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T23:51:57.907Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheSpeedX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-29T06:10:56.000Z","updated_at":"2024-08-12T20:24:35.000Z","dependencies_parsed_at":"2023-01-18T10:45:25.745Z","dependency_job_id":null,"html_url":"https://github.com/TheSpeedX/Youtube-API","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TheSpeedX/Youtube-API","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSpeedX%2FYoutube-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSpeedX%2FYoutube-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSpeedX%2FYoutube-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSpeedX%2FYoutube-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheSpeedX","download_url":"https://codeload.github.com/TheSpeedX/Youtube-API/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSpeedX%2FYoutube-API/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261694361,"owners_count":23195564,"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":[],"created_at":"2024-10-14T00:10:36.662Z","updated_at":"2025-06-24T14:33:31.709Z","avatar_url":"https://github.com/TheSpeedX.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Youtube-API\n\n## About\n\nThis is a Backend Server in FastAPI (Python) that asynchronously scraps latest youtube videos.\n\nThe latest scrapped videos include information like -\n\n- Video Id\n- Video title\n- Video Description\n- Channel title\n- Publish Time\n- Thumbnail URL\n\nThese information are stored in the MongoDB Atlas URL configurable via .env file\n\nYou can use multiple API Keys to hit API to prevent Quota Usage. Add multiple key in .env separated by space.\n\nAPI Key can be created in Google Console after Activating Youtube Data V3 API\n\n### Features\n\n- [x] Scraps youtube videos with keyword \"official\" which can be updated in .env\n- [x] Scrap interval is 60 seconds configurable in .env\n- [x] Scraps in background asynchronously\n- [x] Single/Multiple API Key Supported\n- [x] Fuzzy Text Search\n- [x] Pagination supported\n\n### How To Run\n\n#### NOTE: First Update `MONGODB_URL`, `MONGODB_NAME` and `API_KEYS` in `.example.env` and rename it to `.env`\n\nWith Docker:  \nMake sure docker and docker-compose is installed\n\n```bash\ngit clone https://github.com/TheSpeedX/Youtube-API\ncd Youtube-API\ndocker-compose up\n```\n\nWithout Docker:  \nMake sure Python and PIP is installed\n\n```bash\ngit clone https://github.com/TheSpeedX/Youtube-API\ncd Youtube-API\npip install -r requirements.txt\ncd app\nuvicorn main:app --host 0.0.0.0 --port 8000\n```\n\nNow open \u003chttp://127.0.0.1:8000/dashboard\u003e for dashboard \u003chttp://127.0.0.1:8000/docs\u003e for docs\n\n### Screenshots\n\nDashboard\n![Dashboard](images/1.bmp)\n\nSearch Response\n![Dashboard](images/2.bmp)\n\nAPI Response\n![Dashboard](images/1.bmp)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthespeedx%2Fyoutube-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthespeedx%2Fyoutube-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthespeedx%2Fyoutube-api/lists"}