getvideo - Download YouTube and other videos.


Version 0.306


    getvideo -h|-?|--help


    getvideo url [url ...]

    getvideo -f|--file filename


Download single videos or choose videos from a playlist or an uploader.

Call getvideo followed by the space separated urls or enter the urls after calling getviedo. If the urls are entered after calling getvideo shell metacharacters are escaped automatically.

The urls can also be passed with a file: getvideo -f|--file filename. The urls in the file have to be space separated.

If a passed url results in more than one video, it is shown a menu with the video titles. The user can then choose from the menu which videos to download. It is possible to filter the video titles of the list menu with a regexp. The filter can be inverted by adding !~ and a space in front of the regexp. Use the SpaceBar to select more than one video - see "USAGE-AND-RETURN-VALUES" in Term::Choose.

The different options of getvideo can be reached by calling getvideo -h.

App::YTDL uses youtube-dl to get the info data and to download the videos. To list the extractors supported by youtube-dl call getvideo -h and select the entry Extractors.



Shows this HELP text.


Shows the path and the version of the running getvideo, the path of the video and configuration directories and the version of youtube-dl. If ffmpeg and ffprobe are available, their version is also shown.


Video directory

Choose an alternative main video directory.

Extractor directory

Create/use extractor directories.

- no

- yes

Uploader directory

Create/use uploader directories

- no

- yes

- if chosen from an uploader or a playlist



Set the video height.

If set to manually: + => "merge", , => "and", / => "or". See youtube-dl documentation format section.

No video height

Download videos whose height is unknown.

- no

- yes

Prefer free formats

Prefer free video formats (--prefer-free-formats).

- no

- yes



Set the useragent string (--user-agent).

Download retries

Set the number of download retries (--retries).


Connection timeout in seconds (--socket-timeout).


Size history

If no arguments are passed to getvideo, the user can choose videos from uploaders saved in the history file and the sticky file.

Size history sets the limit of the number of uploaders saved in the history file. Setting size history to 0 disables the uploader-history.

An uploader can be made sticky. Uploaders made sticky don't count regarding the size history limit. An uploader made sticky gets also a new timestamp.

When added to the uploader-history an uploader gets the current timestamp. If the size history limit is reached, the uploader with the oldest timestamp is removed first.

The supported extractors are YouTube and Vimeo.

History sort

Sort the history

- by name

- by timestamp

Uploader videos

List type

- all standard (list all uploader/playlist videos in the menu).

- all fast (list all uploader/playlist videos in the menu).

- latest (list only the latest videos in the menu - Vimeo: 48, YouTube: 50).

If all fast or latest fast is chosen, the download of the required data for the list-menu takes less time since the data required for the video downloads is fetched later only for the chosen videos.

With all fast or latest fast enabled a progress info is shown.

Supported extractors:

- Vimeo (no view-count available).

- YouTube (the upload-date is relative to now).

Sort order

Sort the videos in the list-menu by

- upload date (fallback title);

- title

- view count (fallback upload date)

- duration (fallback upload date)

Fallback is used, if the chosen entry is not available.

Show view count

- if sorted by view count

- always

Info Output

Disable warnings

Ignore youtube-dl warnings (--no-warnings).

Max info width

Set the maximum width of the video info output.

Youtube-dl config file

youtube-dl config file

Location of the youtube-dl configuration file (--config-location).

Ignore youtube-dl config file

Do not read youtube-dl configuration files (--ignore-config).

Available extractors

List Extractors

List the extractors supported by youtube-dl.

Extractor descriptions

Output descriptions of supported extractors.


Perl version

Requires Perl version 5.10.0 or greater.


A recent version of youtube-dl is required.

ffmpeg and ffprobe

The merge feature requires ffmpeg and ffprobe.

Monospaced font

It is required a terminal that uses a monospaced font which supports the printed characters.


App::YTDL uses youtube-dl to get the data required for the video download.

Thanks to the and the people form stackoverflow for the help.


Kuerbis <>


Copyright (C) 2013-2019 Kuerbis.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For details, see the full text of the licenses in the file LICENSE.