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! ⭐

Ask in DeepWiki 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. Audio downloads are saved as WAV by default, with an optional MP3 conversion flag.

🛠️ 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

[!TIP] If the installation or update does not work, try running the command with the pip install pyutube --break-system-packages flag.

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

📈 Upgrade

To upgrade the installed package:

pip install --upgrade pyutube

[!TIP] If the installation or update does not work, try running the command with the pip install --upgrade pyutube --break-system-packages flag.

🚀 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 "YOUTUBE_LINK"
pyutube "YOUTUBE_LINK" "/path/to/save"

Common examples:

pyutube "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
pyutube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -a
pyutube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -a --mp3
pyutube "https://www.youtube.com/watch?v=dQw4w9WgXcQ" -f
pyutube "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 as WAV, skipping prompts.
--mp3 Convert audio downloads to MP3.
-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 (WAV by default, MP3 optional)
  • 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.22.tar.gz (30.1 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.22-py3-none-any.whl (41.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyutube-1.5.22.tar.gz
  • Upload date:
  • Size: 30.1 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.22.tar.gz
Algorithm Hash digest
SHA256 4b8be5289e3d709e5ebf57a4130034b39d7c136b275c865fe33c875c7c1c906f
MD5 cc1441565acb4cc625de75b0faded838
BLAKE2b-256 1f04b1e62e5dadefc8b50523954a83a454f9245ea7bc5f1da6ed526fbb9883a4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyutube-1.5.22-py3-none-any.whl
  • Upload date:
  • Size: 41.2 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.22-py3-none-any.whl
Algorithm Hash digest
SHA256 addbf266daef2c8bfc206c29f6f09fa62fdc716815986046702bd309d7c9b1c7
MD5 fd51c59676624eb559bdc7859966693f
BLAKE2b-256 4e4f8e7d542473aac70d6bc816ba2e4c4e695cd83319f3bc25e44285b35ab50e

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