Skip to content

Commit 1a2e742

Browse files
committed
cli: fixed the stdin ":pp=i" option for local playlists (-lp)
1 parent b46c3e2 commit 1a2e742

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

bin/youtube-viewer

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2276,15 +2276,18 @@ sub rate_videos {
22762276

22772277
sub get_and_play_video_ids {
22782278
(my @ids = grep { defined($_) } map { get_valid_video_id($_) } @_) || return;
2279-
my $info = $yv_obj->video_details(join(',', @ids), VIDEO_PART);
22802279

2281-
if ($yv_utils->has_entries($info)) {
2282-
if (not play_videos($info->{results}{items})) {
2283-
return;
2280+
while (@ids) {
2281+
my $info = $yv_obj->video_details(join(',', splice(@ids, 0, 50)), VIDEO_PART);
2282+
2283+
if ($yv_utils->has_entries($info)) {
2284+
if (not play_videos($info->{results}{items})) {
2285+
return;
2286+
}
2287+
}
2288+
else {
2289+
warn_cant_do('get info for', @ids);
22842290
}
2285-
}
2286-
else {
2287-
warn_cant_do('get info for', @ids);
22882291
}
22892292

22902293
return 1;
@@ -3633,8 +3636,18 @@ sub print_playlists {
36333636
# :pp=i
36343637
elsif ($opt =~ /^pp${digit_or_equal_re}(.*)/) {
36353638
if (my @ids = get_valid_numbers($#{$playlists}, $1)) {
3636-
my $arg = "--pp=" . join(q{,}, map { $yv_utils->get_playlist_id($_) } @{$playlists}[@ids]);
3637-
apply_input_arguments([$arg]);
3639+
foreach my $playlist (@{$playlists}[@ids]) {
3640+
3641+
my $id = $yv_utils->get_playlist_id($playlist);
3642+
3643+
if ($id =~ m{^/}) { # local playlist
3644+
my @ids = reverse $yv_utils->read_lines_from_file($id);
3645+
apply_input_arguments(["--id=" . join(",", @ids)]) if @ids;
3646+
}
3647+
else {
3648+
apply_input_arguments(["--pp=$id"]);
3649+
}
3650+
}
36383651
}
36393652
else {
36403653
warn_no_thing_selected('playlist');
@@ -3655,7 +3668,7 @@ sub print_playlists {
36553668
return $id;
36563669
}
36573670

3658-
if ($id =~ m{^/}) {
3671+
if ($id =~ m{^/}) { # local playlist
36593672
print_local_playlist($id);
36603673
}
36613674
else {

0 commit comments

Comments
 (0)