あけおめ

素敵な feed を吐くようになったので書きなおした。
ffmpeg はキー入力をチェックしているのでバックグラウンドで動かせないみたい。無効にするオプションを追加すればいいのに。
なので、強引に

yes | ffmpeg -i ...

で回避した。これで寝ている間にサーバで(ry。

#!/usr/bin/perl
use strict;
use warnings;
use utf8;

use Readonly;
use URI;
use XML::Feed;
use LWP::UserAgent;

Readonly my $VIDEOSDIR => 'videos';

binmode STDOUT, ':utf8';

my $newfeed = XML::Feed->parse(
  URI->new('http://pulpsite.net/youravhost/rss_enclosure'))
    or die XML::Feed->errstr;

my $ua = LWP::UserAgent->new(keep_alive => 1);
mkdir $VIDEOSDIR
  unless -d $VIDEOSDIR;

foreach my $entry ($newfeed->entries) {
  my ($file, $actress) =
    $entry->title =~ /(.+)\..+\s-\s(.+)と思われるYourAVHost/;
  my $dir = "$VIDEOSDIR/$actress";
  mkdir $dir
    unless -d $dir;

  my $flv = "$dir/$file.flv";
  my $mp4 = "$dir/$file.mp4";
  next
    if -f $mp4;

  print $mp4, "\n";
  my $resp = $ua->request(
    HTTP::Request->new(GET => $entry->{entry}->{enclosure}->{url}), $flv);
  $resp->is_success
    or die $resp->status_line;

  system "yes | ffmpeg -sameq -i $flv $mp4";
  unlink $flv;
}