Просмотр исходного кода

Capture errors from prepare_download(). Build NFOs even if we do not get a video file.

Zachary Kotlarek 12 лет назад
Родитель
Сommit
462ef99c39
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      yt/subscribe.pl

+ 3 - 3
yt/subscribe.pl

@@ -148,12 +148,12 @@ foreach my $id (keys(%{$videos})) {
 		my ($url, $suffix) = ytURL($id);
 		if (!defined($url) || length($url) < 5) {
 			warn('Could not determine URL for video: ' . $id . "\n");
-			next;
+			$url = undef();
 		}
 
 		# Fetch with cURL
 		# I know LWP exists (and is even loaded) but cURL makes my life easier
-		{
+		if ($url) {
 			my @cmd = ($CURL_BIN);
 			push(@cmd, @CURL_ARGS);
 			push(@cmd, '-o', $basePath . $suffix, $url);
@@ -270,7 +270,7 @@ sub ytURL($) {
 	my $tube = WWW::YouTube::Download->new;
 
 	# Fetch metadata
-	my $meta = $tube->prepare_download($id);
+	my $meta = eval { $tube->prepare_download($id); };
 	if (!defined($meta) || ref($meta) ne 'HASH' || !exists($meta->{'video_url_map'}) || ref($meta->{'video_url_map'}) ne 'HASH') {
 		return undef();
 	}