getvideo - Download YouTube and other videos.


Version 0.410


    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 getvideo. 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 List 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

Filename format info

Which format info should be added to the filename.

- none (unsafe)

- video-height (unsafe)

- format-id

- format-id and video-height

- format-string

none and video-height are unsafe because the don't result in an unambiguous filename and could therefore overwrite previously downloaded files.

Video format


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.

History sort

Sort the history

- by name

- by timestamp

Uploader video list

Additional information

For the first [value of additional information] uploader video list entries is downloaded and shown additional information. The uploader video list is ordered is adopted from the output returned by --dump-single-json from youtube-dl. See also the following option Max processes.

Max processes

If Additional information is enabled Max processes sets how many data-downloads are done in parallel.

Sort order

Sort the first [value of additional information] 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

Show the view count in the first [value of additional information] uploader video list entries

- if sorted by view count

- always

Show video id

Show the video id in the entries of the video list.

- no

- yes

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).

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-2020 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.