#!/usr/bin/perl -- use strict; use warnings; use feature qw/ say /; use Carp::Always; use WebService::GData::YouTube; use WebService::GData::Error; ## perltidy -olq -csc -csci=10 -cscl="sub : BEGIN END if " -otr -opr -ce -nibc -i=4 -pt=0 "-nsak=*" Main( @ARGV ); exit( 0 ); sub Main { my $query = shift or die qq{\nUsage: $0 "Robert Palmer"\n\n}; my $yt = WebService::GData::YouTube->new(); $yt->query()->q( $query )->limit( 10, 2 ); $yt->query()->maxresults( 20 ); my $videos = $yt->search_video(); display_videos( $videos ); } sub display_videos { my $videos = shift; foreach my $video ( @$videos ) { display_video( $video, 'justthumbs' ); } } sub display_video { my $video = shift; my $justthumbs = shift; say 'Video Id:', $video->video_id; say 'Title:', $video->title; if( not $justthumbs ) { say 'Description:', $video->description; say 'Updated:', $video->updated; say 'Published:', $video->published; say 'Uploaded:', $video->uploaded; say 'Favorite Count:', $video->favorite_count; say 'View Count:', $video->view_count; say 'Duration:', $video->duration; say 'Keywords:', $video->keywords; say 'Author Name:', $video->author->[0]->name; say 'Author Uri:', $video->author->[0]->uri; say 'Geo Location:', $video->location; say 'Denied Countries:', $video->denied_countries; say 'Media Player URL:', $video->media_player; say 'Is Private:', $video->is_private; #content say $video->content->type( 'flash' )->[0] ->url; #retrieve the flash application url say $video->content->format( 1 )->[0]->url; #3gpp rtsp #loop over it: my $contents = $video->content; foreach my $content ( @$contents ) { say $content->url; say $content->type; say $content->duration; say $content->format; } say $video->rating->num_dislikes; say $video->rating->num_likes; } ## end if( not $justthumbs ) my $thumbs = $video->thumbnails; foreach my $thumb ( @$thumbs ) { for my $att( qw/ url time width height /){ my $val = $thumb->$att; $val = '' if not defined $val; say "$att: $val"; } #~ say $thumb->url; #~ say $thumb->time; #~ say $thumb->width; #~ say $thumb->height; } } ## end sub display_video