{"id":13825326,"url":"https://github.com/jnsougata/aiotube","last_synced_at":"2025-04-04T14:05:52.681Z","repository":{"id":42633724,"uuid":"398728686","full_name":"jnsougata/aiotube","owner":"jnsougata","description":"An Alternative to YouTube Public Data API v3","archived":false,"fork":false,"pushed_at":"2024-10-26T03:55:57.000Z","size":1349,"stargazers_count":76,"open_issues_count":2,"forks_count":14,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T13:08:18.682Z","etag":null,"topics":["python","youtube","youtube-api","youtube-api-v3","youtube-data-api","youtube-search"],"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/jnsougata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"jnsougata"}},"created_at":"2021-08-22T06:16:02.000Z","updated_at":"2025-03-26T20:33:21.000Z","dependencies_parsed_at":"2024-05-28T18:21:03.032Z","dependency_job_id":"c78d9d30-e145-450a-9603-7a8e5097f884","html_url":"https://github.com/jnsougata/aiotube","commit_stats":{"total_commits":363,"total_committers":6,"mean_commits":60.5,"dds":0.4380165289256198,"last_synced_commit":"bdc72ee1be7df8d749f8bfe93b9eff291957db6a"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnsougata%2Faiotube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnsougata%2Faiotube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnsougata%2Faiotube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnsougata%2Faiotube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jnsougata","download_url":"https://codeload.github.com/jnsougata/aiotube/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190248,"owners_count":20898702,"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":["python","youtube","youtube-api","youtube-api-v3","youtube-data-api","youtube-search"],"created_at":"2024-08-04T09:01:18.549Z","updated_at":"2025-04-04T14:05:52.663Z","avatar_url":"https://github.com/jnsougata.png","language":"Python","funding_links":["https://github.com/sponsors/jnsougata"],"categories":["Python"],"sub_categories":[],"readme":"# aiotube\n\nA library to access YouTube Public Data without YouTubeAPI\n\n-   [Discord](https://discord.gg/Amx7z4EjuA)\n-   [GitHub](https://github.com/jnsougata/aiotube)\n# Table of Contents\n\n-   [Installation](#installing)\n-   [Building](#build-from-source)\n-   [Quick Start](#quick-start)\n-   [Usage](#usage)\n-   [Channel](#channel)\n-   [Video](#video)\n-   [Playlist](#playlist)\n\n## Installing\n\n**Python 3.6 or higher is required**\n\n``` sh\n# Linux/macOS\npython3 -m pip install -U aiotube\n```\n\n``` sh\n# Windows\npython -m pip install -U aiotube\n```\n\n## Build from source\n\n``` sh\npip install git+https://github.com/jnsougata/aiotube\n```\n\n## Quick Start\n\n``` py\nimport aiotube\n\n\nchannel = aiotube.Channel('@GYROOO')\nprint(channel.metadata)\n\n\nvideo = aiotube.Video('WVDT4lSozHk')\nprint(video.metadata)\n\n\nplaylist = aiotube.Playlist('PL-xXQjd8X_Q-xXQjd8X_Q-xXQjd8X_Q-')\nprint(playlist.metadata)\n\n\nsearch = aiotube.Search.video('YouTube Rewind 2018')\nprint(search.metadata)\n\n\nsearch = aiotube.Search.channel('PewDiePie')\nprint(search.metadata)\n\n\nsearch = aiotube.Search.playlist('Unlock Your Third Eye')\nprint(search.metadata)\n```\n\n## Usage\n\n### Channel\n\n| Property          | Return Type      | Description                                            |\n|-------------------|------------------|--------------------------------------------------------|\n| `live`            | `bool`           | Returns True if the channel is live                    |\n| `streaming_now`   | `str`            | Returns the video id of the ongoing livestream         |\n| `current_streams` | `List[str]`      | Returns a list of ids of ongoing livestreams           |\n| `old_streams`     | `List[str]`      | Returns a list of ids of old livestreams               |\n| `video_count`     | `int`            | Returns total number of videos uploaded by the channel |\n| `upcoming`        | `Video`          | Returns a video object of the upcoming video           |\n| `upcomings`       | `List[str]`      | Returns a list of ids of upcoming videos               |\n| `playlists`       | `List[str]`      | Returns a list of playlist ids                         |\n| `metadata`        | `Dict[str, Any]` | Returns the metadata of the channel in dict format     |\n| `last_uploaded`   | `Video`          | Most recently uploaded video of the channel            |\n| `last_streamed`   | `Video`          | Most recently completed livestream of the channel      |\n\n| Method                        | Return Types | Description                                        |\n|-------------------------------|--------------|----------------------------------------------------|\n| `uploads(limit: int \\| None)` | `List[str]`  | Returns a list of video ids of the uploaded videos |\n\n### Video\n\n| Properties | Return Types     | Description                                      |\n|------------|------------------|--------------------------------------------------|\n| `metadata` | `Dict[str, Any]` | Returns the metadata of the video in dict format |\n\n### Playlist\n\n| Properties | Return Types     | Description                                         |\n|------------|------------------|-----------------------------------------------------|\n| `metadata` | `Dict[str, Any]` | Returns the metadata of the playlist in dict format |\n\n### Search\n\n| Method                                     | Return Type | Description                                         |\n|--------------------------------------------|-------------|-----------------------------------------------------|\n| `channel(name: str)`                       | `Channel`   | Finds a channel with the given keywords             |\n| `video(name: str)`                         | `Video`     | Finds a video with the given keywords               |\n| `playlist(name: str)`                      | `Playlist`  | Finds a playlist with the given keywords            |\n| `channels(name: str, limit: int \\| None)`  | `List[str]` | Finds all channels that matches the given keywords  |\n| `videos(name: str,  limit: int \\| None)`   | `List[str]` | Finds all videos that matches the given keywords    |\n| `playlists(name: str, limit: int \\| None)` | `List[str]` | Finds all playlists that matches the given keywords |   \n\n### Possible Exceptions \n| Class             | Description                                                     |\n|-------------------|-----------------------------------------------------------------|\n| `InvalidURL`      | Raised when then url is not a valid YouTube endpoint            |\n| `TooManyRequests` | Raised when client IP receives soft ban from YouTube            |\n| `RequestError`    | Raised for any type of request error not handled by the library |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnsougata%2Faiotube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjnsougata%2Faiotube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnsougata%2Faiotube/lists"}