Downloading Youtube Videos with Pytube and Shellmarks

Tags: python, tutorial, bash, devops
Published: 2021-12-22 20:33:24

Pytube is a great little Python utility for downloading videos from youtube as .mp4 files. It has a command-line interface that makes downloading videos as simple as entering the following command:

```bash
$ pytube https://www.youtube.com/watch?v=....
```

Replace the URL with the Youtube URL of the video you want to download.

To make things even easier, I wrote a shellmarks wrapper script for this that provides an intuitive GUI form.

![Shellmarks dialog for pytube](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aewx5njkcatm9r6k8p8p.png)

Simply paste in the URL and press “Download”, and it will download the video to your “Downloads” directory.

## Installation

Pytube installation instructions can be found [here](https://pytube.io/en/latest/user/install.html).

The TLDR of the install instructions, if you have Python 3 already installed, is to open Terminal and enter:

```bash
$ pip install pytube
```

If pip happens to be the python2 version, you can try

```bash
$ pip3 install pytube
```

instead.

The Shellmarks installation instructions can be found here

The TLDR of the install instructions, if you have npm installed, is to open Terminal and enter:

```bash
$ sudo npm install -g shellmarks
```

I have uploaded the shellmarks wrapper script here

To install it in shellmarks, begin by opening shellmarks by opening Terminal and running

```bash
$ shellmarks
```

After shellmarks opens, open the menu in the upper right corner and select “Import Script from URL”

![Shellmarks menu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vomkwshepz6qbz33p6el.png)

You will the be prompted to enter the URL to the script:

![Shellmarks import script dialog](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ga97ryg7rgvdh4kqxc34.png)

The URL to the raw script is 

[https://raw.githubusercontent.com/shannah/shellmarks/master/sample-scripts/pytube.sh](https://raw.githubusercontent.com/shannah/shellmarks/master/sample-scripts/pytube.sh)

Paste that URL into the field and press “OK”.

This will install the script and refresh the shellmarks catalog. You should now see an entry as follows:


![Shellmarks catalog entry for pytube](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/93c7dntqnx6ahfi6vfz1.png)

Press “Run” to run the script. You’ll see the dialog prompting you for the video URL you want to download.


![Shellmarks dialog for running pytube](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jmm5wzbjxlb42f0mo2op.png)

Paste any youtube URL in here and press “Download”. You’ll be able to see the progress of the download in the terminal you used to open shellmarks. When the download is complete, it will open the video in your preferred movie player.

NOTE: This script was developed for MacOS, and would need to be modified slightly to work on Linux or Windows.

You can now access this script directly from within Shellmarks anytime. If you want to run it directly from the command-line you could also simply run:

```bash
$ shellmarks pytube
```

### References:

- [Pytube](https://pytube.io/en/latest/)
- [Shellmarks Github Repo](https://github.com/shannah/shellmarks)
- [Shellmarks Manual](https://shannah.github.io/shellmarks/manual/)

Photo by [Alexander Shatov](https://unsplash.com/@alexbemore?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/videos?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)