{"id":17815628,"url":"https://github.com/simatwa/ytube-api","last_synced_at":"2025-03-17T23:31:43.677Z","repository":{"id":259530761,"uuid":"878005178","full_name":"Simatwa/ytube-api","owner":"Simatwa","description":"Unofficial wrapper for y2mate.tube","archived":false,"fork":false,"pushed_at":"2024-10-25T16:47:56.000Z","size":54,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-27T08:16:08.932Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Simatwa.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":"2024-10-24T15:57:17.000Z","updated_at":"2024-10-27T04:25:07.000Z","dependencies_parsed_at":"2024-10-26T08:43:44.523Z","dependency_job_id":"9135737b-3dfb-401a-8489-2287c8167d48","html_url":"https://github.com/Simatwa/ytube-api","commit_stats":null,"previous_names":["simatwa/ytube"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fytube-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fytube-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fytube-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fytube-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Simatwa","download_url":"https://codeload.github.com/Simatwa/ytube-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221703342,"owners_count":16866525,"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-27T16:17:19.213Z","updated_at":"2025-03-17T23:31:43.669Z","avatar_url":"https://github.com/Simatwa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eytube-api\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"#\"\u003e\u003cimg alt=\"Python version\" src=\"https://img.shields.io/pypi/pyversions/ytube-api\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Simatwa/ytube-api/actions/workflows/python-test.yml\"\u003e\u003cimg src=\"https://github.com/Simatwa/ytube-api/actions/workflows/python-test.yml/badge.svg\" alt=\"Python Test\"/\u003e\u003c/a\u003e\n\u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/static/v1?logo=MIT\u0026color=Blue\u0026message=MIT\u0026label=License\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.org/project/ytube-api\"\u003e\u003cimg alt=\"PyPi\" src=\"https://img.shields.io/pypi/v/ytube-api\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Simatwa/ytube-api/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/Simatwa/ytube-api?label=Release\u0026logo=github\" alt=\"Latest release\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Simatwa/ytube-api/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release-date/Simatwa/ytube-api?label=Release date\u0026logo=github\" alt=\"release date\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/psf/black\"\u003e\u003cimg alt=\"Black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Simatwa/ytube-api/actions/workflows/python-publish.yml\"\u003e\u003cimg src=\"https://github.com/Simatwa/ytube-api/actions/workflows/python-publish.yml/badge.svg\" alt=\"Python-publish\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://pepy.tech/project/ytube-api\"\u003e\u003cimg src=\"https://static.pepy.tech/personalized-badge/ytube-api?period=total\u0026units=international_system\u0026left_color=grey\u0026right_color=blue\u0026left_text=Downloads\" alt=\"Downloads\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Simatwa/ytube-api/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/Simatwa/ytube-api/total?label=Asset%20Downloads\u0026color=success\" alt=\"Downloads\"\u003e\u003c/img\u003e\u003c/a\u003e\n\u003ca href=\"https://hits.seeyoufarm.com\"\u003e\u003cimg src=\"https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com/Simatwa/ytube-api\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Download YouTube videos in `mp4` or `mp3` formats.\n\n```python\nfrom ytube_api import Auto\nAuto(\n  query = \"Alan Walker - Alone\"\n)\n# Alan Walker - Alone - Alan Walker (720p, h264, youtube).mp4\n# \u003e Downloaded 15.68 MB ############ ~ Elapsed (00:00:32) [■■■█■]\n# ## Saved to : /home/smartwa/y2mate/Alan Walker - Alone - Alan Walker (720p, h264, youtube).mp4\n```\n\n```python\nfrom ytube_api import Auto\nAuto(\n  query = \"Alan Walker - Alone\",\n  format = \"mp3\"\n)\n# Alan Walker - Alone - Alan Walker (youtube).mp3\n# \u003e Downloaded 2.61 MB ############ ~ Elapsed (00:00:06) [■█■■■]\n# ## Saved to : /home/smartwa/y2mate/Alan Walker - Alone - Alan Walker (youtube).mp3\n```\n\n# Pre-requisite\n\n- [x] [Python\u003e=3.9](https://python.org) (optional)\n\n# Installation\n\nEither of the following ways will get you ready.\n\n1. From pypi:\n\n   ```sh\n   $ pip install -U \"ytube-api[cli]\"\n   ```\n\n2. From source:\n\n   ```sh\n   $ pip install git+http://github.com/Simatwa/ytube-api.git\n   ```\n\nAlternatively, you can download standalone executable for your system from [here](https://github.com/Simatwa/ytube-api/releases/latest).\n\n## Usage\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\u003ch2\u003e1. Developers\u003c/h2\u003e\n\u003c/summary\u003e\n\n### Search videos\n\n#### By Title\n\n   ```python\n   from ytube_api import Ytube\n   yt = Ytube()\n   videos = yt.search_videos(\n      \"Alan Walker songs\"\n   )\n   print(videos)\n   \"\"\"\n   SearchResults(query='Alan Walker songs', items=[SearchResultsItem(title='Alan Walker, Putri Ariani, Peder Elias - Who I Am (Official Music Video)', id='ccu6JuC21rk', size='2.91 MB', duration='3:32', channelTitle='Alan Walker', source='yt'), SearchResultsItem(title='Alan Walker - Faded', id='60ItHLz5WEA', size='2.93 MB', duration='3:33', channelTitle='Alan Walker', source='yt')], from_link=False)\n   \"\"\"\n   ```\n\n#### By Video URL\n\n   ```python\n   from ytube_api import Ytube\n   yt = Ytube()\n   videos = yt.search_videos(\n      \"https://youtu.be/oociIYNVdVQ?si=v1Ic_mcBq2bb_j8J\"\n   )\n   print(videos)\n   \"\"\"\n   SearchResults(query='https://youtu.be/oociIYNVdVQ?si=v1Ic_mcBq2bb_j8J', items=[SearchResultsItem(title=None, id='oociIYNVdVQ', size=None, duration=None, channelTitle=None, source=None)], from_link=True)\n   \"\"\"\n   ```\n\n### Get Download Link\n\n#### Video\n\n   ```python\n   from ytube_api import Ytube\n   yt = Ytube()\n   search_results = yt.search_videos(\n      \"Alan Walker songs\"\n   )\n   target_video = search_results.items[0]\n   download_link = yt.get_download_link(\n      target_video,\n      format=\"mp4\",\n      quality=\"1080\"\n      )\n   print(\n      download_link\n   )\n   \"\"\"\n   DownloadLink(status='tunnel', url='https://vgbh.nmnm.store/tunnel?id=svqwnZ5CJOJJZi12yXq0b\u0026exp=1729856312453\u0026sig=kcY69-AGCv--0t5cY0RZ93lyyI_rDDe88iGQo_fpJTc\u0026sec=rrJnEyYU9sETaZG8kEbobbhGGfae7rU0SQNCkBidT90\u0026iv=t9YVnta7aLw0qEh5GJW8Lg', filename='Alan Walker, Putri Ariani, Peder Elias - Who I Am (Official Music Video) - Alan Walker (1080p, h264, youtube).mp4')\n   \"\"\"\n   ```\n\n#### Audio\n\n   ```python\n   from ytube_api import Ytube\n   yt = Ytube()\n   search_results = yt.search_videos(\n      \"Alan Walker songs\"\n   )\n   target_video = search_results.items[0]\n   download_link = yt.get_download_link(\n      target_video,\n      format=\"mp3\",\n      quality=\"320\"\n      )\n   print(\n      download_link\n   )\n   \"\"\"\n   DownloadLink(status='tunnel', url='https://xdcf.nmnm.store/tunnel?id=5K8ZukESJDx0ov3liUj_N\u0026exp=1729856389952\u0026sig=D9ejkqecxpkBsxcXmBtIrYXo1BMIFyawLoBC1_X3J3Q\u0026sec=L5EpDuWoxXk6dK2pLqK9jYyqNF0X06_YKtb9gLB6SVs\u0026iv=YGnrLa_v5qh9uVQSe1x_Og', filename='Alan Walker, Putri Ariani, Peder Elias - Who I Am (Official Music Video) - Alan Walker (youtube).mp3')\n   \"\"\"\n   ```\n\n### Download\n\n   ```python\n   from ytube_api import Ytube\n   yt = Ytube()\n   search_results = yt.search_videos(\n      \"Alan Walker songs\"\n   )\n   target_video = search_results.items[0]\n   download_link = yt.get_download_link(\n      target_video,\n      format=\"mp3\",\n      quality=\"320\"\n      )\n   saved_to = yt.download(\n      download_link,\n      progress_bar=True,\n      quiet=False\n   )\n   print(saved_to)\n   \"\"\"\n   /home/smartwa/git/smartwa/ytube-api/Alan Walker, Putri Ariani, Peder Elias - Who I Am (Official Music Video) - Alan Walker (youtube).mp3\n   \"\"\"\n   ```\n\n### Query suggestions\n\n```python\nfrom ytube_api import Ytube\nyt = Ytube()\n\nsuggestions = yt.suggest_queries(\n    'Hello wor'\n)\n\nprint(\n    suggestions\n)\n\n\"\"\"\n['hello world', 'hello world song', 'hello world bump of chicken', 'hello world gwen stefani', 'hello worker', 'hello world louie zong', 'hello world in assembly language', 'hello world in different languages', 'hello world trailer', 'hello world english cover', 'hello world belle perez', 'hello world anime', 'hello world kekkai sensen', 'hello world lost game']\n\"\"\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n   \u003ch2\u003e2. CLI\u003c/h2\u003e\n  \u003c/summary\u003e\n\n`$ python -m ytube_api --help`\n\n```\nUsage: ytube [OPTIONS] COMMAND [ARGS]...\n\n  Download YouTube videos in mp4 and mp3 formats\n\nOptions:\n  --version  Show the version and exit.\n  --help     Show this message and exit.\n\nCommands:\n  download     Search and download video in mp4 or mp3 formats\n  interactive  Search and download videos/audio interactively\n  suggest      Suggest videos based on your query\n\n```\n\n\u003e [!NOTE]\n\u003e Shorthand for `python -m pytube_api` is `pytube`.\n\n### Download\n\n   ```sh\n   $ ytube download \u003cQUERY\u003e\n   # e.g ytube download \"Alan walker songs\"\n   ```\n   \n   _$ ytube download --help_\n   \n   ```\n   Usage: ytube download [OPTIONS] QUERY\n\n  Search and download video in mp4 or mp3 formats\n\nOptions:\n  -q, --quality [128|320|144|240|360|480|720|1080|128|720]\n                                  Media download quality - 128|720\n  --mp4 / --mp3                   Download audio (mp3) or video (mp4) -\n                                  mp4\n  --enable-progressbar / --disable-progressbar\n                                  Show or hide progressbar\n  -l, --limit INTEGER             Total number of items to be downloaded\n                                  that matched the search - 1\n  -t, --timeout INTEGER           Http request timeout - 20\n  -c, --channels Name             Download videos posted by this channel\n                                  titles - None.\n  -d, --dir DIRECTORY             Directory for saving the contents to -\n                                  pwd.\n  -o, --output TEXT               Filename to save the contents under -\n                                  None\n  -b, --busy-bar INTEGER RANGE    Busy bar index - ['', '/','■█■■■',\n                                  '⡿'] - 2  [0\u003c=x\u003c=3]\n  --quiet                         Do not stdout informative messages\n  --resume                        Resume incomplete download\n  --confirm                       Ask user for permission to download a\n                                  video/audio\n  --help                          Show this message and exit.\n\n   ```\n\n## Interactive\n\n- Features live search 🔴 etc.\n\n```\nWelcome to interactive ytube. Type 'help' or 'h' for usage info.\nSubmit any bug at https://github.com/Simatwa/ytube/issues/new\n╭─[Smartwa@YTUBE]~[🕒18:07:27-💻00:00:00-⚡0.0s] \n╰─\u003eAlan Walker\n               alan walker                 \n               alan walker faded           \n               alan walker on my way live  \n               alan walker sad sometimes   \n               alan walker spectre         \n               alan walker alone           \n               alan walker mix             \n\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ccode\u003eytube interactive --help\u003c/code\u003e\u003c/summary\u003e\n\n```\nUsage: ytube interactive [OPTIONS] [QUERY]\n\n  Search and download videos/audio interactively\n\nOptions:\n  -q, --quality [128|320|144|240|360|480|720|1080|128|720|128|720]\n                                  Media download quality - 128|720\n  --mp4 / --mp3                   Download audio (mp3) or video (mp4) -\n                                  mp4\n  -s, --suggestions-limit INTEGER\n                                  Query suggestions limit - 10\n  -l, --limit INTEGER             Total number of items to be downloaded\n                                  that matched the search - 1\n  -t, --timeout INTEGER           Http request timeout - 20\n  -b, --busy-bar INTEGER RANGE    Busy bar index - ['', '/','■█■■■',\n                                  '⡿'] - 2  [0\u003c=x\u003c=3]\n  -d, --dir DIRECTORY             Directory for saving the contents to -\n                                  pwd.\n  --disable-coloring              Stdout interactive texts in white font\n                                  color\n  --select                        Prompt user download format and\n                                  quality every time.\n  --confirm                       Ask user for permission to download a\n                                  video/audio\n  --play                          Play the video/audio after completing\n                                  download process\n  --help                          Show this message and exit.\n```\n\n\u003c/details\u003e\n\n\u003e [!NOTE]\n\u003e **Interactive** is the default option incase no command/argument is supplied.\n\u003e `$ ytube` is enough to kickoff.\n\n\u003c/details\u003e\n\n# Disclaimer\n\nThis software is not affiliated with or endorsed by y2mate.tube or its parent company. By using this tool, you assume all risks associated with using this unofficial tool.It is your responsibility to ensure compliance with all relevant laws and regulations when using this tool. This software is provided \"as-is\" without warranty of any kind, express or implied.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimatwa%2Fytube-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimatwa%2Fytube-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimatwa%2Fytube-api/lists"}