use LWP; my $ua = LWP::UserAgent->new; $ua->timeout(30); $| = 1; while(<>) { s/\r//; s/\s+#.*//; next if m/^#/ || m/^$/; if(m/([^ &]+) (.*)$/) { my ($id, $file) = ($1, $2); die if $file =~ m{/|^\.}; next if -e $file; print "\r$. "; my $req = HTTP::Request->new(GET => "https://www.youtube.com/annotations_invideo?features=1&legacy=1&video_id=$id"); my $res = $ua->request($req); if($res->is_success) { open my $fh, '>', $file; print $fh $res->content; close $fh; print "\b√"; } else { print STDERR $res->content; die $res->status_line; } sleep 10; } } print "\n";