Author: sparky
Date: Tue Oct  6 03:31:39 2009
New Revision: 10697

Added:
   toys/rsget.pl/Video/RedTube
Log:
- new, response for public demand :-P


Added: toys/rsget.pl/Video/RedTube
==============================================================================
--- (empty file)
+++ toys/rsget.pl/Video/RedTube Tue Oct  6 03:31:39 2009
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+
+name: RedTube
+short: V:RedTube
+uri: qr{redtube\.com/}
+slots: 8
+status: OK 2009-10-05
+
+start:
+       GET( $-{_uri} );
+
+       ! m{<h1 class="videoTitle">(.*?)</h1>};
+       my $fname = de_ml( $1 );
+       $fname =~ s{/}{_}g;
+       $fname .= ".flv";
+
+       ! m{so\.addParam\("flashvars","(.*?)"};
+       my %o = map /^(.*?)=(.*)$/, split /\&(?:amp;)?/, $1;
+
+       INFO( name => $fname, quality => "$o{width}x$o{height}" );
+
+       my $file_uri = 
"http://dl.redtube.com/467f9bca32b1989277b48582944f325afa3374/";
+               . id_to_file( $o{id} ) . $o{hash_flv};
+
+       DOWNLOAD( $file_uri, fname => $fname );
+
+perl:
+
+       # simplified version of what may be found in clive
+sub id_to_file
+{
+       my $id = shift;
+       my @id = split //, sprintf '%08d', $id;
+
+       my $hash = 0;
+       $hash += $id[ $_ ] * $_ foreach (1..7);
+
+       my $add = 0;
+       $add += $_ foreach split //, "$hash";
+
+       my @map = unpack( 'C*', 'R15342O7K9HBCDXFGAIJ8LMZ6PQ0STUVWEYN' );
+       my @add = (3, 0, 2, 1, 6, 5, 0, 7, 4);
+       my @d_at = (4, 0, 1, 3, 6, 2, 0, 5, 7);
+       my @chars = map { $map[ $id[ $d_at[ $_ ] ] + $add + $add[ $_ ] ] } 
(0..8);
+       $chars[ 1 ] = 48 + $add % 10;
+       $chars[ 6 ] = 48 + $add / 10;
+
+       return sprintf( '%07d/%s.flv', $id / 1000, pack( 'C*', @chars ) );
+}
+
+# vim:ts=4:sw=4
_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to