Bump version number
[youtube-dl] / youtube-dl
index 3735c7eac7798aa2926eecf15d49f0b9f665404b..43566b6153e880200267d0a4291f6984b526a1c4 100755 (executable)
@@ -201,12 +201,14 @@ class FileDownloader(object):
        _ies = []
        _pps = []
        _download_retcode = None
+       _num_downloads = None
 
        def __init__(self, params):
                """Create a FileDownloader object with the given options."""
                self._ies = []
                self._pps = []
                self._download_retcode = 0
+               self._num_downloads = 0
                self.params = params
        
        @staticmethod
@@ -402,6 +404,7 @@ class FileDownloader(object):
                try:
                        template_dict = dict(info_dict)
                        template_dict['epoch'] = unicode(long(time.time()))
+                       template_dict['ord'] = unicode('%05d' % self._num_downloads)
                        filename = self.params['outtmpl'] % template_dict
                except (ValueError, KeyError), err:
                        self.trouble('ERROR: invalid output template or system charset: %s' % str(err))
@@ -555,6 +558,7 @@ class FileDownloader(object):
                                try:
                                        (stream, filename) = sanitize_open(filename, open_mode)
                                        self.report_destination(filename)
+                                       self._num_downloads += 1
                                except (OSError, IOError), err:
                                        self.trouble('ERROR: unable to open for writing: %s' % str(err))
                                        return False
@@ -784,7 +788,7 @@ class YoutubeIE(InfoExtractor):
 
                        # Get video info
                        self.report_video_info_webpage_download(video_id)
-                       for el_type in ['embedded', 'detailpage']:
+                       for el_type in ['embedded', 'detailpage', 'vevo']:
                                video_info_url = ('http://www.youtube.com/get_video_info?&video_id=%s&el=%s&ps=default&eurl=&gl=US&hl=en'
                                                   % (video_id, el_type))
                                request = urllib2.Request(video_info_url, None, std_headers)
@@ -1493,7 +1497,7 @@ class YoutubeSearchIE(InfoExtractor):
 class YoutubePlaylistIE(InfoExtractor):
        """Information Extractor for YouTube playlists."""
 
-       _VALID_URL = r'(?:http://)?(?:\w+\.)?youtube.com/(?:view_play_list|my_playlists)\?.*?p=([^&]+).*'
+       _VALID_URL = r'(?:http://)?(?:\w+\.)?youtube.com/(?:(?:view_play_list|my_playlists)\?.*?p=|user/.*?/user/)([^&]+).*'
        _TEMPLATE_URL = 'http://www.youtube.com/view_play_list?p=%s&page=%s&gl=US&hl=en'
        _VIDEO_INDICATOR = r'/watch\?v=(.+?)&'
        _MORE_PAGES_INDICATOR = r'(?m)>\s*Next\s*</a>'
@@ -1682,7 +1686,7 @@ if __name__ == '__main__':
                # Parse command line
                parser = optparse.OptionParser(
                        usage='Usage: %prog [options] url...',
-                       version='2010.04.02',
+                       version='2010.04.04',
                        conflict_handler='resolve',
                )