#!/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("$module/"); mkdir("$module/sequences/"); chdir("$module/sequences/"); my $fn, $new_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); $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\: ([^)]+)$/) { $fn = $1; } } if ($fn) { my $tag = sanitize($fn); mkdir('$tag'); system('ffmpeg', '-i', $fn, './sequences/' . $module . '/' . $tag . '/frame_%05d.png'); print "created_dataset: $tag\n"; # $new_fn } } my $tag = sanitize($fn); open(my $fd, ">>../run_slap.sh"); print $fd "standard $tag\n"; close $fn; $fn = undef; END { chdir('../..'); }