소스 검색

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

Duncan 10 년 전
부모
커밋
28ebef0b1b
1개의 변경된 파일6개의 추가작업 그리고 1개의 파일을 삭제
  1. 6 1
      youtube_dl/extractor/voicerepublic.py

+ 6 - 1
youtube_dl/extractor/voicerepublic.py

@@ -1,6 +1,8 @@
 # coding: utf-8
 from __future__ import unicode_literals
 
+import re
+
 from .common import InfoExtractor
 from ..compat import compat_urllib_request
 from ..utils import ExtractorError
@@ -32,12 +34,15 @@ class VoiceRepublicIE(InfoExtractor):
         if '<a>Queued for processing, please stand by...</a>' in webpage:
             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 = [{
             'url': 'https://voicerepublic.com/vrmedia/{}-clean.{}'.format(video_id, ext),
             'ext': ext,
             'format_id': ext,
             'vcodec': 'none',
-        } for ext in ['m4a', 'mp3', 'ogg']]
+        } for ext in exts]
         self._sort_formats(formats)
 
         return {