X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=videosite%2FYouTubeGrabber.pm;h=ca8f49bca57aefbf296e6e822b33b2fae1a4307c;hb=b211d3075c2cf9856a7440b90ba628a8191a095e;hp=1a331d1809ec4b1abe2479c43ddfd9d7f79f16c6;hpb=7c348bce55d63b4a3b9798dd29603e0a84996e6f;p=videosite.git diff --git a/videosite/YouTubeGrabber.pm b/videosite/YouTubeGrabber.pm index 1a331d1..ca8f49b 100644 --- a/videosite/YouTubeGrabber.pm +++ b/videosite/YouTubeGrabber.pm @@ -28,15 +28,26 @@ my %preflist = ( my %videoformats = ( # Container/Video codec/Audio codec/Resolution 5 => 'FLV/Sorenson/MP3/240p', - 18 => 'MP4/H264/AAC/360p', - 22 => 'MP4/H264/AAC/720p', - 34 => 'FLV/H264/AAC/360p', - 35 => 'FLV/H264/AAC/480p', - 37 => 'MP4/H264/AAC/1080p', - 38 => 'MP4/H264/AAC/3072p', - 43 => 'WebM/VP8/Vorbis/360p', + 6 => 'FLV/Sorenson/MP3/270p', + 13 => '3GP/MPEG4-Visual/144p', # 0.5MBit + 17 => '3GP/MPEG4-Visual/144p', # 2MBit + 18 => 'MP4/H264/AAC/360p', # isommp42, Baseline + 22 => 'MP4/H264/AAC/720p', # isommp42, High + 34 => 'FLV/H264/AAC/360p', # Main + 35 => 'FLV/H264/AAC/480p', # Main + 37 => 'MP4/H264/AAC/1080p', # High + 38 => 'MP4/H264/AAC/3072p', # High + 43 => 'WebM/VP8/Vorbis/360p', 44 => 'WebM/VP8/Vorbis/480p', 45 => 'WebM/VP8/Vorbis/720p', + 46 => 'WebM/VP8/Vorbis/1080p/3D', # effective 540p + 82 => 'MP4/H264/AAC/360p/3D', # isomavc1mp42 + 83 => 'MP4/H264/AAC/240p/3D', # isomavc1mp42 + 84 => 'MP4/H264/AAC/720p/3D', # isomavc1mp42 + 85 => 'MP4/H264/AAC/1080p/3D', # isomavc1mp42, effective 540p + 100 => 'WebM/VP8/Vorbis/360p/3D', + 101 => 'WebM/VP8/Vorbis/480p/3D', + 102 => 'WebM/VP8/Vorbis/720p/3D', ); sub new { @@ -44,6 +55,8 @@ sub new { my $self = $class->SUPER::new(); $self->{'NAME'} = 'youtube'; + $self->{_SELFTESTURL} = 'http://www.youtube.com/watch?v=dMH0bHeiRNg'; + $self->{_SELFTESTTITLE} = 'Evolution of Dance - By Judson Laipply'; $self->{'PATTERNS'} = ['(https?://(?:[-a-zA-Z0-9_.]+\.)*youtube\.(?:com|de|co.uk)/watch(?:_popup)?\?(?:.+=.+&)*v=([-a-zA-Z0-9_]+))', '(https?://(?:[-a-zA-Z0-9_.]+\.)*youtube\.(?:com|de|co.uk)/watch\#\!v=([-a-zA-Z0-9_]+))', '(https?://(?:[-a-zA-Z0-9_.]+\.)*youtube\.(?:com|de|co.uk)/v/([-a-zA-Z0-9_]+))', @@ -110,7 +123,6 @@ sub _parse_by_video_info { $metadata->{'SOURCE'} = $self->{'NAME'}; $metadata->{'TITLE'} = undef; $metadata->{'DLURL'} = undef; - $metadata->{'COOKIE'} = undef; $preflist = $preflist{$quality}; $self->debug("Quality: %s, preflist: [%s]", $quality, join(", ", @{$preflist})); @@ -191,7 +203,6 @@ sub _parse_by_scrape { $metadata->{'SOURCE'} = $self->{'NAME'}; $metadata->{'TITLE'} = undef; $metadata->{'DLURL'} = undef; - $metadata->{'COOKIE'} = undef; $preflist = $preflist{$quality}; @@ -208,7 +219,6 @@ sub _parse_by_scrape { $self->debug('Video requires age verification'); my @logindata = $self->__login($videourl, $ua); $r = $logindata[0]; - $metadata->{'COOKIE'} = $logindata[1]; unless(defined($r)) { $self->error('Could not log into YouTube'); return undef; @@ -506,6 +516,11 @@ sub __pick_url { if (exists($urls->{$_})) { $self->debug("Selected URL with quality level %s", $_); $metadata->{'DLURL'} = $urls->{$_}; + if (exists($videoformats{$_})) { + $metadata->{'FORMAT'} = $videoformats{$_}; + } else { + $metadata->{'FORMAT'} = 'unknown'; + } last; } }