summaryrefslogtreecommitdiff
path: root/get.pl
blob: 78f51b04e5d7884c666e6c767713cac171f7e93b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/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('../..');
}