/lib/Teto/Track/NicoVideo/nm.pm

http://github.com/motemen/Teto · Perl · 25 lines · 19 code · 6 blank · 0 comment · 0 complexity · 5d2dd3b2fb3b2d9b76ee8dd582b91074 MD5 · raw file

  1. package Teto::Track::NicoVideo::nm;
  2. use Mouse;
  3. extends 'Teto::Track::NicoVideo';
  4. override buildargs_from_url => sub {
  5. my ($class, $url) = @_;
  6. $url =~ m<^http://(?:\w+\.nicovideo\.jp/watch|nico\.ms)/(nm\d+)> or return undef;
  7. return { video_id => $1 };
  8. };
  9. override _play => sub {
  10. my $self = shift;
  11. my $media_url = $self->media_url or return;
  12. my $flv = $self->download_temporary($media_url => '.flv');
  13. my $mp3 = $self->temporary_filename('.mp3');
  14. $self->run_command([ 'swfextract', $flv, '-m', '-o', $mp3 ]);
  15. $self->send_file_to_buffer($mp3);
  16. };
  17. __PACKAGE__->meta->make_immutable;
  18. no Mouse;
  19. 1;