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! ⭐
[!NOTE] Pyutube is built on top of
pytubefix. If downloads stop working, update it first:pip install --upgrade pytubefix
[!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-packagesflag.
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-packagesflag.
🚀 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
Choose what type to download
Choose a resolution when downloading video
Select playlist items to download
Need help? Run pyutube --help
⏳ 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b8be5289e3d709e5ebf57a4130034b39d7c136b275c865fe33c875c7c1c906f
|
|
| MD5 |
cc1441565acb4cc625de75b0faded838
|
|
| BLAKE2b-256 |
1f04b1e62e5dadefc8b50523954a83a454f9245ea7bc5f1da6ed526fbb9883a4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
addbf266daef2c8bfc206c29f6f09fa62fdc716815986046702bd309d7c9b1c7
|
|
| MD5 |
fd51c59676624eb559bdc7859966693f
|
|
| BLAKE2b-256 |
4e4f8e7d542473aac70d6bc816ba2e4c4e695cd83319f3bc25e44285b35ab50e
|