NAME¶
WWW::YouTube::Download - Very simple YouTube video download interface
SYNOPSIS¶
use WWW::YouTube::Download;
my $client = WWW::YouTube::Download->new;
$client->download($video_id);
my $video_url = $client->get_video_url($video_id);
my $title = $client->get_title($video_id); # maybe encoded utf8 string.
my $fmt = $client->get_fmt($video_id); # maybe highest quality.
my $suffix = $client->get_suffix($video_id); # maybe highest quality file suffix
DESCRIPTION¶
WWW::YouTube::Download is a download video from YouTube.
METHODS¶
- new()
-
$client = WWW::YouTube::Download->new;
Creates a WWW::YouTube::Download instance.
- download($video_id [, \%args])
-
$client->download($video_id);
$client->download($video_id, {
fmt => 37,
filename => 'sample.mp4', # save file name
});
$client->download($video_id, {
filename => '{title}.{suffix}', # maybe `video_title.mp4`
});
$client->download($video_id, {
cb => \&callback,
});
Download the video file. The first parameter is passed to YouTube video url.
Allowed arguments:
- "cb"
- Set a callback subroutine, SEE LWP::UserAgent ':content_cb' for
details.
- "filename"
- Set the filename, possibly using placeholders to be filled with
information gathered about the video.
"filename" supported format placeholders:
{video_id}
{title}
{user}
{fmt}
{suffix}
{resolution}
Output filename is set to "{video_id}.{suffix}" by default.
- "file_name"
- DEPRECATED alternative for "filename".
- "fmt"
- set the format to download. Defaults to the best video quality (inferred
by the available resolutions).
- playback_url($video_id, [, \%args])
-
$client->playback_url($video_id);
$client->playback_url($video_id, { fmt => 37 });
Return playback URL of the video. This is direct link to the movie file.
Function supports only "fmt" option.
- prepare_download($video_id)
- Gather data about the video. A hash reference is returned, with the
following keys:
- "fmt"
- the default, suggested format. It is inferred by selecting the alternative
with the highest resolution.
- "fmt_list"
- the list of available formats, as an array reference.
- "suffix"
- the filename extension associated to the default format (see
"fmt" above).
- "title"
- the title of the video
- "user"
- the YouTube user owning the video
- "video_id"
- the video identifier
- "video_url"
- the URL of the video associated to the default format (see "fmt"
above).
- "video_url_map"
- an hash reference containing details about all available formats.
The "video_url_map" has one key/value pair for each available format,
where the key is the format identifier (can be used as "fmt"
parameter for "download", for example) and the value is a hash
reference with the following data:
- "fmt"
- the format specifier, that can be passed to "download"
- "resolution"
- the resolution as widthxheight
- "suffix"
- the suffix, providing a hint about the video format (e.g. webm, flv,
...)
- "url"
- the URL where the video can be found
- ua([$ua])
-
$self->ua->agent();
$self->ua($LWP_LIKE_OBJECT);
Sets and gets LWP::UserAgent object.
- video_id($url)
- Parses given URL and returns video ID.
- playlist_id($url)
- Parses given URL and returns playlist ID.
- user_id($url)
- Parses given URL and returns YouTube username.
- get_video_url($video_id)
- get_title($video_id)
- get_user($video_id)
- get_fmt($video_id)
- get_fmt_list($video_id)
- get_suffix($video_id)
AUTHOR¶
xaicron <xaicron {@} cpan.org>
CONTRIBUTORS¶
yusukebe
BUG REPORTING¶
Plese use github issues:
<
https://github.com/xaicron/p5-www-youtube-download/issues>.
SEE ALSO¶
WWW::NicoVideo::Download
LICENSE¶
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.