grab interface

Digital Recording
noeffred
Neugieriger
Neugieriger
Beiträge: 6
Registriert: Dienstag 5. März 2002, 20:24

grab interface

Beitrag von noeffred »

http://www.noeffred.org/grabi.py

das python skript ins gleiche verzeichnis wie grab legen, das einzige, was man dann eingeben muss ist die ip adresse von der box und der aktuelle stream sollte aufgenommen werden.

es wird die neutrino http api verwendet um alle daten von der box zu holen

leider konnte ich das ding noch nicht sonderlich viel testen... wenns also nicht geht, gerne mail an mich... [/url]
Xpomul
Einsteiger
Einsteiger
Beiträge: 130
Registriert: Donnerstag 28. Februar 2002, 09:13

Beitrag von Xpomul »

Hm, 404

Würds mir gerne mal anschauen, da ich python nicht kenne und sehen wollte wie Du das machst.
Ich selbst hab ein Script in Perl, was auch noch nach Wunsch umschaltet und zusätzliche Parameter annimmt.
Will später das ganze dann später auch cgi-fähig machen. Damit man es per Webbrowser über EPG programmieren kann.

Schaust Du mal nach, was da nicht stimmt?
noeffred
Neugieriger
Neugieriger
Beiträge: 6
Registriert: Dienstag 5. März 2002, 20:24

RE: grab interface

Beitrag von noeffred »

geht scho... falsches verzeichnis erwischt..
Xpomul
Einsteiger
Einsteiger
Beiträge: 130
Registriert: Donnerstag 28. Februar 2002, 09:13

Beitrag von Xpomul »

Danke,

da ich im Moment aus welchen Gründen auch immer nichts auf meinen Webspace hoch ftpen kann, hier mein Script:

Code: Alles auswählen

#!/usr/bin/perl

use LWP::Simple;
use Getopt::Long;

my $version = 0.9;
my $path = '/volmisc01/filme/';
my $host = 'dbox.morticah.net';
my $dbox = "http://${host}/";
my $zapto = "${dbox}control/zapto?";
my $sectionsdstop = "${zapto}stopsectionsd";
my $sectionsdstop = "${zapto}stopsectionsd";
my $sectionsdstart = "${zapto}startsectionsd";
my $getpids = "${zapto}getpids";
my $grab = '/usr/local/bin/grab';

$paras = &GetOptions("version", \$version_p,
                     "help", \$help_p,
                     "c:s" => \$channelid_p,
                     "m:s" => \$minutes_p,
                     "s:s" => \$size_p,
                     "o:s" => \$output_p);

print " $0 Version $version\n" and exit 0 if $version_p ;
usage() if not @ARGV;
usage() if $help_p;

sub usage {
        print <<"EOUSAGE";
usage:  $0 [options] FILENAME
          where options may be:
            --version                   ; prints version
            --help                      ; prints this text
            -c CHANNELID                ; zapto channel (default no zap)
            -m MINUTES                  ; how many minutes to record    
                                          (default no limit)
            -s FILESIZE                 ; max MB per .mpg file (default 2000MB)
            
            FILENAME                    ; name of .mpg file day and hour will
                                          be added (mandatory)
            other args will be discarded

EOUSAGE
        exit 1;
}

sub pswitch {
        get("${zapto}${channelid_p}") if $channelid_p;
        @pids = split (/\n/, get($getpids));
        $vpid = sprintf "%x" , $pids[0];
        $apid = sprintf "%x" , $pids[1];
}

sub startrec {
        get("$sectionsdstop");
        sleep 3;
        system "$grab -b 32 $file -p $vpid $apid $size -host $host $minutes";
        sleep 3;
        get("$sectionsdstart");
}

$minutes = "-m $minutes_p" if $minutes_p;
$size = "-s 2000";
$size = "-s $size_p" if $size_p;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$istst)=localtime;
$file = "-o ${path}${ARGV[0]}-$hour-$mday-";

pswitch();
startrec();
Wie gesagt, wird noch erweitert[/code]