# 📹 Pyutube - The Simplest YouTube Downloader CLI

### Enjoying my project? Please show your appreciation by starring it on GitHub! ⭐
<a href="https://github.com/Hetari/pyutube">
  <img src="https://img.shields.io/pypi/v/pyutube.svg?style=flat&label=Version" alt="Version">
</a>
<a href="https://github.com/Hetari/pyutube">
  <img src="https://static.pepy.tech/badge/pyutube" alt="Downloads">
</a>
<a href="https://github.com/Hetari/pyutube">
  <img src="https://static.pepy.tech/badge/pyutube/month" alt="Downloads per Month">
</a>
<a href="https://github.com/Hetari/pyutube">
  <img src="https://static.pepy.tech/badge/pyutube/week" alt="Downloads per Week">
</a>

<br />
<br />

> [!NOTE]
> `Pyutube` is built on top of `pytubefix`, make sure to have the latest version of `pytubefix` by running:
> ```bash
> pip install --upgrade pytubefix
> ```

<a href="https://ibb.co/27wcFYN">
   <img src="https://i.ibb.co/MDbPg56/Screenshot-from-2024-04-08-21-38-02-transformed.png" alt="Pyutube" style="width: 100%;">
</a>

> [!NOTE]
> Have **a new feature**? Please don't hesitate to [tell me](https://github.com/Hetari/pyutube/issues/new)!


## 🤔 why `pyutube`?

This command-line wizard lets you download YouTube videos or playlists straight from your `Terminal`, powered by [Pytubefix](https://pytubefix.readthedocs.io/). It works like a charm on Windows, Mac, and Linux, so you can rock it on any platform.

While other tools make you wade through a swamp of settings and configs, `Pyutube` keeps it simple. Just drop in your URL, and voilà! It’ll take you on a smooth ride to your favorite videos, no complex options needed—just fun downloading! 🔥

## 🛠️ Installation

Getting `Pyutube` up and running is a breeze! First, ensure you have [Python](https://www.python.org) installed. Just pop open your terminal and type:

```bash
python --version
```

If you see something like `Python 3.x`, you’re all set! If not, head over to [Python's downloads page](https://www.python.org/downloads/) to grab it.

Once you’re good to go, install `Pyutube` with a single command:

```bash
pip install pyutube
```

And just like that, you’re ready to download some awesome videos! 🎉

## 📈 Upgrade

Stay in the loop with the latest features on [GitHub](https://github.com/Hetari/pyutube)! To upgrade your `Pyutube` tool, simply run:

```bash
pip install --upgrade pyutube
```

Then you’re all set to keep downloading from your `Terminal`! 🥳


## 🦸 Quick Start

Getting started with `Pyutube` is a piece of cake! Just use the following command style:

```bash
pyutube "YOUTUBE_LINK" [PATH]
```

> [!NOTE]
> The `[URL]` is <span style="color:red">[Required]</span> and it should be between `""`<br/>
> The `[PATH]` is optional—if you don’t specify one, it’ll save to your current terminal directory. Easy-peasy!


## 👨‍💻 Usage

#### Arguments

| Arguments | Description                                                                                                          |
| --------- | -------------------------------------------------------------------------------------------------------------------- |
| `URL`     | The `URL` of the YouTube video. This argument is <span style="color:red">[Required]</span>.                          |
| `PATH`    | The `path` to save the video. Defaults to the current working directory. <span style="color:green">[Optional]</span> |

### Options

| Option                                              | Description                            |
| --------------------------------------------------- | -------------------------------------- |
| `-v` <span style="color:cyan">or</span> `--version` | Displays the current version number.   |
| `-a` <span style="color:cyan">or</span> `--audio`   | Download audio only, skipping prompts. |
| `-f` <span style="color:cyan">or</span> `--footage` | Download video only, skipping prompts. |


## 🕵️‍♂️ Examples

For lots of examples, check them out [here](https://github.com/Hetari/pyutube/blob/main/EXAMPLES.md)! Take a deep dive and discover all the ways to use Pyutube. 🚀

## 🥰 Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you want to change.
please follow the [contributing guidelines](https://github.com/Hetari/pyutube/blob/main/CONTRIBUTING.md)

## 📎 License

This project is licensed under the [MIT License](https://github.com/Hetari/pyutube/blob/main/LICENSE.md).

## 📸 Screenshots

<!-- for pypi only -->
<div style="text-align: center;">
   <p>Download video with specify the save location</p>
   <a href="https://ibb.co/0JkdkQy">
      <img src="https://i.ibb.co/7yH6Hbt/image1.png" alt="Download video with specify the save location">
   </a>
   <p>Chose what type you want to download</p>
   <a href="https://ibb.co/Kb6qjmg">
      <img src="https://i.ibb.co/sbjwvt4/image2.png" alt="Chose what type you want to download">
   </a>
   <p>Chose what what resolution you want to download(if the type is video)</p>
   <a href="https://ibb.co/7ymCS79">
      <img src="https://i.ibb.co/h8z9gpq/image4.png" alt="Chose what resolution you want to download">
   </a>
   <p>If you download a playlist, you can choose what video you want to download, or even all of them</p>
   <a href="https://ibb.co/0qwkQNm">
      <img src="https://i.ibb.co/1ZS3bV7/Screenshot-from-2024-04-11-16-42-29.png" alt="If you download a playlist, you can choose what video you want to download, or even all of them"/>
   </a>
<br /><br />
 <p>Do not know how to use it? just type <code>pyutube --help</code></p>
  <a href="https://ibb.co/LhT6r3r">
      <img src="https://i.ibb.co/WprF0L0/image5.png" alt="image5">
   </a>
</div>

## ⏳ Todo List
- [x] **Notification System**    
- [x] **Auto Update package if new version available**
- [x] **Support Optional Numbering for Downloaded Playlist Videos**
- [ ]  **Improve code health**
- [ ] **Support downloading sounds (mp3 format not a audio/mp4)**
- [ ] **Support Subtitles Download**
- [ ] **Support setting for downloading folder**
- [ ] **Download Thumbnails with Videos and Audio**
