X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=videosite%2FYouTubeGrabber.pm;h=ca8f49bca57aefbf296e6e822b33b2fae1a4307c;hb=b211d3075c2cf9856a7440b90ba628a8191a095e;hp=a440febe2b259cfee3b8335458ea510545bf95d2;hpb=8f82d425fa17990e24c78232e69b20f07e386ef5;p=videosite.git diff --git a/videosite/YouTubeGrabber.pm b/videosite/YouTubeGrabber.pm index a440feb..ca8f49b 100644 --- a/videosite/YouTubeGrabber.pm +++ b/videosite/YouTubeGrabber.pm @@ -28,18 +28,25 @@ my %preflist = ( my %videoformats = ( # Container/Video codec/Audio codec/Resolution 5 => 'FLV/Sorenson/MP3/240p', - 18 => 'MP4/H264/AAC/360p', # isommp42 - 22 => 'MP4/H264/AAC/720p', # isommp42 - 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', - 82 => 'MP4/H264/AAC/360p', # isomavc1mp42 - 84 => 'MP4/H264/AAC/720p', # isomavc1mp42 + 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', ); @@ -48,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_]+))', @@ -114,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})); @@ -195,7 +203,6 @@ sub _parse_by_scrape { $metadata->{'SOURCE'} = $self->{'NAME'}; $metadata->{'TITLE'} = undef; $metadata->{'DLURL'} = undef; - $metadata->{'COOKIE'} = undef; $preflist = $preflist{$quality}; @@ -212,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; @@ -510,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; } }