aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor/animeondemand.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2017-09-11 04:14:54 +0700
committerSergey M․ <dstftw@gmail.com>2017-09-11 04:23:42 +0700
commit2709d9fa28155f7abc84d3b57ce4491391d185ab (patch)
treee45c769ff763d6731da27d56698804834b05a857 /youtube_dl/extractor/animeondemand.py
parent7dacceae75d3c513f442cfd20d778a31bb35d3d6 (diff)
downloadyoutube-dl-2709d9fa28155f7abc84d3b57ce4491391d185ab.tar.xz
[animeondemand] Add support for flash videos (closes #9944)
Diffstat (limited to 'youtube_dl/extractor/animeondemand.py')
-rw-r--r--youtube_dl/extractor/animeondemand.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/youtube_dl/extractor/animeondemand.py b/youtube_dl/extractor/animeondemand.py
index 9e28f2579..c22530778 100644
--- a/youtube_dl/extractor/animeondemand.py
+++ b/youtube_dl/extractor/animeondemand.py
@@ -46,6 +46,10 @@ class AnimeOnDemandIE(InfoExtractor):
# Full length film, non-series, ger/jap, Dub/OmU, account required
'url': 'https://www.anime-on-demand.de/anime/185',
'only_matching': True,
+ }, {
+ # Flash videos
+ 'url': 'https://www.anime-on-demand.de/anime/12',
+ 'only_matching': True,
}]
def _login(self):
@@ -120,10 +124,11 @@ class AnimeOnDemandIE(InfoExtractor):
formats = []
for input_ in re.findall(
- r'<input[^>]+class=["\'].*?streamstarter_html5[^>]+>', html):
+ r'<input[^>]+class=["\'].*?streamstarter[^>]+>', html):
attributes = extract_attributes(input_)
+ title = attributes.get('data-dialog-header')
playlist_urls = []
- for playlist_key in ('data-playlist', 'data-otherplaylist'):
+ for playlist_key in ('data-playlist', 'data-otherplaylist', 'data-stream'):
playlist_url = attributes.get(playlist_key)
if isinstance(playlist_url, compat_str) and re.match(
r'/?[\da-zA-Z]+', playlist_url):
@@ -160,6 +165,23 @@ class AnimeOnDemandIE(InfoExtractor):
fatal=False)
if not playlist:
continue
+ stream_url = playlist.get('streamurl')
+ if stream_url:
+ rtmp = re.search(
+ r'^(?P<url>rtmpe?://(?P<host>[^/]+)/(?P<app>.+/))(?P<playpath>mp[34]:.+)',
+ stream_url)
+ if rtmp:
+ formats.append({
+ 'url': rtmp.group('url'),
+ 'app': rtmp.group('app'),
+ 'play_path': rtmp.group('playpath'),
+ 'page_url': url,
+ 'player_url': 'https://www.anime-on-demand.de/assets/jwplayer.flash-55abfb34080700304d49125ce9ffb4a6.swf',
+ 'rtmp_real_time': True,
+ 'format_id': 'rtmp',
+ 'ext': 'flv',
+ })
+ continue
start_video = playlist.get('startvideo', 0)
playlist = playlist.get('playlist')
if not playlist or not isinstance(playlist, list):