---
name: "WebService::YouTube::Videos"
section: "3pm"
platform: "linux"
package: "libwebservice-youtube-perl"
version: "1.0.3-4.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/WebService::YouTube::Videos"
---

# WebService::YouTube::Videos(3pm)

Perl interface to youtube.videos.\*

## NAME

WebService::YouTube::Videos - Perl interface to youtube.videos.\*

## VERSION

This document describes WebService::YouTube::Videos version 1.0.3

## SYNOPSIS

```
    use WebService::YouTube::Videos;

    my $api = WebService::YouTube::Videos->new( { dev_id => YOUR_DEV_ID } );

    # Call API youtube.videos.list_featured
    my @videos = $api->list_featured;
    foreach my $video (@videos) {
        # $video->isa('WebService::YouTube::Video');
    }

    # Call other APIs
    my @videos = $api->list_by_user($user);
    my @videos = $api->list_by_tag($tag);

    my $video = $api->get_details($video_id);

    # Parse XML
    my @video = $api->parse_xml($xml);    # when $xml contains <video_list>
    my $video = $api->parse_xml($xml);    # when $xml contains <video_details>
```

## DESCRIPTION

This is a Perl interface to YouTube REST API.

See **Developer APIs** \<http://youtube.com/dev\> and **Developer API -- REST Interface** \<http://youtube.com/dev\_rest\> for details.

## SUBROUTINES/METHODS

### new(\\%fields)

Creates and returns a new WebService::YouTube::Videos object. `%fields` can contain parameters enumerated in "ACCESSORS" section.

### parse\_xml($xml)

Parses XML and returns the result. `$xml` should be an object that XML::Simple can understand.

### get\_details( $video\_id )

Returns a WebService::YouTube::Video object. `$video_id` is an ID of the video which you want to get details.

See \<http://youtube.com/dev\_api\_ref?m=youtube.videos.get\_details\> for details.

### list\_by\_tag( $tag, \\%fields )

Returns an array of WebService::YouTube::Video object. `$tag` is a keyword string separated by a space. `%fields` can contain the optional parameters.

- page

  1 \<= page

- per\_page

  per\_page \<= 100 (default 20)

See \<http://youtube.com/dev\_api\_ref?m=youtube.videos.list\_by\_tag\> for details.

### list\_by\_user( $user )

Returns an array of WebService::YouTube::Video object. `$tag` is a keyword string separated by a space. `%fields` can contain optional parameters.

See \<http://youtube.com/dev\_api\_ref?m=youtube.videos.list\_by\_user\> for details.

### list\_featured( )

Returns an array of WebService::YouTube::Video object.

See \<http://youtube.com/dev\_api\_ref?m=youtube.videos.list\_featured\> for details.

### ACCESSORS

*dev\_id*

Developer ID

*ua*

LWP::UserAgent object

## DIAGNOSTICS

- dev\_id is required

  Developer ID is required when you call API of YouTube.

- invalid XML

  The XML is not a YouTube's XML.

- unknown response

  The ut\_response is neither \<video\_list\> nor \<video\_details\>.

## CONFIGURATION AND ENVIRONMENT

WebService::YouTube::Videos requires no configuration files or environment variables.

## DEPENDENCIES

Class::Accessor::Fast, LWP::UserAgent, XML::Simple, WebService::YouTube::Util, WebService::YouTube::Video

## INCOMPATIBILITIES

None reported.

## BUGS AND LIMITATIONS

No bugs have been reported.

Please report any bugs or feature requests to `"bug-webservice-youtube@rt.cpan.org"`, or through the web interface at \<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WebService-YouTube\>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

## AUTHOR

Hironori Yoshida \<yoshida@cpan.org\>

## LICENSE AND COPYRIGHT

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