我正在尝试下载 YouTube 视频,我发现有几种软件和扩展可以完成这项工作,但我想知道是否有可能在使用网络浏览器流式传输视频时无需任何软件和扩展即可下载 YouTube 视频。我正在使用 Ubuntu 14.04 LTS,提前谢谢您。
答案1
无需软件扩展即可下载 YouTube 视频,因为我们使用的是 ubuntu,因此已perl
预装了可用的软件wget
。有一个 Perl 脚本Calomel 的网站我为此目的使用的,它提取视频文件的路径并将此路径作为参数传递给wget
。如果您尚未安装 wget(我怀疑您没有),您可以从存储库安装它。正如网站上所述,您只需使用视频所在网站的 url 启动脚本即可。我知道有些人不喜欢终端(这很可悲),所以我为您编写了一个小 perl 脚本。但它依赖于 perl Tk 库,因此如果您想使用它,您必须安装perl-tk
#!/usr/bin/perl -w
#Script to collect input for calomels perl script to download youtube videos
use Tk;
my @LIST = ();
if (@ARGV) {
@LIST = @ARGV;
&downloadList();
&endProg();
}
my $UserInput = undef;
my $infoText = 'This Script is dependant of wget and Tk';
our $testBlub = 0;
our $mw = MainWindow->new(-title => 'Youtube Downloader Beta');
$mw -> geometry("350x300");
$mw->Label(-text =>'Insert Youtube Link with Copy&Paste')->pack;
my $message = $mw->Entry(-width => 50,-textvariable => \$UserInput);
$message->pack(-side=>'top');
my $Button1 = $mw->Button(-text => 'Add entry to list',-command => \&addList)->pack;
my $Button2 = $mw->Button(-text => 'Start Downloading',-command => \&downloadList)->pack;
my $exitButton = $mw->Button(-text => 'Exit',-command => \&endProg)->pack;
my $infoBoard = $mw->Label(-text => $infoText) ->pack;
our $ListBoard = $mw->Label(-text => $testBlub )->pack;
$mw ->update;
MainLoop;
sub addList {
push(@LIST,$UserInput . "\n");
$testBlub = $testBlub . $UserInput . "\n";
$ListBoard -> configure(-text => $testBlub);
$mw -> update;
}
sub downloadList {
print "Event Download catched!\n";
for my $test (@LIST) {
print $test;
}
for my $Item (@LIST) {
`./youtube_wget.pl $Item`;
print "$Item is done\n";
}
@LIST = ();
}
sub endProg {
exit(0);
}
然后,您可以为其创建一个启动器,单击该启动器即可启动脚本。无论如何,我希望这能帮助您解决问题。最后我想说的是,上面的代码不是最优雅的解决方案,它只是做了它应该做的事情。