为什么perl脚本得到';429请求太多';在web浏览器加载网页时从YouTube服务器

为什么perl脚本得到';429请求太多';在web浏览器加载网页时从YouTube服务器,perl,youtube,rate-limiting,Perl,Youtube,Rate Limiting,YouTube返回perl脚本,而同一台计算机上的任何web浏览器都会正确下载YouTube网页 搜索YouTube“速率限制”超时失败 关于类似性质的问题有很多参考文献 此时此刻,我感到困惑,为什么web浏览器工作正常,但perl脚本即使检索一个网页也会收到“429太多请求” 24小时前,我对存储在DB文件中的书签视频进行了大量“验证”。到目前为止,perl脚本从YouTube服务器得到的答案仍然是请求太多 在perl脚本中欺骗代理的尝试没有改变结果 $ua->agent('Mozill

YouTube返回perl脚本,而同一台计算机上的任何web浏览器都会正确下载YouTube网页

搜索YouTube“速率限制”超时失败

关于类似性质的问题有很多参考文献

此时此刻,我感到困惑,为什么web浏览器工作正常,但perl脚本即使检索一个网页也会收到“429太多请求”

24小时前,我对存储在DB文件中的书签视频进行了大量“验证”。到目前为止,perl脚本从YouTube服务器得到的答案仍然是请求太多

在perl脚本中欺骗代理的尝试没有改变结果

$ua->agent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36');
为了更好地理解这个问题,欢迎提供任何线索

是YouTube服务器上针对DDOS攻击的速率限制超时值(如所述:3600)的某个地方有描述,很高兴能参考此信息

用于捕获带有YouTube播放列表url的网页的代码片段

use strict;
use warnings;
use feature 'say';

use HTTP::Tiny;
use Getopt::Long qw(GetOptions);

use Data::Dumper;

my %opt;

$opt{url} = 'https://www.youtube.com/watch?v=XdTdu1MxDpE&list=UUgDFVgTnw_W5DftgN2NQApQ';

GetOptions(
        'url|u=s'   => \$opt{url},
        'debug|d'   => \$opt{debug},
        'help|?'    => \$opt{help},
        'man'       => \$opt{man}
) or pod2usage(2);

pod2usage(1) if $opt{help};
pod2usage(-exitval => 0, -verbose => 2) if $opt{man};

my $response = HTTP::Tiny->new->get($opt{url});

say Dumper($response) if $opt{debug};

if( $response->{success} ) {
    say $response->{content};
} else {
    say "Failed: $response->{status} $response->{reason}";
}

__END__

=head1 NAME

.......
输出

Failed: 429 Too Many Requests

没有人知道YouTube是如何处理这个问题的,但是整个网络可能会被封锁,所以其他人的行为会影响你的能力。如果您使用的是共享主机或VPS,则另一个IP块中的代理可能会有所帮助。阅读那些关于youtube dl的报道,看看有很多建议

作为一项非常受欢迎的服务,他们可能会不断地改变秘密规则,以跟上各种攻击。迷信还包括:

  • 处理cookie,可能从交互式浏览器添加已解决验证码的cookie
  • 不要使用IPv6
  • 每秒发出少于一个请求
  • 不要使用可疑的用户代理字符串
  • 使用