---
name: "WWW::NicoVideo::Download"
section: "3pm"
platform: "linux"
package: "libwww-nicovideo-download-perl"
version: "0.06-2"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/WWW::NicoVideo::Download"
---

# WWW::NicoVideo::Download(3pm)

Download FLV/MP4/SWF files from nicovideo.jp

## NAME

WWW::NicoVideo::Download - Download FLV/MP4/SWF files from nicovideo.jp

## SYNOPSIS

```
  use WWW::NicoVideo::Download;
  my $client = WWW::NicoVideo::Download->new(
      email => 'your-email@example.com',
      password => 'PASSWORD',
  );
  $client->download("smNNNNNN", \&callback);
```

## DESCRIPTION

WWW::NicoVideo::Download is a module to login, request and download video files from Nico Nico Douga.

## METHODS

- new

  ```
    $client = WWW::NicoVideo::Download->new(%options);
  ```

  Creates a new WWW::NicoVideo::Download instance. `%options` can take the following parameters and they can also be set and get using accessor methods.

- email, password

  Sets and gets email and password to login Nico Nico Douga. Required if the User Agent object doesn't have the valid session or cookie to login to the site.

- user\_agent

  Sets and gets LWP::UserAgent object to use to send HTTP requests to nicovideo.jp server. If you want to reuse the browser Cookie that has the signed-in state, you can set the Cookie to the UserAgent object here.

  ```
    # use Safari sesssions
    use HTTP::Cookies::Safari;
    my $cookie_jar = HTTP::Cookies::Safari->new(
        file => "$ENV{HOME}/Library/Cookies/Cookies.plist",
    );
    my $client = WWW::NicoVideo::Download->new;
    $client->user_agent->cookie_jar( $cookie_jar );
  ```

- download

  ```
    $client->download($video_id, $file_path);
  ```

  Prepares the download by logging in and requesting the FLV API, and then download the video file. The second parameter is passed to LWP::UserAgent's *request()* method, so you can pass either local file path to be saved, or a callback function.

- prepare\_download

  ```
    my $url = $client->prepare_download($video_id);
  ```

  Prepares the download and returns the URL of the actual video. See *eg/fetch-video.pl* how to make use of this method.

## AUTHOR

Tatsuhiko Miyagawa \<miyagawa@cpan.org\>

Original download code for Plagger was written by Yusuke Wada and the command line tool written by woremacx.

## LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO
