App-get_flash_videos
view release on metacpan or search on metacpan
lib/FlashVideo/Downloader.pm view on Meta::CPAN
sub progress {
my($self) = @_;
return unless -t STDERR;
return if $self->quiet;
my $progress_text;
if ($self->{content_length}) {
my $percent = int(
($self->{downloaded} / $self->{content_length}) * 100
);
if ($percent != $self->{percent} || time != $self->{last_time}) {
my $downloaded_kib = _bytes_to_kib($self->{downloaded});
my $total_kib = _bytes_to_kib($self->{content_length});
$progress_text = ": $percent% ($downloaded_kib / $total_kib KiB)";
$self->{last_time} = time;
$self->{percent} = $percent;
}
} else {
# Handle lame servers that don't tell us how big the file is
my $data_transferred = _bytes_to_kib($self->{downloaded});
if ($data_transferred != $self->{data_transferred}) {
$progress_text = ": $data_transferred KiB";
}
}
if($progress_text) {
lib/FlashVideo/RTMPDownloader.pm view on Meta::CPAN
for(@parts) {
# Hide almost everything from rtmpdump, it's less confusing this way.
if(/^((?:DEBUG:|WARNING:|Closing connection|ERROR: No playpath found).*)\n/) {
debug "$prog: $1";
} elsif(/^(ERROR: .*)\012/) {
push @error, $1;
info "$prog: $1";
} elsif(/^([0-9.]+) kB(?:\s+\/ \S+ sec)?(?: \(([0-9.]+)%\))?/i) {
$self->{downloaded} = $1 * 1024;
my $percent = $2;
if($self->{downloaded} && $percent != 0) {
# An approximation, but should be reasonable if we don't have the size.
$self->{content_length} = $self->{downloaded} / ($percent / 100);
}
$self->progress;
} elsif(/\012$/) {
for my $l(split /\012/) {
if($l =~ /^[A-F0-9]{,2}(?:\s+[A-F0-9]{2})*\s*$/) {
debug $l;
} elsif($l =~ /Download complete/) {
$complete = 1;
} elsif($l =~ /\s+filesize\s+(\d+)/) {
( run in 0.414 second using v1.01-cache-2.11-cpan-05162d3a2b1 )