diff options
| -rw-r--r-- | youtube_dl/downloader/__init__.py | 6 | ||||
| -rw-r--r-- | youtube_dl/downloader/rtsp.py (renamed from youtube_dl/downloader/mplayer.py) | 20 | ||||
| -rw-r--r-- | youtube_dl/extractor/instagram.py | 10 | 
3 files changed, 18 insertions, 18 deletions
diff --git a/youtube_dl/downloader/__init__.py b/youtube_dl/downloader/__init__.py index 9fb66e2f7..f110830c4 100644 --- a/youtube_dl/downloader/__init__.py +++ b/youtube_dl/downloader/__init__.py @@ -6,7 +6,7 @@ from .f4m import F4mFD  from .hls import HlsFD  from .hls import NativeHlsFD  from .http import HttpFD -from .mplayer import MplayerFD +from .rtsp import RtspFD  from .rtmp import RtmpFD  from ..utils import ( @@ -17,8 +17,8 @@ PROTOCOL_MAP = {      'rtmp': RtmpFD,      'm3u8_native': NativeHlsFD,      'm3u8': HlsFD, -    'mms': MplayerFD, -    'rtsp': MplayerFD, +    'mms': RtspFD, +    'rtsp': RtspFD,      'f4m': F4mFD,  } diff --git a/youtube_dl/downloader/mplayer.py b/youtube_dl/downloader/rtsp.py index 72cef30ea..3eb29526c 100644 --- a/youtube_dl/downloader/mplayer.py +++ b/youtube_dl/downloader/rtsp.py @@ -10,21 +10,23 @@ from ..utils import (  ) -class MplayerFD(FileDownloader): +class RtspFD(FileDownloader):      def real_download(self, filename, info_dict):          url = info_dict['url']          self.report_destination(filename)          tmpfilename = self.temp_name(filename) -        args = [ -            'mplayer', '-really-quiet', '-vo', 'null', '-vc', 'dummy', -            '-dumpstream', '-dumpfile', tmpfilename, url] -        # Check for mplayer first -        if not check_executable('mplayer', ['-h']): -            self.report_error('MMS or RTSP download detected but "%s" could not be run' % args[0]) +        if check_executable('mplayer', ['-h']): +            args = [ +                'mplayer', '-really-quiet', '-vo', 'null', '-vc', 'dummy', +                '-dumpstream', '-dumpfile', tmpfilename, url] +        elif check_executable('mpv', ['-h']): +            args = [ +                'mpv', '-really-quiet', '--vo=null', '--stream-dump=' + tmpfilename, url] +        else: +            self.report_error('MMS or RTSP download detected but neither "mplayer" nor "mpv" could be run. Please install any.')              return False -        # Download using mplayer.          retval = subprocess.call(args)          if retval == 0:              fsize = os.path.getsize(encodeFilename(tmpfilename)) @@ -39,5 +41,5 @@ class MplayerFD(FileDownloader):              return True          else:              self.to_stderr('\n') -            self.report_error('mplayer exited with code %d' % retval) +            self.report_error('%s exited with code %d' % (args[0], retval))              return False diff --git a/youtube_dl/extractor/instagram.py b/youtube_dl/extractor/instagram.py index b020e2621..65f6ca103 100644 --- a/youtube_dl/extractor/instagram.py +++ b/youtube_dl/extractor/instagram.py @@ -3,13 +3,11 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from ..utils import ( -    int_or_none, -) +from ..utils import int_or_none  class InstagramIE(InfoExtractor): -    _VALID_URL = r'http://instagram\.com/p/(?P<id>.*?)/' +    _VALID_URL = r'https?://instagram\.com/p/(?P<id>[\da-zA-Z]+)'      _TEST = {          'url': 'http://instagram.com/p/aye83DjauH/?foo=bar#abc',          'md5': '0d2da106a9d2631273e192b372806516', @@ -23,8 +21,8 @@ class InstagramIE(InfoExtractor):      }      def _real_extract(self, url): -        mobj = re.match(self._VALID_URL, url) -        video_id = mobj.group('id') +        video_id = self._match_id(url) +          webpage = self._download_webpage(url, video_id)          uploader_id = self._search_regex(r'"owner":{"username":"(.+?)"',                                           webpage, 'uploader id', fatal=False)  | 
