{"id":26661521,"url":"https://github.com/simatwa/yt-dlp-bonus","last_synced_at":"2025-10-04T07:43:28.253Z","repository":{"id":268622222,"uuid":"904844121","full_name":"Simatwa/yt-dlp-bonus","owner":"Simatwa","description":"An extension of yt-dlp targeting YoutubeDL with pydantic support.","archived":false,"fork":false,"pushed_at":"2025-08-03T19:13:13.000Z","size":934,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-04T10:45:01.319Z","etag":null,"topics":["yt-dlp","yt-dlp-bonus","yt-dlp-plugin","yt-dlp-wrapper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","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,"zenodo":null}},"created_at":"2024-12-17T16:53:53.000Z","updated_at":"2025-08-06T09:56:05.000Z","dependencies_parsed_at":"2025-01-13T14:34:02.026Z","dependency_job_id":"eb823708-2942-457a-bd5e-bf0980fb0f03","html_url":"https://github.com/Simatwa/yt-dlp-bonus","commit_stats":null,"previous_names":["simatwa/yt-dlp-bonus"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/Simatwa/yt-dlp-bonus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fyt-dlp-bonus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fyt-dlp-bonus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fyt-dlp-bonus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fyt-dlp-bonus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Simatwa","download_url":"https://codeload.github.com/Simatwa/yt-dlp-bonus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Simatwa%2Fyt-dlp-bonus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278283492,"owners_count":25961310,"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-10-04T02:00:05.491Z","response_time":63,"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":["yt-dlp","yt-dlp-bonus","yt-dlp-plugin","yt-dlp-wrapper"],"created_at":"2025-03-25T13:18:50.460Z","updated_at":"2025-10-04T07:43:28.247Z","avatar_url":"https://github.com/Simatwa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eyt-dlp-bonus\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"#\"\u003e\u003cimg alt=\"Python version\" src=\"https://img.shields.io/pypi/pyversions/yt-dlp-bonus\"/\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/yt-dlp-bonus\"\u003e\u003cimg alt=\"PyPi\" src=\"https://img.shields.io/pypi/v/yt-dlp-bonus\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Simatwa/yt-dlp-bonus/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/Simatwa/yt-dlp-bonus?label=Release\u0026logo=github\" alt=\"Latest release\"\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://pepy.tech/project/yt-dlp-bonus\"\u003e\u003cimg src=\"https://static.pepy.tech/personalized-badge/yt-dlp-bonus?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/yt-dlp-bonus\"\u003e\u003cimg src=\"https://hits.sh/github.com/Simatwa/yt-dlp-bonus.svg?label=Total%20hits\u0026logo=dotenv\" alt=\"Total hits\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThis library does a simple yet the Lord's work; extends [yt-dlp](https://github.com/yt-dlp/yt-dlp) *(YoutubeDL)* and adds modelling support to the extracted YoutubeDL results using [pydantic](https://github.com/pydantic/pydantic).\n\n## Installation\n\n```sh\npip install yt-dlp-bonus -U\n```\n\n## Usage\n\n\u003cdetails open\u003e\n\n\u003csummary\u003e\n\n### Search videos\n\n\u003c/summary\u003e\n\n```python\nfrom yt_dlp_bonus import YoutubeDLBonus\n\nyt = YoutubeDLBonus()\n\nsearch_results = yt.search_and_form_model(\n    query=\"hello\",\n    limit=1\n    )\n\nprint(search_results)\n\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\n### Download Video\n\n\u003c/summary\u003e\n\n```python\nfrom yt_dlp_bonus import YoutubeDLBonus, Downloader\n\nvideo_url = \"https://youtu.be/S3wsCRJVUyg\"\n\nyt_bonus = YoutubeDLBonus()\n\nextracted_info = yt_bonus.extract_info_and_form_model(url=video_url)\n\ndownloader = Downloader(yt=yt_bonus)\ndownloader.ydl_run(\n    extracted_info, video_format=\"bestvideo\"\n)\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\n### Download Audio\n\n\u003c/summary\u003e\n\n```python\nfrom yt_dlp_bonus import YoutubeDLBonus, Downloader\n\nvideo_url = \"https://youtu.be/S3wsCRJVUyg\"\n\nyt_bonus = YoutubeDLBonus()\n\nextracted_info = yt_bonus.extract_info_and_form_model(url=video_url)\n\ndownloader = Downloader(yt=yt_bonus)\n\ndownloader.ydl_run(\n    extracted_info, video_format=None, audio_format=\"bestaudio\"\n)\n```\n\n\u003c/details\u003e\n\n## CLI\n\n### Download Video\n\nUsage : `$ yt-dlpb download-video \u003cVIDEO-URL\u003e`\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\u003ccode\u003e$ python -m yt_dlp_bonus download-video --help\u003c/code\u003e\n\u003c/summary\u003e\n\n```\n                                                                                \n Usage: python -m yt_dlp_bonus download-video [OPTIONS] URL                     \n                                                                                \n Download a youtube video                                                       \n                                                                                \n╭─ Arguments ──────────────────────────────────────────────────────────────────╮\n│ *    url      TEXT  Link pointing to a Youtube video [default: None]         │\n│                     [required]                                               │\n╰──────────────────────────────────────────────────────────────────────────────╯\n╭─ Options ────────────────────────────────────────────────────────────────────╮\n│ --quality                        [144p|240p|360p|480p  Video quality to      │\n│                                  |720p|1080p|2k|4k|8k  download              │\n│                                  |best]                [default: best]       │\n│ --dir                            DIRECTORY             Directory to save the │\n│                                                        video to              │\n│                                                        [default:             │\n│                                                        /home/smartwa/git/sm… │\n│ --format                         [webm|mp4]            Video format to       │\n│                                                        process ie. mp4 or    │\n│                                                        webm                  │\n│                                                        [default: webm]       │\n│ --quiet            --no-quiet                          Do not stdout         │\n│                                                        anything              │\n│                                                        [default: no-quiet]   │\n│ --subtitle-lang                  TEXT                  Subtitle language to  │\n│                                                        embed in the video    │\n│                                                        [default: None]       │\n│ --help                                                 Show this message and │\n│                                                        exit.                 │\n╰──────────────────────────────────────────────────────────────────────────────╯\n\n\n```\n\n\u003c/details\u003e\n\n### Download Audio\n\nUsage : `$ yt-dlp download-audio \u003cVIDEO-URL\u003e`\n\n\u003cdetails\u003e\n\u003csummary\u003e\n\u003ccode\u003e$ python -m yt_dlp_bonus download-audio --help\u003c/code\u003e\n\u003c/summary\u003e\n\n```\n                                                                                \n Usage: python -m yt_dlp_bonus download-audio [OPTIONS] URL                     \n                                                                                \n Download audio version of a YouTube video                                      \n                                                                                \n╭─ Arguments ──────────────────────────────────────────────────────────────────╮\n│ *    url      TEXT  Link pointing to a Youtube video [default: None]         │\n│                     [required]                                               │\n╰──────────────────────────────────────────────────────────────────────────────╯\n╭─ Options ────────────────────────────────────────────────────────────────────╮\n│ --quality                  [ultralow|low|medium|be  Video quality to         │\n│                            staudio]                 download                 │\n│                                                     [default: bestaudio]     │\n│ --dir                      DIRECTORY                Directory to save the    │\n│                                                     video to                 │\n│                                                     [default:                │\n│                                                     /home/smartwa/git/smart… │\n│ --format                   [webm|mp4]               Video format to process  │\n│                                                     ie. mp4 or webm          │\n│                                                     [default: webm]          │\n│ --bitrate                  [64k|96k|128k|192k|256k  Audio bitrate while      │\n│                            |320k]                   converting to mp3        │\n│                                                     [default: None]          │\n│ --quiet      --no-quiet                             Do not stdout anything   │\n│                                                     [default: no-quiet]      │\n│ --help                                              Show this message and    │\n│                                                     exit.                    │\n╰──────────────────────────────────────────────────────────────────────────────╯\n\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003e\n\u003ccode\u003e$ python -m yt_dlp_bonus --help\u003c/code\u003e\n\u003c/summary\u003e\n\n```\n                                                                                \n Usage: python -m yt_dlp_bonus [OPTIONS] COMMAND [ARGS]...                      \n                                                                                \n Download Youtube videos in a number of formats.                                \n                                                                                \n╭─ Options ────────────────────────────────────────────────────────────────────╮\n│ --install-completion          Install completion for the current shell.      │\n│ --show-completion             Show completion for the current shell, to copy │\n│                               it or customize the installation.              │\n│ --help                        Show this message and exit.                    │\n╰──────────────────────────────────────────────────────────────────────────────╯\n╭─ Commands ───────────────────────────────────────────────────────────────────╮\n│ download-video   Download a youtube video                                    │\n│ download-audio   Download audio version of a YouTube video                   │\n╰──────────────────────────────────────────────────────────────────────────────╯\n\n\n```\n\n\u003c/details\u003e\n\n\u003e [!NOTE]\n\u003e Incase requests are detected as coming from bot then consider using a proxy from **Canada**, **USA** or any other location that will work. For more information on how to bypass bot detection then consider going through [this Wiki](https://github.com/yt-dlp/yt-dlp/wiki/Extractors).\n\n# License\n\n[The Unlicense](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimatwa%2Fyt-dlp-bonus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimatwa%2Fyt-dlp-bonus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimatwa%2Fyt-dlp-bonus/lists"}