123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/usr/bin/perl
- use strict;
- use warnings;
- # Try and find .mp3 links in archive.org pages
- if ( ! defined $ARGV[0] ) {
- print "Need to pass archive.org URL\n";
- exit 1;
- }
- my $page_url = shift(@ARGV);
- my $page_content = `curl -s $page_url`;
- my @names;
- my @links;
- my $counter = 1;
- foreach my $line ( split("\n",$page_content) ) {
- chomp $line;
- if ( $line =~ m/<meta itemprop="name" content="(.*)"/ ) {
- my $name = $counter . "_" . $1;
- push(@names,$name);
- $counter++;
- } elsif ( $line =~ m/<link itemprop="associatedMedia" href="(.*\.mp3)"/ ) {
- push(@links,$1);
- }
- }
- my %link_map;
- @link_map{@names} = @links;
- sub make_filename($) {
- my $name = shift;
- my $filename;
- open(my $fh, ">>", \$filename);
- foreach my $char ( split("",$name) ) {
- if ( $char =~ m/[\s->'\/\!\&\:]/ ) {
- print $fh "";
- } else {
- print $fh "$char";
- }
- }
- return $filename;
- }
- foreach my $key ( keys %link_map ) {
- #print "$key : $link_map{$key}\n";
- my $filename = make_filename($key) . ".mp3";
- #print "wget -q $link_map{$key} -O $filename\n";
- print "Downloading $key\n";
- system("wget -q $link_map{$key} -O $filename");
- }
|