#!/usr/bin/perl $SIG{TERM} = $SIG{INT} = sub { exit 1 }; sub sanitize ($) { my $s = lc shift; $s =~ s/\.[^.]+$//g; $s =~ s/\W//g; $s =~ s/\s+/_/g; if (length($s) == 0) { print "fn is empty"; exit(1); } $s =~ s/_+/_/g; return $s; } my ($module, $url) = @ARGV; if (not defined $module || not defined $url || $s !~ /^http/) { die "usage: ./get.pl pix2pix http://...\n"; } mkdir("sequences/$module/"); chdir("sequences/$module/"); my $fn, $new_fn, $video_fn; # ZIP file of spectrograms >:) if ($s =~ /(zip)$/i) { $s =~ s/^\s+//; $s =~ s/\s+$//; my $fn = `basename $s`; $clean_fn = $fn; $clean_fn =~ s/-/_/g; $clean_fn =~ s/^\s//; $clean_fn =~ s/\s$//; $clean_fn =~ s/\s/_/g; $clean_fn =~ s/_+/_/g; system('rm', $fn); system('rm', $clean_fn); print "downloading $clean_fn\n"; system('wget', '-O', $clean_fn, $s); system('unzip', '$clean_fn'); $fn = $clean_fn; } elsif ($s =~ /(mov|mp4|webm|avi|mpe?g)$/i) { $s =~ s/^\s+//; $s =~ s/\s+$//; my $fn = `basename $s`; $clean_fn = $fn; $clean_fn =~ s/-/_/g; $clean_fn =~ s/^\s//; $clean_fn =~ s/\s$//; $clean_fn =~ s/\s/_/g; $clean_fn =~ s/_+/_/g; system('rm', $fn); system('rm', $clean_fn); print "downloading $clean_fn\n"; system('wget', '-O', $clean_fn, $s); $video_fn = $clean_fn; } else { print "youtube-dl $s\n"; my $yt = `youtube-dl -o "%(title)s.%(ext)s" $s`; my @partz = split("\n", $yt); foreach $part (@partz) { if ($part =~ /\[ffmpeg\] Destination\: ([^)]+)$/) { $video_fn = $1; } } } if ($video_fn) { my $tag = sanitize($video_fn); mkdir('$tag'); system('ffmpeg', '-i', $video_fn, "-filter:v", "crop=w:h:x:y, scale=256x256", $tag . '/frame_%05d.png'); print "created dataset: $tag\n"; } END { chdir('../..'); }