[animalplanet] Add new extractor(closes )

pull/8/head
remitamine 2015-12-31 13:36:07 +01:00
rodzic 9787c5f4c8
commit 80b8b72cb8
2 zmienionych plików z 54 dodań i 0 usunięć
youtube_dl/extractor

Wyświetl plik

@ -19,6 +19,7 @@ from .aftonbladet import AftonbladetIE
from .airmozilla import AirMozillaIE
from .aljazeera import AlJazeeraIE
from .alphaporno import AlphaPornoIE
from .animalplanet import AnimalPlanetIE
from .anitube import AnitubeIE
from .anysex import AnySexIE
from .aol import AolIE

Wyświetl plik

@ -0,0 +1,53 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
from ..compat import compat_str
from ..utils import (
parse_duration,
parse_iso8601,
)
class AnimalPlanetIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?animalplanet\.com/([^/]+/)*(?P<id>[^/\?#]+)'
_TESTS = [{
'url': 'http://www.animalplanet.com/tv-shows/i-shouldnt-be-alive/videos/dog-saves-injured-owner/',
'info_dict': {
'id': '10608',
'ext': 'mp4',
'title': 'Dog Saves Injured Owner',
'description': 'A world class athlete is put to the test when she falls into a canyon and breaks her hip. Her only companion is her dog, Taz, who is on a mission to save her!',
'upload_date': '20100410',
'timestamp': 1270857727,
'duration': 220,
},
'params': {
# m3u8 download
'skip_download': True,
}
}, {
'url': 'http://www.animalplanet.com/longfin-eels-maneaters/',
'only_matching': True,
}]
def _real_extract(self, url):
display_id = self._match_id(url)
webpage = self._download_webpage(url, display_id)
video_data = self._parse_json(self._search_regex(
r'initialVideoData\s*=\s*({.+?});',
webpage, 'initialVideoData'), display_id)['playlist'][0]
return {
'id': compat_str(video_data['id']),
'display_id': display_id,
'title': video_data['title'],
'description': video_data.get('description'),
'thumbnail': video_data.get('thumbnailURL'),
'duration': parse_duration(video_data.get('video_length')),
'timestamp': parse_iso8601(video_data.get('publishedDate')),
'formats': self._extract_m3u8_formats(
video_data['src'], display_id, 'mp4',
'm3u8_native', m3u8_id='hls')
}