#!/usr/bin/perl -- # # ytd.pl -- youtube downloader use strict; use warnings; use LWP::UserAgent; use URI::Escape; die "Usage: ytd.pl VideoURL\n" unless @ARGV; my $videourl = shift; my $ua = LWP::UserAgent->new; my $response = $ua->get($videourl); my ($outflv) = $response->content =~ m{<meta name="title" content="([^"]+)">}; die "Can't find video title\n" unless $outflv; while( -e "$outflv.flv" ) { $outflv = $outflv =~ /_(\d+)$/ ? "${`}_" . ($1+1) : "${outflv}_1"; } my $link = [ map { map {split '\|'} split ',', uri_unescape($_) } $response->content =~ m{fmt_url_map=([^&]+)} ]->[1]; die "Can't find video link\n" unless $link; $| = 1; print "Saving video to $outflv.flv...\n"; my ($received_size, $i) = (0, 0); open my $fh, '>' , "$outflv.flv" or die $!; binmode $fh; $ua->get($link, ':content_cb' => sub { my ($data, $response) = @_; $received_size += length $data; print {$fh} $data; printf "\r" . [qw(- \\ | /)]->[++$i % 4] . ' %d%% ', 100 * $received_size / ($response->header('Content-Length') || 1); }); print "\nDone.\n";
| | what_me ( |
Youtube downloader
Понадобилось, вдруг, скачать несколько роликов с ютуба, оказалось нечем. Мой старый не работает, Злобинский тоже не работает, youtube-dl из убунтовского репозитория тоже не работает. Пришлось делать новый.
December 30 2010, 21:55:44 UTC 1 year ago
December 30 2010, 22:28:12 UTC 1 year ago
January 5 2011, 15:50:19 UTC 1 year ago
January 9 2011, 14:16:58 UTC 1 year ago
Просто добавьте "ss" перед адресом ссылки и скачивайте.
Например если ролик:
http://www.youtube.com/watch?v=AkPT2TOq
надо сделать
www.ssyoutube.com/watch?v=AkPT2TOqSjI
January 9 2011, 16:59:51 UTC 1 year ago
Спасибо, просто в течении 10 минут ссылка на этот сайт мне попасться не успела.
January 9 2011, 17:30:13 UTC 1 year ago