[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#606765: possible unblock: clive/2.2.13-4



Hi Release Team

Now final fix was released by upstream. I have prepared 2.2.13-4
containing the attached changes in respect to 2.2.13-3 currently in
squeeze. I would like to upload it to unstable.

It fixes #606540, by changes done in youtube.com again.

Thanks for your work towards releasing Squeeze!

Bests
Salvatore
diff -Nru clive-2.2.13/debian/changelog clive-2.2.13/debian/changelog
--- clive-2.2.13/debian/changelog	2010-09-04 15:12:15.000000000 +0200
+++ clive-2.2.13/debian/changelog	2010-12-12 10:23:04.000000000 +0100
@@ -1,3 +1,11 @@
+clive (2.2.13-4) unstable; urgency=low
+
+  * Change my email address.
+  * Handle changes in youtube.com (Closes: #606540)
+    + new patch: fix-606540-youtube.patch 
+
+ -- Salvatore Bonaccorso <carnil@debian.org>  Sun, 12 Dec 2010 10:06:08 +0100
+
 clive (2.2.13-3) unstable; urgency=low
 
   * Handle changed URLs on vimeo.com. (Closes: #595486)
diff -Nru clive-2.2.13/debian/control clive-2.2.13/debian/control
--- clive-2.2.13/debian/control	2010-09-04 15:12:15.000000000 +0200
+++ clive-2.2.13/debian/control	2010-12-12 10:23:04.000000000 +0100
@@ -4,7 +4,7 @@
 Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
 Uploaders: Damyan Ivanov <dmn@debian.org>, Ryan Niebur <ryanryan52@gmail.com>,
  Ansgar Burchardt <ansgar@43-1.org>,
- Salvatore Bonaccorso <salvatore.bonaccorso@gmail.com>
+ Salvatore Bonaccorso <carnil@debian.org>
 Build-Depends: debhelper (>= 7)
 Build-Depends-Indep: perl,
  libclass-singleton-perl (>= 1.4),
diff -Nru clive-2.2.13/debian/patches/fix-606540-youtube.patch clive-2.2.13/debian/patches/fix-606540-youtube.patch
--- clive-2.2.13/debian/patches/fix-606540-youtube.patch	1970-01-01 01:00:00.000000000 +0100
+++ clive-2.2.13/debian/patches/fix-606540-youtube.patch	2010-12-12 10:23:04.000000000 +0100
@@ -0,0 +1,170 @@
+Description: Fix broken clive due to youtube changes.
+Origin: vendor
+Bug: http://sourceforge.net/apps/trac/clive/ticket/1 
+Bug-Debian: http://bugs.debian.org/606540
+Forwarded: not-needed
+Author: Salvatore Bonaccorso <carnil@debian.org>
+Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
+Last-Update: 2010-12-12
+
+--- a/lib/clive/Host/Youtube.pm
++++ b/lib/clive/Host/Youtube.pm
+@@ -2,7 +2,7 @@
+ ###########################################################################
+ # clive, command line video extraction utility.
+ #
+-# Copyright 2009 Toni Gundogdu.
++# Copyright 2009,2010 Toni Gundogdu.
+ #
+ # This file is part of clive.
+ #
+@@ -24,74 +24,106 @@
+ use warnings;
+ use strict;
+ 
+-# fmt22 = HD    [1280x720]
+-# fmt35 = HQ     [640x380]
+-# fmt17 = 3gp    [176x144]
+-# fmt18 = mp4    [480x360]
+-# fmt34 = flv    [320x180] (quality reportedly varies)
+-
+-# If --format is unused, clive defaults to whatever youtube
+-# defaults to: we do not append the "&fmt=" to the video link.
+-
+-sub new {
+-    return bless( {}, shift );
+-}
++sub new { return bless ({}, shift); }
+ 
+ sub parsePage {
+-    my ( $self, $content, $props ) = @_;
++    my ($self, $content, $props) = @_;
+ 
+-    $$props->video_host("youtube");
++    $$props->video_host ("youtube");
+ 
+     my %re = (
+         id => qr|&video_id=(.*?)&|,
+-        t  => qr|&t=(.*?)&|,
++        fmt_url_map => qr|fmt_url_map=(.*?)&|,
+     );
+ 
+     my $tmp;
+-    if ( clive::Util::matchRegExps( \%re, \$tmp, $content ) == 0 ) {
++    if (clive::Util::matchRegExps (\%re, \$tmp, $content) == 0) {
+ 
+-        require URI::Escape;
++        my $best;
++        my %h;
+ 
+-        $tmp->{t} = URI::Escape::uri_unescape($tmp->{t});
++        require URI::Escape;
+ 
+-        my $xurl
+-            = "http://youtube.com/get_video?video_id=$tmp->{id}&t=$tmp->{t}";
++        foreach (split /,/, URI::Escape::uri_unescape ($tmp->{fmt_url_map})) {
++            my ($id, $url) = split /\|/, $_;
++            $best   = $url unless $best;
++            $h{$id} = $url;
++        }
+ 
+-        $xurl .= "&asv=2"; # Should fix the http/404 issue (#58).
++        my $url;
+ 
+         my $config = clive::Config->instance->config;
+ 
+-        my $fmt;
+-
+-        if ( $config->{format} eq "best" ) {
+-            $fmt = $1
+-                if ( $$content =~ /&fmt_map=(\d+)/ && $1 ne "" );
++        if ($config->{format} eq 'best') {
++            $url = $best;
+         }
+         else {
+-            $fmt = $1
+-                if toFmt( $self, $config->{format} ) =~ /^fmt(.*)$/;
++            $url = toURL ($self, $config->{format}, \%h);
++            $url = toURL ($self, 'default', \%h)  unless $url;
+         }
+ 
+-        $xurl .= "&fmt=$fmt"
+-            if $fmt;
+-
+-        $$props->video_id( $tmp->{id} );
+-        $$props->video_link($xurl);
++        $$props->video_id ($tmp->{id});
++        $$props->video_link ($url);
+ 
+-        return (0);
++        return 0;
+     }
+-    return (1);
++
++    return 1;
++}
++
++sub toURL {
++    my ($self, $fmt, $h) = @_;
++
++    $fmt = 'flv_240p'  if $fmt eq 'default';
++    $fmt = toFmt ($self, $fmt);
++
++    foreach (keys %{$h})
++        { return $$h{$_}  if $_ eq $fmt; }
++
++    return undef;
+ }
+ 
+ sub toFmt {
+-    my ( $self, $id ) = @_;
+-    $id =~ s/hd/fmt22/;
+-    $id =~ s/hq/fmt35/;
+-    $id =~ s/mp4/fmt18/;
+-
+-    #    $id =~ s/fmt34/flv/; # Previously assumed to be the "youtube default format"
+-    $id =~ s/3gp/fmt17/;
+-    return ($id);
++    my ($self, $id) = @_;
++
++# http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs
++# $container_$maxwidth = '$fmt_id'
++
++    my %h = (
++        # flv
++        flv_240p => '5',
++        flv_360p => '34',
++        flv_480p => '35',
++        # mp4
++        mp4_360p  => '18',
++        mp4_720p  => '22',
++        mp4_1080p => '37',
++        mp4_3072p => '38',
++        # webm
++        webm_480p => '43',
++        webm_720p => '45',
++        # 3gp
++        '3gp_144p'=> '17',
++
++# For backward-compatibility only.
++        mobile    => '17',
++        sd_270p   => "18",
++        sd_360p   => "34",
++        hq_480p   => "35",
++        hd_720p   => "22",
++        hd_1080p  => "37",
++        webm_480p => "43",
++        webm_720p => "45",
++        '3gp' => "17",
++        mp4   => "18",
++        hq    => "35",
++        hd    => "22",
++    );
++
++    foreach (keys %h)
++        { return $h{$_}  if $id eq $_; }
++
++    return $id;
+ }
+ 
+ 1;
diff -Nru clive-2.2.13/debian/patches/series clive-2.2.13/debian/patches/series
--- clive-2.2.13/debian/patches/series	2010-09-04 15:12:15.000000000 +0200
+++ clive-2.2.13/debian/patches/series	2010-12-12 10:23:04.000000000 +0100
@@ -1,2 +1,3 @@
 fix-path-encoding-60.patch
 595486-vimeo.patch
+fix-606540-youtube.patch

Attachment: signature.asc
Description: Digital signature


Reply to: