NAME
getvideo - Download YouTube and other videos.
VERSION
Version 0.109_04
SYNOPSIS
getvideo -h|-?|--help
getvideo
getvideo url [url ...]
getvideo -f|--file filename
The urls can be entered after calling getvideo
- this is useful if urls contain shell metacharacters like &
.
The urls can also be passed with a file: getvideo -f|--file filename
. The urls in the file have to be space separated.
KNOWN BACKWARD INCOMPATIBLE CHANGES
It is now used a different field ("extractor" instead of "extractor_key") to get the extractor directory name. So for example the extractor directory "vimeo" was called before this change "Vimeo".
The location of the configuration directory may have changed.
The option which sets the timestamp of the downloaded files to the upload date of the files ("File timestamp") is now enabled by default.
DESCRIPTION
Download single videos or/and choose videos from playlists or/and channels.
When choosing from a channel or a playlist it is possible to filter the displayed video titles with a regexp. The filter can be inverted by adding !~
and a space in front of the regexp.
See "USAGE-AND-RETURN-VALUES" in Term::Choose how to select more items with the SpaceBar
or Ctrl
-SpaceBar
.
Before the download the script shows some video info and lets you choose the video quality from the available qualities. It is possible to choose more than one video format with the SpaceBar
key.
Instead of choosing the quality manually it is possible to set and use preferred qualities.
To set the different options call getvideo -h
.
App::YTDL
uses youtube-dl to get the data required for the video download. To list the supported extractors call getvideo -h
and select the entry Extractors.
Auto merge
Downloaded files from the same video-id are tried to merge if
- the option Merge is enabled. See "Merge".
- ffmpeg
and ffprobe
are available.
- not more and not less than 2 files from the same video-id and the same extractor have been downloaded.
- one of these two files has only an audio stream.
- one of these two files has a video stream.
Legacy encodings
Non mappable characters on the output are replaced with *
. In file names they are replaced with &#xNNN;
where NNN is the Unicode code point in a decimal number.
Options
HELP
Shows this HELP text.
INFO
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.
Directory
Video directory
Choose an alternative main video directory.
Extractor directory
NO
Don't create/use extractor directories.
YES
Create/use extractor directories.
Channel directory
NO
Don't create/use channel directories.
If from channel or list,
Create/use channel directories if the videos are chosen from a channel or a list.
Always
Always create/use channel directories.
File
Max filename length
Set the maximum length of the filename. Filenames longer as the maximum length are truncated.
File timestamp
Change the timestamps of the downloaded videos to the upload date.
Quality
Auto quality mode
Set the auto quality mode:
manually
Choose the video quality always manually
keep_list_channel
Keep the first quality chosen for a video of a playlist/channel for all videos of that playlist/channel if possible.
keep_extractor
Keep the first quality chosen for a video of an extractor for all videos of that extractor if possible.
preferred
Use preferred qualities.
default
Use always the default (best) quality.
Preferred qualities
Prints the set preferred qualities.
How to set the preferred qualities:
Set the option auto quality mode to manually
, keep_list_channel
or keep_extractor
. Then, when downloading a video, instead of selecting the desired video quality select the entry "Menu" and then the entry "Preferred qualities".
Slots 'preferred qualities'
Set the number of the available preferred qualities slots.
If the preferred quality/qualities set in a slot (beginning at the first slot) is/are not available the quality/qualities from the next set slot is/are used.
Download
UserAgent
Set the useragent.
If entered nothing the default useragent (Mozilla/5.0) is used.
Overwrite
If set to "Overwrite", getvideo
overwrites existing files, else getvideo
appends to partially downloaded files with the same name.
Download retries
Set the number of download retries.
Timeout
Connection timeout in seconds.
Merge
Enable Merge
NO
Ask
YES
ffmpeg overwrites
If ffmpeg overwrites is enabled, ffmpeg
overwrites an existing file when merging two files into a file else the user will be asked what to do.
Output formats
Choose the container format for the new file: mkv
, mp4
, ogg
, webm
or flv
.
ffmpeg verbosity
error
error.
warning
error + warning.
info
error + warning + info.
Input files
Keep
Keep the merged input files.
Move to "STREAM_FILES"
Move the merged input files to the directory "STREAM_FILES". The directory "STREAM_FILES" is created (if it not already exits) in the directory where the input files were downloaded.
Remove
Remove the merged input files.
History
Logging
Enable info logging to a log file.
Channel history
If no arguments are passed to getvideo
, the user can choose from the channels saved in the channel-history and the channel-sticky file.
Channel history sets the limit of the number of channels saved in the channel history file. Setting Channel history to 0
disables the channel history.
A channel can be made sticky. Channels made sticky don't count regarding the Channel history limit. If a channel is made sticky, it gets also a new timestamp.
When added to the channel history channels get the return value of time()
as a timestamp. If the Channel history limit is reached, the channel with the oldest timestamp is removed first.
The supported extractors for the Channel history are YouTube and Vimeo.
History sort
Sort the channels from the history file by name or by timestamp.
Video list menu
List size
This option has no meaning if the extractor is not Youtube.
All
Show (fetch info for) all videos of the channel/playlist.
Latest 50
If the channel/playlist has more than 50 videos, show (fetch info for) only the latest 50 videos of the channel/playlist.
Sort order
Choose how to sort the list (channel/playlist) menu entries: by "Upload date", "Title", "View count" or "Duration".
View count
If sorted by "view count"
Show the view count in the list menu entries only when sorted by view count.
Always
Show the view count always.
Appearance
Max info width
Set the maximum width of the video info output.
Digits for "k/s"
Set the number of digits allocated for the "kilobyte per seconds" template.
Extractors
List the extractors supported by youtube-dl
.
REQUIREMENTS
Perl version
Requires Perl version 5.10.0 or greater.
youtube-dl
A recent version of youtube-dl is required.
ffmpeg and ffprobe
The merge feature requires ffmpeg
and ffprobe
.
Encoding layer
For a correct output it is required an appropriate encoding layer for STDOUT matching the terminal's character set.
Monospaced font
It is required a terminal that uses a monospaced font which supports the printed characters.
CREDITS
App::YTDL
uses youtube-dl to get the data required for the video download.
Thanks to the Perl-Community.de and the people form stackoverflow for the help.
AUTHOR
Kuerbis <cuer2s@gmail.com>
LICENSE AND COPYRIGHT
Copyright (C) 2013-2015 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.