Skip to main content

An automation service to download videos from Youtube

Project description


# YoutubeDownloader

**YoutubeDownloader** is an automated service to download multiple youtube videos at a time.

## About

**YoutubeDownloader** is written in `Python`. It uses ``Asynchronous Python Multiprocessing`` at its heart which facilitates user to download more than one video at a time.


**YoutubeDownloader** must use a configuration file. It supports a YAML / JSON format of configuration file. This configuration file gives structure and usability to the service. It defines what **videos/playlists** needs to be downloaded and how they are going to be stored.


## Configuration Syntax

**YoutubeDownloader** supports YAML / JSON configuration formats. **YoutubeDownloader** prefers YAML more than JSON. Below is the snippet of sample configurations in YAML / JSON format.

```
settings:
process: 2
download:
mostlyinsane:
dirname: '../mostlyinsane'
videos:
- 'https://www.youtube.com/watch?v=vcKPjDUc5EQ'
trippling:
dirname: 'trippling'
playlists: 'https://www.youtube.com/watch?list=PLTB0eCoUXEraZe3d7fJRdB-znE5D0cMZ7'
official-ceogiri:
dirname: 'official-ceogiri'
playlists:
- 'https://www.youtube.com/watch?list=PLTB0eCoUXEraZe3d7fJRdB-znE5D0cMZ7'
```

```
{
"settings": {
"process": 5
},
"download": {
"mostlyinsane": {
"dirname": "../mostlyinsane",
"videos": [
"https://www.youtube.com/watch?v=vcKPjDUc5EQ"
]

},
"trippling": {
"dirname": "trippling",
"playlists": "https://www.youtube.com/watch?list=PLTB0eCoUXEraZe3d7fJRdB-znE5D0cMZ7"

},
"official-ceogiri": {
"dirname": "official-ceogiri",
"playlists": [
"https://www.youtube.com/watch?list=PLTB0eCoUXEraZe3d7fJRdB-znE5D0cMZ7"
]

}
}
}
```

`settings` defines service level variables.
- `process` to force **YoutubeDownloader** to use `Asynchronous Python Multiprocessing` and tells how many processes should be deployed to download **videos/playlists** at a time.

`download` defines what **videos/playlists** to download. It tags **dirnames** with **videos/playlists** internally and store the downloaded **videos/playlists** in the respective **directory**.

- `dirname` **relative / absolute directory path** to store videos in.
- `videos` **single / array of youtube videos link** to download.
- `playlists` **single / array of youtube playlists link** to download.


## Install

This is a pure-Python package built for Python 2.6+ and Python 3.0+. To set up:

```
sudo pip install ytdownloader
```

## Options

```
ytdownloader --help
```

[reference]: https://github.com/mukultaneja/YoutubeDownloader/raw/master/ "YoutubeDownloader Reference"

- `config` specifies the location for the configuration file to **YoutubeDownloader**. If it omits, **YoutubeDownloader** looks in the current directory for the configuration file.
- `--version` specifies the currect version of **YoutubeDownloader**.
- `--about` about text for **YoutubeDownloader**


## Usage

```
ytdownloader --version // latest version of ytdownloader
```
```
ytdownloader --about // about text for ytdownloader
```
```
ytdownloader // start the ytdownloader and search config file in current directory
```
```
ytdownloader docs/config.yaml // start the ytdownloader and use docs/config.yaml as config file
```


Project details


Download files

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

Source Distribution

ytdownloader-0.1.11.tar.gz (5.8 kB view hashes)

Uploaded Source

Built Distribution

ytdownloader-0.1.11-py2.py3-none-any.whl (6.6 kB view hashes)

Uploaded Python 2 Python 3

Supported by

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