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

Bug#606765: marked as done (possible unblock: clive/2.2.13-4)



Your message dated Mon, 13 Dec 2010 18:43:14 +0000
with message-id <1292265794.30247.118.camel@hathi.jungle.funky-badger.org>
and subject line Re: Bug#606765: possible unblock: clive/2.2.13-4
has caused the Debian Bug report #606765,
regarding possible unblock: clive/2.2.13-4
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
606765: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=606765
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Dear Release Team

Again changes in youtube broke clive, this is [1]. Upstream alredy
provided a preliminary fix, but it is not yet relased [2]. I attach
patch against current 2.2.13-3 in unstable and testing with upstream
fixes to Youtube.pm.

Would you accept this fix? I however would like to wait for upstreams
defintive fix for it, but I do not expect to have much more change as
it is now.

 [1] http://bugs.debian.org/606540
 [2] http://sourceforge.net/apps/trac/clive/ticket/1

Bests
Salvatore

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
diff --git a/lib/clive/Host/Youtube.pm b/lib/clive/Host/Youtube.pm
index e922d9a..290d230 100644
--- 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 @@ package clive::Host::Youtube;
 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 ($url);
 
-        $$props->video_id( $tmp->{id} );
-        $$props->video_link($xurl);
-
-        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;

--- End Message ---
--- Begin Message ---
On Sun, 2010-12-12 at 23:07 +0100, Salvatore Bonaccorso wrote:
> Hi Adam
> 
> On Sun, Dec 12, 2010 at 03:44:57PM +0000, Adam D. Barratt wrote:
> > On Sun, 2010-12-12 at 10:41 +0100, Salvatore Bonaccorso wrote:
> > > 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.
> > 
> > Please go ahead, and let us know once the package has been updated.
> 
> Thanks! I have uploaded it, and now entered the archive.

Unblocked; thanks.

Regards,

Adam



--- End Message ---

Reply to: