Skip to main content

Awesome CLI to download YouTube videos (as video or audio)/shorts/playlists from the terminal

Project description

📹 Pyutube - The Simplest YouTube Downloader CLI

Enjoying my project? Please show your appreciation by starring it on GitHub! ⭐

Version Downloads Downloads per Month Downloads per Week

[!NOTE] Pyutube is built on top of pytubefix. If downloads stop working, update it first:

pip install --upgrade pytubefix
Pyutube

[!NOTE] Have a feature request or bug report? tell me

Why Pyutube?

Pyutube is a small CLI wrapper around pytubefix. It supports videos, shorts, audio-only downloads, and playlists with a simple prompt-driven flow.

🛠️ Installation

Make sure Python is installed:

python --version

If you are developing locally, clone the repository and install the dependencies:

pip install -r requirements.txt -r requirements-dev.txt

To install the published package:

pip install pyutube --break-system-packages

Then run pyutube --help to confirm the CLI is available.

📈 Upgrade

To upgrade the installed package:

pip install --upgrade pyutube --break-system-packages

🚀 Run It

Use either of these commands to view the CLI help:

pyutube --help
python -m pyutube --help

Download a video, short, or playlist with:

pyutube download "YOUTUBE_LINK"
pyutube download "YOUTUBE_LINK" "/path/to/save"

Common examples:

pyutube download "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
pyutube download "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -a
pyutube download "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -f
pyutube download "https://www.youtube.com/playlist?list=PLAYLIST_ID"

[!NOTE] The URL is required. The path is optional and defaults to the current working directory.

👨‍💻 Usage

Arguments

Arguments Description
URL The YouTube URL or video ID. This argument is required.
PATH The path to save the video. Defaults to the current working directory. [Optional]

Options

Option Description
-v or --version Display the current version number.
-a or --audio Download audio only, skipping prompts.
-f or --footage Download video only, skipping prompts.

🧪 Test And Quality

Run these commands to check code health locally:

python -m compileall pyutube
pytest pyutube/tests -q
ruff check pyutube
mypy pyutube
coverage run -m pytest pyutube/tests -q
coverage report

The repo also includes a short checklist in QUALITY.md.

🕵️‍♂️ Examples

More examples are in EXAMPLES.md.

🥰 Contributing

Pull requests are welcome. For larger changes, open an issue first and follow the contributing guidelines.

📎 License

This project is licensed under the MIT License.

📸 Screenshots

Download a video to a specific location

Download video with specify the save location

Choose what type to download

Chose what type you want to download

Choose a resolution when downloading video

Chose what resolution you want to download

Select playlist items to download

If you download a playlist, you can choose what video you want to download, or even all of them

Need help? Run pyutube --help

image5

⏳ Todo List

  • Notification System
  • Auto Update package if new version available
  • 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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyutube-1.5.1.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyutube-1.5.1-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

Details for the file pyutube-1.5.1.tar.gz.

File metadata

  • Download URL: pyutube-1.5.1.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pyutube-1.5.1.tar.gz
Algorithm Hash digest
SHA256 214f091668ad6914fafaa28bcd3b548e7258c8a7dac4fb15afe9718ddef92766
MD5 73d2442d46194523010bea604557d1d1
BLAKE2b-256 86b0ef6465cc8fae0168fd09cf95b9700f4bfb774b65778c91021c3f0ee6666d

See more details on using hashes here.

File details

Details for the file pyutube-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: pyutube-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 39.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for pyutube-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8ab717eca074476d9433424449781f489fd070ab907be8c1dcf54c9d97bff22c
MD5 17d8e34507ab16941367b40f74242cec
BLAKE2b-256 98634e8ed768fb80bd765ebb3731aca49aedbb7414786daeaa8e405432a260cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page