aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNigel Taylor <njtaylor0101@gmail.com>2013-02-21 19:06:07 +0000
committerNigel Taylor <njtaylor0101@gmail.com>2013-02-21 19:06:07 +0000
commit94d9bb146579182c7cdf0aa0f301ab3d736aaeba (patch)
treedb5931e5498e159c5e5c55fab6578e0149402959
parent3d3a504cc11685f87e4c6e70e2afb9b2a36b4bf4 (diff)
downloadget-flash-videos-94d9bb146579182c7cdf0aa0f301ab3d736aaeba.tar.gz
Add subtitle support to itv requires update Utils
-rw-r--r--lib/FlashVideo/Site/Itv.pm37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/FlashVideo/Site/Itv.pm b/lib/FlashVideo/Site/Itv.pm
index 01a9eb5..5242302 100644
--- a/lib/FlashVideo/Site/Itv.pm
+++ b/lib/FlashVideo/Site/Itv.pm
@@ -4,6 +4,7 @@ package FlashVideo::Site::Itv;
use strict;
use FlashVideo::Utils;
use HTML::Entities;
+use Encode;
our $VERSION = '0.02';
sub Version() { $VERSION;}
@@ -160,6 +161,40 @@ EOF
my($flv) = $playpath =~ m{/([^/]+)$};
$flv =~ s/\.mp4$/.flv/;
+ # Get subtitles if necessary.
+ if ($prefs->{subtitles}) {
+ info "Subtitle Fetching";
+ if ($video =~ m%<URL><!\[CDATA\[(http://subtitles\.[^\]]*)\]\]></URL>%) {
+ my $subtitles_url = $1;
+ info "Subtitle URL $subtitles_url";
+ $browser->get($subtitles_url);
+
+ if (!$browser->success) {
+ info "Couldn't download Itv subtitles: " . $browser->response->status_line;
+ }
+ my $subtitles_ttml = $flv;
+ my $subtext = $browser->content;
+ my $istart = index $subtext, "<";
+ $subtext = substr($subtext, $istart) unless ($istart < 0);
+ $subtext =~ s/UTF-16/utf8/;
+
+ $subtitles_ttml =~ s/\.flv$/\.ttml/;
+
+ unlink($subtitles_ttml);
+ open my $fh, ">", $subtitles_ttml;
+ binmode $fh;
+ print $fh $subtext;
+ close $fh;
+
+ my $subtitles_file = $flv;
+ $subtitles_file =~ s/\.flv$/\.srt/;
+
+ convert_ttml_subtitles_to_srt($browser->content, $subtitles_file);
+
+ info "Saved subtitles to $subtitles_file";
+ }
+ }
+
return {
rtmp => $rtmp,
playpath => $playpath,
@@ -168,4 +203,6 @@ EOF
};
}
+
+
1;