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 *width*x*height*

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

    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

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.

