Add que -w or --no-overwrites option
authorRicardo Garcia <sarbalap+freshmeat@gmail.com>
Wed, 4 Feb 2009 20:38:31 +0000 (21:38 +0100)
committerRicardo Garcia <sarbalap+freshmeat@gmail.com>
Sun, 31 Oct 2010 10:23:48 +0000 (11:23 +0100)
youtube-dl

index f4f64013dce2551f680bce3b23a62ae3f8e13260..de6c7a1d1909da79e9b30877b6729946df0f65fe 100755 (executable)
@@ -89,6 +89,7 @@ class FileDownloader(object):
        outtmpl:        Template for output names.
        ignoreerrors:   Do not stop on download errors.
        ratelimit:      Download speed limit, in bytes/sec.
+       nooverwrites:   Prevent overwriting files.
        """
 
        _params = None
@@ -286,6 +287,9 @@ class FileDownloader(object):
                                        except (ValueError, KeyError), err:
                                                retcode = self.trouble('ERROR: invalid output template or system charset: %s' % str(err))
                                                continue
+                                       if self._params['nooverwrites'] and os.path.exists(filename):
+                                               self.to_stderr('WARNING: file exists: %s; skipping' % filename)
+                                               continue
                                        try:
                                                self.pmkdir(filename)
                                        except (OSError, IOError), err:
@@ -976,6 +980,8 @@ if __name__ == '__main__':
                                dest='ratelimit', metavar='L', help='download rate limit (e.g. 50k or 44.6m)')
                parser.add_option('-a', '--batch-file',
                                dest='batchfile', metavar='F', help='file containing URLs to download')
+               parser.add_option('-w', '--no-overwrites',
+                               action='store_true', dest='nooverwrites', help='do not overwrite files', default=False)
                (opts, args) = parser.parse_args()
 
                # Batch file verification
@@ -1031,6 +1037,7 @@ if __name__ == '__main__':
                                or u'%(id)s.%(ext)s'),
                        'ignoreerrors': opts.ignoreerrors,
                        'ratelimit': opts.ratelimit,
+                       'nooverwrites': opts.nooverwrites,
                        })
                fd.add_info_extractor(youtube_search_ie)
                fd.add_info_extractor(youtube_pl_ie)