https://github.com/simatwa/yt-dlp-bonus
An extension of yt-dlp targeting YoutubeDL with pydantic support.
https://github.com/simatwa/yt-dlp-bonus
yt-dlp yt-dlp-bonus yt-dlp-plugin yt-dlp-wrapper
Last synced: 8 months ago
JSON representation
An extension of yt-dlp targeting YoutubeDL with pydantic support.
- Host: GitHub
- URL: https://github.com/simatwa/yt-dlp-bonus
- Owner: Simatwa
- License: unlicense
- Created: 2024-12-17T16:53:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-08-03T19:13:13.000Z (10 months ago)
- Last Synced: 2025-09-04T10:45:01.319Z (9 months ago)
- Topics: yt-dlp, yt-dlp-bonus, yt-dlp-plugin, yt-dlp-wrapper
- Language: Python
- Homepage:
- Size: 912 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
yt-dlp-bonus
This 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).
## Installation
```sh
pip install yt-dlp-bonus -U
```
## Usage
### Search videos
```python
from yt_dlp_bonus import YoutubeDLBonus
yt = YoutubeDLBonus()
search_results = yt.search_and_form_model(
query="hello",
limit=1
)
print(search_results)
```
### Download Video
```python
from yt_dlp_bonus import YoutubeDLBonus, Downloader
video_url = "https://youtu.be/S3wsCRJVUyg"
yt_bonus = YoutubeDLBonus()
extracted_info = yt_bonus.extract_info_and_form_model(url=video_url)
downloader = Downloader(yt=yt_bonus)
downloader.ydl_run(
extracted_info, video_format="bestvideo"
)
```
### Download Audio
```python
from yt_dlp_bonus import YoutubeDLBonus, Downloader
video_url = "https://youtu.be/S3wsCRJVUyg"
yt_bonus = YoutubeDLBonus()
extracted_info = yt_bonus.extract_info_and_form_model(url=video_url)
downloader = Downloader(yt=yt_bonus)
downloader.ydl_run(
extracted_info, video_format=None, audio_format="bestaudio"
)
```
## CLI
### Download Video
Usage : `$ yt-dlpb download-video `
$ python -m yt_dlp_bonus download-video --help
```
Usage: python -m yt_dlp_bonus download-video [OPTIONS] URL
Download a youtube video
╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│ * url TEXT Link pointing to a Youtube video [default: None] │
│ [required] │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --quality [144p|240p|360p|480p Video quality to │
│ |720p|1080p|2k|4k|8k download │
│ |best] [default: best] │
│ --dir DIRECTORY Directory to save the │
│ video to │
│ [default: │
│ /home/smartwa/git/sm… │
│ --format [webm|mp4] Video format to │
│ process ie. mp4 or │
│ webm │
│ [default: webm] │
│ --quiet --no-quiet Do not stdout │
│ anything │
│ [default: no-quiet] │
│ --subtitle-lang TEXT Subtitle language to │
│ embed in the video │
│ [default: None] │
│ --help Show this message and │
│ exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
```
### Download Audio
Usage : `$ yt-dlp download-audio `
$ python -m yt_dlp_bonus download-audio --help
```
Usage: python -m yt_dlp_bonus download-audio [OPTIONS] URL
Download audio version of a YouTube video
╭─ Arguments ──────────────────────────────────────────────────────────────────╮
│ * url TEXT Link pointing to a Youtube video [default: None] │
│ [required] │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --quality [ultralow|low|medium|be Video quality to │
│ staudio] download │
│ [default: bestaudio] │
│ --dir DIRECTORY Directory to save the │
│ video to │
│ [default: │
│ /home/smartwa/git/smart… │
│ --format [webm|mp4] Video format to process │
│ ie. mp4 or webm │
│ [default: webm] │
│ --bitrate [64k|96k|128k|192k|256k Audio bitrate while │
│ |320k] converting to mp3 │
│ [default: None] │
│ --quiet --no-quiet Do not stdout anything │
│ [default: no-quiet] │
│ --help Show this message and │
│ exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
```
$ python -m yt_dlp_bonus --help
```
Usage: python -m yt_dlp_bonus [OPTIONS] COMMAND [ARGS]...
Download Youtube videos in a number of formats.
╭─ Options ────────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy │
│ it or customize the installation. │
│ --help Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────╮
│ download-video Download a youtube video │
│ download-audio Download audio version of a YouTube video │
╰──────────────────────────────────────────────────────────────────────────────╯
```
> [!NOTE]
> 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).
# License
[The Unlicense](LICENSE)