1
0
Fork 0
mirror of https://codeberg.org/polarisfm/youtube-dl.git synced 2024-12-23 08:12:28 +00:00

[streamango] Add extractor

This commit is contained in:
Marvin Ewald 2017-04-04 19:18:23 +02:00 committed by Sergey M․
parent b2a19e3829
commit 4db79fa1bc
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D
2 changed files with 55 additions and 0 deletions

View file

@ -939,6 +939,7 @@ from .srmediathek import SRMediathekIE
from .stanfordoc import StanfordOpenClassroomIE
from .steam import SteamIE
from .streamable import StreamableIE
from .streamango import StreamangoIE
from .streamcloud import StreamcloudIE
from .streamcz import StreamCZIE
from .streetvoice import StreetVoiceIE

View file

@ -0,0 +1,54 @@
# coding: utf-8
from __future__ import unicode_literals
from .common import InfoExtractor
class StreamangoIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?streamango\.com/(?:f|embed)/(?P<id>.+?)/(?:.+)'
_TESTS = [{
'url': 'https://streamango.com/f/clapasobsptpkdfe/20170315_150006_mp4',
'md5': 'e992787515a182f55e38fc97588d802a',
'info_dict': {
'id': 'clapasobsptpkdfe',
'ext': 'mp4',
'title': '20170315_150006.mp4',
'url': r're:https://streamango\.com/v/d/clapasobsptpkdfe~[0-9]{10}~(?:[0-9]+\.){3}[0-9]+~.{8}/720',
}
}, {
'url': 'https://streamango.com/embed/clapasobsptpkdfe/20170315_150006_mp4',
'only_matching': True,
}]
def _real_extract(self, url):
def extract_url(urltype):
return self._search_regex(
r'type\s*:\s*["\']{}["\']\s*,\s*src\s*:\s*["\'](?P<url>.+?)["\'].*'.format(urltype),
webpage, 'video URL', group='url')
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
title = self._og_search_title(webpage)
url = 'https:' + extract_url('video/mp4')
dashurl = extract_url(r'application/dash\+xml')
formats = [{
'url': url,
'ext': 'mp4',
'width': 1280,
'height': 720,
'format_id': 'mp4',
}]
formats.extend(self._extract_mpd_formats(
dashurl, video_id, mpd_id='dash', fatal=False))
self._sort_formats(formats)
return {
'id': video_id,
'url': url,
'title': title,
'formats': formats,
}