[voicerepublic] Detect list of available formats from the web page

This commit is contained in:
Duncan 2015-05-10 16:03:09 +12:00
parent f03a8a3c4e
commit 28ebef0b1b

View File

@ -1,6 +1,8 @@
# coding: utf-8 # coding: utf-8
from __future__ import unicode_literals from __future__ import unicode_literals
import re
from .common import InfoExtractor from .common import InfoExtractor
from ..compat import compat_urllib_request from ..compat import compat_urllib_request
from ..utils import ExtractorError from ..utils import ExtractorError
@ -32,12 +34,15 @@ def _real_extract(self, url):
if '<a>Queued for processing, please stand by...</a>' in webpage: if '<a>Queued for processing, please stand by...</a>' in webpage:
raise ExtractorError('Audio is still queued for processing') raise ExtractorError('Audio is still queued for processing')
ext_matches = re.finditer(r'data-\w+=\'/vrmedia/\d+-clean\.(\w+)\'', webpage)
exts = [match.group(1) for match in ext_matches]
formats = [{ formats = [{
'url': 'https://voicerepublic.com/vrmedia/{}-clean.{}'.format(video_id, ext), 'url': 'https://voicerepublic.com/vrmedia/{}-clean.{}'.format(video_id, ext),
'ext': ext, 'ext': ext,
'format_id': ext, 'format_id': ext,
'vcodec': 'none', 'vcodec': 'none',
} for ext in ['m4a', 'mp3', 'ogg']] } for ext in exts]
self._sort_formats(formats) self._sort_formats(formats)
return { return {