diff options
author | Nigel Taylor <njtaylor0101@gmail.com> | 2013-02-21 19:06:07 +0000 |
---|---|---|
committer | Nigel Taylor <njtaylor0101@gmail.com> | 2013-02-21 19:06:07 +0000 |
commit | 94d9bb146579182c7cdf0aa0f301ab3d736aaeba (patch) | |
tree | db5931e5498e159c5e5c55fab6578e0149402959 | |
parent | 3d3a504cc11685f87e4c6e70e2afb9b2a36b4bf4 (diff) | |
download | get-flash-videos-94d9bb146579182c7cdf0aa0f301ab3d736aaeba.tar.gz |
Add subtitle support to itv requires update Utils
-rw-r--r-- | lib/FlashVideo/Site/Itv.pm | 37 |
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; |