# $Id: PornHub 11662 2010-07-13 01:31:48Z sparky $
# Video::PornHub - Video getter plugin for rsget.pl
#
# 2009-2010 (c) Przemysław Iskra <sparky@pld-linux.org>
#		This program is free software,
# you may distribute it under GPL v2 or newer.

name: PornHub
short: V:PornHub
web: "http://www.pornhub.com/"
uri: qr{pornhub\.com/view_video.php\?viewkey=}
slots: max
status: OK 2010-07-13

pre:
	my $amf_pre = pack "C*", (
		0x00, 0x03, 0x00, 0x00,  0x00, 0x01, 0x00, 0x0c,
		0x70, 0x6c, 0x61, 0x79,  0x65, 0x72, 0x43, 0x6f,
		0x6e, 0x66, 0x69, 0x67,  0x00, 0x02, 0x2f, 0x31,
		0x00, 0x00, 0x00, 0x44,  0x0a, 0x00, 0x00, 0x00,
		0x03, 0x02, 0x00 );
	my $amf_post = ( pack "C*", (
		0x02, 0x00, 0x02, 0x2d,  0x31, 0x02, 0x00, 0x20 ) )
		. "add299463d4410c6d1b1c418868225f7";

start:
	GET( $-{_uri} );

	! m{<div class="video-title-nf".*><h1>\s*(.*?)\s*</h1></div>}s;
	$-{fname} = de_ml( $1 );
	$-{fname} =~ s{/}{_}g;
	$-{fname} .= ".flv";

	INFO( name => $-{fname}, quality => "flv"  );

	! m{addVariable\("quality","-1"\);};
	! m{addVariable\("vkey","(.*?)"\);};
	my $key = $1;
	my $post = $amf_pre . ( chr length $key ) . $key . $amf_post;

	GET( "/gateway.php",
		post => $post,
		headers => [ "Content-Type: application/x-amf" ],
	);

	my $f = index $_, "flv_url";
	my $len = ord substr $_, $f + 9, 1;
	my $file_uri = substr $_, $f + 10, $len;
	DOWNLOAD( $file_uri, fname => $-{fname} );

# vim: filetype=perl:ts=4:sw=4
