The truth is rarely pure and never simple

save.tv – Downloadlinks

save.tv bietet eine komfortable Alternative zum herkömmlichen Videorekorder. Die früheren Probleme mit einer asynchronen Tonspur bzw. überlasteten Servern scheinen mittlerweile behoben. Mit dem Dienst bin ich durchaus zufrieden – bis auf eine Kleinigkeit: der herstellerseitig entwickelte und angebotene Downloadmanager, der etwas komfortableres Herunterladen ermöglichen soll, steht für Linux nicht zur Verfügung. Um zumindest die Links auf die Videodateien leicht auf der Konsole zu erhalten, habe ich ein kleines Perl-Script geschrieben, das WWW::Mechanize dazu nutzt, die Daten zu sammeln. In der Datei muss an den gekennzeichneten Stellen noch der Benutzername und das Passwort eingetragen werden – den Rest erledigt perl. Das nachstehende Skript, das kaum eine Fehlerkorrektur vornimmt, erwartet keine Parameter. Vielleicht hilft es ja dem ein oder anderen.

[perl]#!/usr/bin/perl

use strict;
use warnings;
use WWW::Mechanize;
use Data::Dumper;
local $| = 1;
my $mech = WWW::Mechanize->new();

$mech->agent_alias( ‘Linux Mozilla’ );

print “Anmeldung… “;

$mech->get( ‘http://www.save.tv/STV/S/misc/home.cfm’ );

my $login = $mech->form_name( “LoginForm” );
$login->value( ‘sUsername’, ‘Hier den Benutzernamen eintragen.’ );
$login->value( ‘sPassword’, ‘Hier das Passwort eintragen.’ );
$mech->submit;

if ($mech->success && $mech->uri =~ /miscShowFrameSet/ )
{
print “erfolgreich.\n”;
} else {
print “fehlgeschlagen.\n”;
exit 1;
}

print “Suche Links… “;
$mech->follow_link( ‘url_regex’, qr/miscShowHeadFrame/ );
$mech->follow_link( ‘url_regex’, qr/usShowVideoArchive/ );
my @links = $mech->find_all_links( ‘url_regex’, qr/reShowDownload/ );
print scalar(@links) . ” gefunden.\n”;
foreach (@links)
{
$mech->get ($_->url);
$mech->find_link( text_regex => qr/download/i )->url =~ /(http:\/\/.*)’/;
print $1 . “\n”;
}[/perl]